Dies ist mein Portfolioprojekt für das ALX Software Engineering-Programm. Das Projekt ist ein einfaches ORM, das Ihnen die Interaktion mit der Datenbank über PHP ermöglicht. Das Projekt befindet sich noch in einem frühen Stadium und wird nicht für den Einsatz in Produktionsumgebungen empfohlen. Das Projekt ist Open Source und Beiträge sind willkommen.
Sebastian Muchui
MIT
0.1.0
Um dieses Paket verwenden zu können, muss PHP auf Ihrem Computer installiert sein. Wenn Sie PHP nicht installiert haben, können Sie es von der offiziellen PHP-Website herunterladen.
Stellen Sie zweitens sicher, dass Composer auf Ihrem Computer installiert ist. Wenn nicht, können Sie es installieren, indem Sie den Anweisungen auf der offiziellen Composer-Website folgen. Sobald dies erledigt ist, müssen Sie eine Composer.json-Datei in Ihrem Projektstammverzeichnis erstellen und den folgenden Code hinzufügen:
{
"minimum-stability" : " dev "
}
Danach können Sie das Paket installieren, indem Sie den folgenden Befehl in Ihrem Terminal ausführen:
composer require astianmuchui/ PixelSequel
Das ORM besteht aus zwei Hauptteilen, die separat gebaut sind, um Flexibilität und Benutzerfreundlichkeit zu gewährleisten. Die zwei Teile sind:
Das Modell ist der Teil des ORM, der Ihnen die Interaktion mit den Datenbanktabellen ermöglicht. Sie können damit Vorgänge wie Einfügen, Aktualisieren, Abfragen und Löschen ausführen. Um das Modell verwenden zu können, müssen Sie eine neue Instanz der Modellklasse erstellen.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel ' ,
username: ' root ' ,
password: '' ,
dbhost: ' localhost '
);
Standardmäßig sind die folgenden Werte eingestellt:
username
: 'root'
password
: ''
dbhost
: 'localhost'
In einer Entwicklungsumgebung können Sie einfach den Datenbanknamen als einzigen Parameter an die Modellklasse übergeben.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Um Daten einzufügen, müssen Sie lediglich die statische Methode Insert
aufrufen. Beachten Sie, dass die Modellinstanz keiner Variablen zugewiesen werden muss, da die Methoden die Verbindung vom instanziierten Objekt ableiten.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Model:: Insert (
table: ' users ' ,
data: [
' name ' => ' John Doe ' ,
' email ' => ' [email protected] '
]
);
Die Schlüssel der Datenarrays müssen gültige Spaltennamen in der Tabelle sein. Die entsprechenden Werte sind die Werte, die in die Tabelle eingefügt werden sollen. In kommenden Versionen wird der ORM in der Lage sein, die Spaltennamen automatisch aus der Tabelle abzuleiten und die Daten vor dem Einfügen zu validieren.
Hier müssen Sie im Grunde nur die All
-Methode aufrufen. Die Methode kann verschiedene Parameter verwenden, um die abzurufenden Daten zu filtern.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
$ users = Model:: All (
table: ' users ' ,
where: [
' name ' => ' John Doe '
]
where_like: [
' email ' => ' gmail '
]
order_by: 'id',
order: ' DESC ' ,
limit: 10
);
table: The table to read from
where: An associative array of the column names and their values to filter the data using the where clause
where_like: An associative array of the column names and their values to perform searches
order_by: The column to order the data by
order: The order to use. Either 'ASC' or 'DESC'
limit: The number of records to retrieve
json: A boolean value to determine if the data should be returned as a json string or an array
Die Methode gibt ein Objekt der abgerufenen Daten zurück. Anschließend können Sie das Objekt durchlaufen, um die Daten abzurufen. Wenn Sie den Grenzwert auf 1 festlegen, müssen Sie den nullten Index des Objekts auswählen, um die Daten abzurufen. Normalerweise bestand eines der Hauptziele bei der Entwicklung darin, dafür zu sorgen, dass eine einzige Funktion alle ausgewählten Funktionen übernimmt. Es gibt andere Auswahlmethoden, aber ignorieren Sie diese, da sie nicht gut geschrieben sind und in zukünftigen Versionen entfernt werden.
Die Update-Methode ist im Grunde eine Replik der Insert-Methode. Allerdings müssen der Parametertyp zur Identifizierung der Zeile und ihr Wert übergeben werden
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Model:: Update (
table: ' users ' ,
param_t: ' id '
param_n: 1 ,
data: [
' name ' => ' John Doe ' ,
' email ' => ' [email protected] '
]
);
param_t
ist der Parametertyp, normalerweise ein Spaltenname. param_n
ist der Wert des Parametertyps.
Mit der Methode Delete
werden Daten aus der Datenbank gelöscht. Es berücksichtigt den Tabellennamen sowie den Parametertyp und -wert, um die zu löschende Zeile zu identifizieren.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Model:: Delete (
table: ' users ' ,
param_t: ' id '
param_n: 1
);
Das Schema ist der Teil des ORM, der Ihnen die Interaktion mit den Datenbanktabellen ermöglicht. Sie können damit Vorgänge wie das Erstellen, Aktualisieren und Löschen von Tabellen ausführen. Um das Schema zu verwenden, müssen Sie eine Instanz der Modellklasse erstellen und die Datenbankverbindung an die Schemaklasse übergeben. Beachten Sie, dass die Modellinstanz weder einer Variablen noch dem Schema zugewiesen werden muss
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Die Verbindung kann durch Aufrufen der Connected
-Methode für die Modellklasse überprüft werden. Die Methode gibt einen booleschen Wert zurück.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
if (Model:: Connected ())
{
new Schema (
Model:: Connection ()
);
echo ' Connected ' ;
}
else
{
echo ' Not Connected ' ;
}
Sobald die Verbindung hergestellt ist, können Sie Tabellen erstellen, indem Sie die Create
-Methode für die Schemaklasse aufrufen. Die Methode übernimmt den Tabellennamen und ein assoziatives Array der Spaltennamen und ihrer Datentypen.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Schema:: Create (
table: ' pxtest ' ,
structure: [
" id " => [
" type " => " int " ,
" length " => 11 ,
" primary_key " => true
],
" username " => [
" type " => " varchar " ,
" length " => 11 ,
" null " => false
]
]
);
Die Schlüssel des Strukturarrays müssen gültige Spaltennamen in der Tabelle sein. Die entsprechenden Werte sind assoziative Arrays der Spaltendatentypen und ihrer Eigenschaften. Die Eigenschaften sind:
type: The data type of the column
length: The length of the column
primary_key: A boolean value to determine if the column is a primary key
null: A boolean value to determine if the column can be null
auto_increment: A boolean value to determine if the column is auto increment
Die Alter
-Methode wird zum Ändern von Tabellen verwendet. Es benötigt drei Parameter: den Tabellennamen, den Spaltennamen und was eingestellt werden soll
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Schema:: Alter (
table: ' pxtest ' ,
column: ' username '
set: " int(255) NOT NULL "
);
Die Drop
Methode wird zum Löschen von Tabellen verwendet. Es übernimmt den Tabellennamen als Parameter.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Schema:: Drop (
table: ' pxtest '
);
Um die Verbindung zur Datenbank zu trennen, können Sie die Disconnect
-Methode für die Modellklasse aufrufen.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Model:: Disconnect ();
Beiträge sind willkommen. Sie können einen Beitrag leisten, indem Sie das Repository forken und eine Pull-Anfrage stellen. Sie können auch ein Problem eröffnen, wenn Sie Fehler finden oder Funktionswünsche haben.