AIS Framework ist einfach und effizient ausgelegt, sodass Entwickler Anwendungen schnell erstellen und bereitstellen können. Seine Architektur fördert einen sauberen und wartbaren Code und macht es sowohl für Anfänger als auch für erfahrene Entwickler, die eine robuste, skalierbare Lösung suchen, eine gute Wahl.
Klon, dann verwenden:
git clone https://github.com/titan2420/ais.git
Die AIS -Architektur ist im Kern mit Einfachheit gestaltet. Diese Einfachheit erleichtert ein intuitives Verständnis des Systems und erleichtert den Entwicklern die Interaktion und Änderung des Rahmens. Durch die Minimierung der Komplexität stellt AIS sicher, dass sich Entwickler mehr auf die Entwicklung von Funktionen konzentrieren können, als auf das Rahmen selbst zu ringen.
---- app
-------- core
-------- controller
-------- model
-------- view
---- public
-------- js
-------- css
-------- img
Im AIS -Framework werden Routen unter Verwendung eines einfachen Ordners und einer Dateistruktur im Controller -Ordner definiert. Jeder Ordner stellt ein potenzielles Routensegment dar, und auf jede Datei in diesen Ordnern kann als Endpunkt zugegriffen werden. Zum Beispiel:
---- app
-------- controller
------------ home.php (Accessible via /)
------------ user
---------------- home.php (Accessible via /user/)
---------------- transactions.php (Accessible via /user/transactions)
---------------- edit-profile.php (Accessible via /user/edit-profile)
Diese Struktur ermöglicht eine einfache Zuordnung von URLs auf ihre entsprechenden Controller und Ansichten und vereinfacht den Routing -Prozess.
In AIS befindet sich eine Middleware-, Vorverarbeitungs- und Postprozess -Artiteratur, um die Duplikation von Code zu verhindern und den Code besser aufrechtzuerhalten.
Schauen Sie sich dieses Beispiel an:
---- app
-------- controller
------------ home.php
------------ middleware.php
------------ user
---------------- home.php
---------------- preprocess.php
---------------- postprocess.php
Wenn der Client zu /user/ kommt, werden die folgenden Schritte unternommen:
controller/middleware.php wird ausgeführt.controller/user/preprocess.php wird ausgeführt.controller/user/home.php wird ausgeführt.controller/user/postprocess.php wird ausgeführt.Dynamisches Routing im AIS -Framework ermöglicht flexible URL -Muster, die sich dynamisch an die eingehenden Anforderungen anpassen. Anstatt eine feste URL -Struktur zu haben, verwendet dynamisches Routing Muster, die mehrere URL -Pfade entsprechen können. So funktioniert es:
---- app
-------- controller
------------ user
---------------- dynamic.php (Accessible via /user/{value})
Wenn beispielsweise eine Anforderung an /user/123 gestellt wird, interpretiert das dynamische Routing -System 123 als Parameter und verarbeitet es mit dem user/dynamic.php Controller durch $link_vars Variable.
<?php
// controller/user/dynamic.php
echo " User id: " . $ link_vars [ 0 ]; // User id: 123
?>Sie können die Verzeichnisstruktur auch für dynamisches Routing verwenden, zum Beispiel:
---- app
-------- controller
------------ user
---------------- dynamic
-------------------- dynamic
------------------------ home.php (Accessible via /user/{value[0]}/{value[1]})
------------------------ open.php (Accessible via /user/{value[0]}/{value[1]}/open)
-------------------- home.php (Accessible via /user/{value[0]})
-------------------- edit.php (Accessible via /user/{value[0]}/edit)
Wenn beispielsweise eine Anforderung an /user/123/AIS-Project gestellt wird, interpretiert das dynamische Routing-System 123 als Parameter und verarbeitet es mit dem user/dynamic.php -Controller durch $link_vars Variable.
<?php
// controller/user/dynamic/dynamic/open.php
<<<<<<< HEAD
echo " Opening project: " . $ link_vars [ 1 ] . " of " . $ link_vars [ 0 ] . " user. " ;
=======
echo " Opening project: " . $ link_vars [ 1 ] . " of " . $ link_vars [ 0 ] . " user. " ; // Opening AIS-Project of 123 user.
>>>>>>> 0 bee68c121c4e091084a9bf093779bfe647b757d
?> Sie können eine Ansicht über die Funktion view(view_path, data, options) laden.
<?php
// controller/user/home.php
$ user = database:: select ( ' users ' , ' * ' , [ ' id ' => $ _SESSION [ ' user_id ' ]]);
view ( ' user/home ' , [ ' user ' => $ user ], [ ' title ' => ' Dashboard ' ]);
?> Wenn es layout.php gibt, wird es automatisch in die Ansicht enthalten.
---- app
-------- view
------------ layout.php
------------ home.php
------------ user
---------------- home.php
---------------- transactions.php
---------------- edit-profile.php
Sie verwenden Benutzerdaten in /user/home -Ansicht.
<?php
// view/user/home.php
echo " Welcome, " . $ user [ ' name ' ] . " ! " ;
?> Sie können APIs einfach mit AIS Toolkit erstellen.
<?php
// controller/api/user/get-users.php
$ users = database:: select ( ' users ' , ' * ' , [ ' LIMIT ' => 1 ]);
response ( $ users );
?>Die Ausgabe erfolgt im JSON -Format.
{
"meta" : {
"status" : " SUCCESS "
},
"data" : [
{
"id" : 1 ,
"name" : " John Doe "
}
]
}Sie können CLI -Befehle einfach mit AIS Toolkit erstellen.
<?php
// controller/_cli/jobs/deactivate-users.php
$ inactive_users = database:: select ( ' users ' , ' * ' , [ ' active ' => 1 ]);
. . .
cout ( " Deactivated users: " . count ( $ inactive_users ));
?>Sie können es mit diesem Befehl ausführen:
php index.php -r jobs/deactivate-users
In AIS wird es vorgezogen, Modelle für die Simpilizität nicht zu verwenden. Bei Controllern können Sie jedoch Modelle bei Bedarf mit der Funktion model(model_path) laden.
In AIS sind Modelle einfach und einfach zu bedienen. Sie befinden sich im app/model -Ordner und werden verwendet, um mit der Datenbank zu interagieren.
<?php
// controller/user/home.php
model ( ' user ' );
// or
require MODEL . ' user.php ' ;
$ user = getUser ( $ _SESSION [ ' user_id ' ]);
view ( ' user/home ' , [ ' user ' => $ user ], [ ' title ' => ' Dashboard ' ]);
?>AIS verwendet eine individuelle Version von Medoo als Datenbankverpackung. Es ist einfach zu bedienen und leicht zu verstehen.
<?php
// model/user.php
function getUser ( $ user_id ) {
return database:: select ( ' users ' , ' * ' , [ ' id ' => $ user_id ]);
}
function activateUser ( $ user_id ) {
return database:: update ( ' users ' , [ ' active ' => 1 ], [ ' id ' => $ user_id ]);
}
. . .
?> Mach es einfach nicht komplex!
AIS -Regel 1: Der Einfachheit halber verwenden Sie keine Klassen für Controller und Modelle, um einfache Implementierungen zu gewährleisten.
AIS -Regel 2: Der Einfachheit halber ist jede Datei nur eine Anfrage, um sicherzustellen, dass Dateien klein und verwaltbar bleiben.
AIS -Regel 3: Einfachheit halber müssen die Dateinamen keine HTTP -Methode in Anforderungen und Routungen angeben!
AIS -Regel 4: Der Einfachheit halber wird nicht die Verwendung von Modellen empfohlen.
Hier ist eine vollständige Verwendung für die Methoden im AIS -Framework:
Erzwingt eine Seite, die über die HTTP -Anforderungsmethode und den Inhaltstyp zugegriffen werden kann. Sie sollten diese Funktion zu Beginn Ihres Controllers aufrufen. Wenn die Bedingungen nicht erfüllt sind, endet das Skript mit dem HTTP -Fehler.
Parameter:
$options (Array): Optionen für Methoden- und Inhaltstyp.Beispiel Verwendung:
<?php
// controller/user/home.php
http_check ([ ' method ' => ' POST ' , ' content_type ' => ' application/json ' ]);
$ data = json_decode ( file_get_contents ( ' php://input ' ), true );
?>Laden Sie eine Modelldatei oder ein Verzeichnis Contaning -Modelldateien.
Parameter:
$model (Zeichenfolge): Der Modellpfad im app/model .Beispiel Verwendung:
<?php
// controller/user/home.php
model ( ' user ' );
?>Laden Sie eine Ansichtsdatei mit Daten und Optionen.
Parameter:
$view (Zeichenfolge): Der Pfad anzeigen im app/view -Ordner.$data (Array): Daten sind ein assoziatives Array, das als Variablen in die Ansicht extrahiert werden soll.$options (Array): Optionen zum Laden von Layout wie ['title' => 'Home Page', 'description' => 'Home Page Description', 'load_layout' => true] . Diese Optionen sind mit $_VIEW -Variablen zugänglich.Beispiel Verwendung:
<?php
// controller/user/home.php
$ user = database:: select ( ' users ' , ' * ' , [ ' id ' => $ _SESSION [ ' user_id ' ]]);
view ( ' user/home ' , [ ' user ' => $ user ], [ ' title ' => ' Dashboard ' , ' load_layout ' => true ]);
?> Rendert eine Ansicht und gibt den Ausgangspufferinhalt zurück. Anstatt view() zum Echo -Ausgang zum Client zu verwenden, können Sie render() verwenden, um den Ausgabebufferinhalt zu erhalten.
Parameter:
$view (Zeichenfolge): Der Pfad anzeigen im app/view -Ordner.$data (Array): Daten sind ein assoziatives Array, das als Variablen in die Ansicht extrahiert werden soll.$options (Array): Optionen zum Laden von Layout wie ['title' => 'Home Page', 'description' => 'Home Page Description', 'load_layout' => true] . Diese Optionen sind mit $_VIEW -Variablen zugänglich.Beispiel Verwendung:
<?php
// controller/user/home.php
$ user = database:: select ( ' users ' , ' * ' , [ ' id ' => $ _SESSION [ ' user_id ' ]]);
$ view = render ( ' user/home ' , [ ' user ' => $ user ], [ ' title ' => ' Dashboard ' , ' load_layout ' => true ]);
echo $ view ;
?> Laden Sie eine Bibliotheksdatei oder ein Bibliotheksverzeichnis mit init.php -Datei.
Parameter:
$lib (String): Der Bibliothekspfad im app/lib -Ordner.Beispiel Verwendung:
<?php
// controller/user/home.php
lib ( ' upload ' );
$ uploader = new upload ();
?>Leitet zu einer bestimmten URL weiter und endet das Skript.
Parameter:
$url (String): Die URL zum Umleiten zu.Beispiel Verwendung:
redirect ( ' https://example.com ' );Gibt Daten mit einem optionalen Trennzeichen zur Konsole aus. Dieser Name ist aus C ++ - Sprache angegeben.
Parameter:
$data (gemischt): Die Daten zur Ausgabe.$delimiter (String): Der zugefügte Trennzeichen.Beispiel Verwendung:
cout ( ' Hello World ' , " n " );Sendet eine Antwort mit Daten und optionalen Metadaten an den Benutzer in APIs und beendet das Skript.
Parameter:
$data (gemischt): Die Antwortdaten.$meta (Array): Optionale Metadaten.Beispiel Verwendung:
response ([ ' sum ' => 100 ], [ ' status ' => ' SUCCESS ' ]);
// Output to endpoint: {"data":{"sum":100},"meta":{"status":"SUCCESS"}}Sendet eine Antwort mit einem Status und Daten an den Benutzer in APIs und beendet das Skript.
Parameter:
$code (Zeichenfolge): Der Status zum Senden an den Benutzer.$data (Array): Die Antwortdaten.Beispiel Verwendung:
status ( ' PROCESS_ERROR ' , [ ' error ' => ' Something went wrong ' ]);
// Output to endpoint: {"data":{"error":"Something went wrong"},"meta":{"status":"PROCESS_ERROR"}}Sendet eine Erfolgsantwort mit Daten.
Parameter:
$data (Array): Die Antwortdaten.Beispiel Verwendung:
success ();
// Output to endpoint: {"data":[],"meta":{"status":"SUCCESS"}}Sendet eine Fehlerantwort mit Daten und Status.
Parameter:
$data (Array): Die Antwortdaten.$status (Zeichenfolge): Der Statuscode.Beispiel Verwendung:
fail ([ ' error ' => ' Invalid request ' ], ' ERROR ' );Sendet einen HTTP -Statuscode mit optionalen Daten und Metadaten.
Parameter:
$code (int): Der HTTP -Statuscode.$data (Array): Die Antwortdaten.$meta (Array): Optionale Metadaten.Beispiel Verwendung:
http_status ( 404 ); // Shows browser 404 error.Beispiel Verwendung:
http_status ( 404 , [ ' error ' => ' Not found ' ], [ ' status ' => ' ERROR ' ]);
// HTTP error 404 + Output to endpoint: {"data":{"error":"Not found"},"meta":{"status":"ERROR"}}Beispiel Verwendung:
http_status ( 404 , " Page not found! " );
// HTTP error 404 + Output text to endpoint: Page not found!Macht nichts :). Es wird für Code Beauty oder nur ein Platzhalter für die zukünftige Entwicklung verwendet.
Beispiel Verwendung:
do_nothing (); Dumps ( var_dump ) Eine Variable und optional beendet das Skript.
Parameter:
$var (gemischt): die Variable zum Dump.$die (bool): Ob das Skript beendet werden soll.Beispiel Verwendung:
dump ( $ var , true ); Alias für dump -Methode.
Parameter:
$var (gemischt): die Variable zum Dump.$die (bool): Ob das Skript beendet werden soll.Beispiel Verwendung:
d ( $ var , true );Alias für "Dump and Die". Entpackt eine Variable und beendet das Skript.
Parameter:
$var (gemischt): die Variable zum Dump.Beispiel Verwendung:
dd ( $ var );Erzeugt eine zufällige alphanumerische Zeichenfolge einer bestimmten Länge.
Parameter:
$length (int): Die Länge der zufälligen Zeichenfolge.Beispiel Verwendung:
strand ( 8 ); // Output: "9S34zD7o" Sendet eine application/x-www-form-urlencoded Anfrage mit Formulardaten.
Parameter:
$url (Zeichenfolge): Die URL zum Senden der Anfrage an.$data (Array): Die zu senden Formulardaten.Beispiel Verwendung:
post ( ' https://example.com/api/data ' , [ ' key ' => ' value ' ]); Sendet eine application/json -Anfrage mit JSON -Daten.
Parameter:
$url (Zeichenfolge): Die URL zum Senden der Anfrage an.$data (Array): Die zu senden von JSON -Daten.Beispiel Verwendung:
post_json ( ' https://example.com/api/data ' , [ ' key ' => ' value ' ]);Gibt einen Backback des aktuellen Anrufstapels aus.
Beispiel Verwendung:
backtrace (); // Outputs a backtrace of the current call stack.Spült den Ausgangspuffer und schließt die Verbindungen.
Beispiel Verwendung:
close_everything ();Schließt alles und beendet das Skript.
Beispiel Verwendung:
die_gracefully ();