Janggelan ist ein unerwartetes PHP -Framework, das Ihnen Leichtigkeit verleiht. Es ist einfach und doch mächtig und angenehm zu verwenden. Genau wie in anderen Frameworks werden Sie beim Verständnis von Janggelan keine Schwierigkeiten haben.
Janggelan wurde auf der Grundlage des MVC -Konzepts entworfen und konzentriert. Wir versuchen also, das Zusammenführen von MVC -Systemen mit anderen Tools zu vermeiden, die Ihnen bei der Entwicklung helfen können, da es die Leistung verringern kann. Wir schließen es natürlich weiter, um Ihrer Entwicklung zu helfen, aber es wird mit unterschiedlichen Abdeckungen geliefert.
Bitte lesen Sie die Dokumentation für weitere Informationen.
Wir wissen, dass wir diesen Framework nicht perfekt beenden können und entsprechen vielleicht nicht mit dem, was Sie wollen. Aber wir versuchen immer, es besser zu beenden und es für Sie unerwartet zu machen. Sie können mit uns beitragen.
Einige neue Tools hinzugefügt.
Umgeschrieben alle Skripte von Janggelan für neue bessere Leistung.
Reduzieren Sie einige Serverlasten.
Einige neue Model hinzugefügt: where() , exec() , execute() .
Dokumentation hinzugefügt.
Verwendete Caching und Komprimierung gZip auf .htaccess .
Php 7
PDO -PHP -Erweiterung
Laden Sie die Datei von Janggelan herunter und extrahieren Sie sie in das Verzeichnis Ihrer Anwendung.
Wenn Sie Janggelan für gemeinsam genutztes Hosting veröffentlichen oder installieren möchten, ist die sicherste Möglichkeit, die Dateien und Verzeichnisse von Janggelan in den server root zu platzieren und alle Inhalte des public Ordners in public_html oder www zu verschieben.
Sie führen Ihre Bewerbung aus dem Verzeichnis public / public_html / www aus.
Wenn Sie nach der Installation Probleme gefunden haben, überprüfen Sie bitte die Dateiberechtigungen.
__ backend/
|__ .secrets/
|__ config/
|__ framework/
|__ global/
|__ register/
|__ vendor/
|__ autoload.php
|__ composer.json
|__ force.uri
__ public/
|__ assets/
|__ .htaccess
|__ index.php
__ worksheet/
|__ controllers/
|__ model/
|__ providers/
|__ tools/
|__ views/
|__ requests.php
Lassen Sie uns zum ersten Mal Janggelan auf Ihrem Server ausführen. Stellen Sie sicher, dass Ihr System mit den System Requirements und der obigen installation erfolgt.
Gehen Sie zu Ihrem Anwendungsverzeichnis, das Janggelan -Dateien platziert haben. Geben Sie in den public Ordner ein. In Linux können Sie beispielsweise dies tun:
cd /var/www/html/your_application/publicÖffnen Sie einen Localhost -Server:
php -S localhost:8000Oder Sie können oben direkt mit diesem Befehl tun:
php -S localhost:8000 -t /var/www/html/your_application/publicÖffnen Sie jetzt Ihren Browser und besuchen Sie Localhost: 8000.
In Janggelan nennen Sie dies als requests . In anderen PHP -Frameworks wie Laravel bezeichneten dies als routes . Alle Anfragen in Janggelan, die im worksheet/requests.php in der Datei behandelt wurden. Um eine neue Anfrage zu erstellen, gehen Sie zu dieser Datei. Dort sehen Sie ein request wie folgt:
$ this -> request ( ' GET / @Hello::world ' ); Das world Beispiel Hello bedeutet: " / / mit Anforderungsmethode GET . Basierend auf dem Beispiel können Sie jetzt Ihre benutzerdefinierten Anforderungen mit diesen Optionen erstellen: (Argument oder Parameter 1 wird durch space getrennt):
// Redirected to Controller.
// Request method can be 'GET' or 'POST'
$ this -> request ( ' GET /home @Hello::world ' );
// Redirected to View.
$ this -> request ( ' GET /home (viewName) ' );
// Redirected to Controller with Protected Rule 'login'.
$ this -> request ( ' GET /home @Hello::world !!login ' );
// Redirected to View with Protected Rule 'login'.
$ this -> request ( ' GET /home (viewName) !!login ' );
// Will proceed the Closure or Callback directly.
$ this -> request ( ' GET /home ' , function ()
{
// Do some stuff...
});
// Will proceed the Closure or Callback directly with Protected Rule 'login'.
$ this -> request ( ' GET /home !!login ' , function ()
{
// Do some stuff...
}); Sie erfahren später mehr über Protected Rule . Beachten Sie, dass Closure oder Callback nur dann beim Testen verwendet werden. Wir haben immer empfohlen, View oder Controller als Umleitung zu verwenden.
Controller S werden in worksheet/controllers platziert. Versuchen Sie, einen neuen Controller beim Erstellen einer neuen Datei zu erstellen. Angenommen, der Dateiname lautet MyController.php . Schreiben Sie dann im MyController.php diesen grundlegenden Controller -Stil:
<?php namespace controller ;
class MyController extends framework parents Controller
{
public function welcome ()
{
echo ' Welcome to my Controller. ' ;
}
} Fügen Sie auf dem worksheet/requests.php eine neue Anfrage hinzu, die den Controller fortsetzt.
$ this -> request ( ' GET /test @MyController::welcome ' ); /test Sie nun Ihren Browser. Wenn alles in Ordnung ist, werden Sie Output sehen: Welcome to my Controller. . Der Name Controller -Datei muss gleich sein und mit dem Namen der Controller -Klasse übereinstimmen. Außerdem müssen Sie sich um Namespace kümmern. Wenn Sie Controller im neuen Verzeichnis wie folgt erstellen:
__ controllers/
|__ my_new_folder/
|__ MyController.php
Dann sollte der Namespace Ihres Controller wie folgt sein: (Dies gilt auch für alle Namespaces -Systeme)
<?php namespace controllers my_new_folder ;
class MyController extends framework parents Controller
{
//
} Sie können es vermeiden, frameworkparentsController zu erweitern, wenn Ihr Controller nicht integrierte Funktionen wie $this->LOAD_VIEW() , $this->GET_RULE() usw. verwendet.
Model S werden in worksheet/models platziert. Model wird verwendet, um mit der Datenbank zu kommunizieren. Wenn Sie also ein Model erstellen, stellen Sie sicher, dass es Ihren Daten in der Datenbank entspricht. Um Model mithilfe von Modell zu verwenden, müssen Sie Ihre Datenbankkonfiguration in backend/.secrets/.db einrichten oder die Dokumentation zum Configuring Database anzeigen.
Versuchen wir, ein Model zu erstellen. Erstellen Sie zunächst eine neue Datei in worksheet/models . Angenommen, der Dateiname ist User.php . Schreiben Sie dann den Inhalt der Datei mit diesem grundlegenden Model :
<?php namespace model ;
class User extends framework parents Model
{
// This is your table name. It is required by system.
protected static $ table = ' user ' ;
// This is your table columns. Only required if you want to create new
// table into Database.
protected static $ columns = [
' id ' => ' INT(11) AUTO_INCREMENT PRIMARY KEY ' ,
' username ' => ' VARCHAR(255) NOT NULL ' ,
' password ' => ' VARCHAR(255) NOT NULL '
];
} Rufen Sie in Ihrem Controller die Model an:
<?php namespace controller ;
use model User ;
class MyController extends framework parents Controller
{
public function workingWithModel ()
{
// Initialize object of Model 'User'.
// Now you can use your Model.
$ user = new User ;
}
} Wenn Sie zuvor keine Tabelle mit dem Namen des user haben, verwenden Sie einfach die Methode create() um die Tabelle automatisch zu erstellen, wenn Sie die Controller -Methode workingWithModel() ausführen.
$ user = new User ;
// this will create new table into Database with columns and properties that
// already defined on 'protected static $columns'.
$ user -> create (); Fast fertig, mussten Sie das Model nur mit einigen integrierten Funktionen oder Methoden verwenden.
$ user = new User ;
// Open Database connection manually. Only needed if 'auto_connect' config is FALSE.
$ user -> open ();
// Close Database connection manually. Only needed if 'auto_connect' config is FALSE.
$ user -> close ();
// Delete all data in Model 'User' | table 'user'.
$ user -> delete ();
// Delete all data in Model 'User' | table 'user' | where id = 1 and username = name.
$ user -> delete ([ ' id ' => 1 , ' username ' => ' name ' ]);
// Insert new data to Model 'User' | table 'user' | to column username with value
// 'Linus Torvald'.
$ user -> insert ([ ' username ' => ' Linus Torvald ' ]);
// Update data in Model 'User' | table 'user' | where id = 1. Update username
// to value 'Linus Torvald'.
$ user -> update ([ ' username ' => ' Linus Torvald ' ], [ ' id ' => 1 ]);
// Get all data from Model 'User' | table 'user'.
$ user -> get ();
// Get 5 data results from Model 'User' | table 'user'.
$ user -> get ( 5 );
// Select all data from column 'username' of Model 'User' | table 'user'.
$ user -> select ( ' username ' )-> get ();
// Get data from column 'username' of Model 'User' | table 'user' | take 4 data results
// start from data number 2.
$ user -> range ( 4 , 2 )-> get ();
// Get data from Model 'User' | table 'user' | based on the clause 'WHERE id = 1'.
// You can do anything inside of 'clause()'.
$ user -> clause ( ' WHERE id = 1 ' )-> get ();
// Select data from column 'username' of Model 'User' | table 'user' |
// where id = 1 AND username = 'Linus Torvald'.
$ user -> where ([ ' id ' => 1 , ' username ' => ' Linus Torvald ' ])-> get ();
// Exec query.
// 'query' is anything sql queries such as 'DELETE * FROM' or 'SELECT *'.
$ user -> exec (query);
// Execute query with bind params (PDO prepare statement).
$ user -> execute (query, bindParams);
// You can custom you queries with chaining functions or methods like this:
$ user -> select ( ' username ' )-> range ( 4 , 2 )-> get ();
// Using prepare statement
$ user -> clause ( ' WHERE id=:id ' )-> bindParams ([ ' id ' => 1 ])-> get (); View werden in worksheet/views platziert. Grundsätzlich ist View eine Vorlage, sie kann HTML- oder PHP -Code sein. Nichts besondere Regeln für View . Aber in Janggelan ist die View immer .php . Sie können alles Code in der View schreiben. Um eine View zu verwenden, müssen Sie sie nur anrufen. Beispiel:
// Calling View 'example.php' on requests.php
// Note that you cannot calling View with Closure or Callback.
$ this -> request ( ' GET / (example) ' );
// Calling View 'example.php' inside folder 'new_folder' on requests.php
$ this -> request ( ' GET / (new_folder/example) ' );
// Calling View 'example.php' on Controller
$ this -> LOAD_VIEW ( ' example ' );
// Calling View 'example.php' inside folder 'new_folder' on Controller
$ this -> LOAD_VIEW ( ' new_folder/example ' ); Wenn Sie außerhalb worksheet/views View außerhalb des öffentlichen Lebens oder www -Verzeichnisses außerhalb des Verzeichnisses von public oder öffentlichem oder public_html oder www platzieren möchten, müssen Sie nur hinzufügen / :
$ this -> request ( ' GET / (/example) ' );
$ this -> LOAD_VIEW ( ' /example ' ); Dadurch wird das System angewiesen, die View auf public/example.php oder public_html/example.php oder www/example.php zu finden.
Nun, wie man Daten in View weitergibt. Eigentlich können Sie es einfach tun. Nur compact() die Daten: Beachten Sie, dass das Übergeben von Daten nur möglich ist, wenn Sie View nach Controller aufrufen.
$ data = ' This is data ' ;
$ this -> LOAD_VIEW ( ' example ' , compact ( ' data ' )); Rufen Sie dann auf der View example.php die Variable an:
<p> <?php echo $ data ; ?> </p> Janggelan bietet einige Tools, die Sie verwenden können, und ist möglicherweise nützlich für Ihre Entwicklungsfälle. Sie werden in worksheet/tools platziert. Um sie zu verwenden, müssen Sie einfach ihren Klassennamen anrufen. Beispiel:
<?php namespace controller ;
use tool Validation ;
class Example extends framework parents Controller
{
private $ validation ;
function __construct ()
{
$ this -> validation = new Validation ;
}
} Protected Rule ist ein System in Janggelan zum Schutz Ihrer page , View oder Uri , genau wie das Anmeldesystem. Protected Rule gespeicherte anonyme Daten, die immer überprüft werden, wenn request dieses System verwendet wurde. Wenn der Besuch von Benutzern nicht über die gültigen anonymen Daten verfügt, wird der Benutzer automatisch in target umgeleitet, das zuvor definiert wurde. Auf diese Weise schützen Sie Seiten, die Sie für bestimmte Benutzer privat machen möchten.
Um eine neue Protected Rule zu erstellen, gehen Sie zur Konfigurationsdatei unter backend/config/protected.php . Sie können mehr als eine Protected Rule treffen. Beispiel:
<?php return [
// FALSE means, system will uses SESSION to store protected_rule data. Set it TRUE
// if you want to store the data in COOKIE.
' use_cookie ' => FALSE ,
' protected_rule ' => [
// Creating 'Protected Rule' with name 'login'.
// If the data is not valid, then redirect to Controller 'Example'
// method 'protected.'
' login ' => [
' on_false ' => [
' controller ' => ' Example ' ,
' method ' => ' protected '
],
],
// Creating 'Protected Rule' with name 'protect'.
// If the data is not valid, then redirect to View 'example'.
' protect ' => [
' on_false ' => [
' view ' => ' example ' ,
],
],
// Creating 'Protected Rule' with name 'myRule'.
// If the data is not valid, then redirect to uri '/wrong'.
' myRule ' => [
' on_false ' => ' /wrong '
],
]
]; Wenn Sie diese Protected Rule anwenden, gehen Sie zu worksheet/requests.php und fügen Sie eine neue Request hinzu: (Die Syntax ist !! ):
// Applying Protected Rule 'login'.
$ this -> request ( ' GET / @Example::example !!login ' );
$ this -> request ( ' GET / (viewName) !!login ' );
$ this -> request ( ' GET / !!login ' , function ()
{
echo ' If you see this, then you are an Admin. ' ;
}); Wie legte ich gültige Daten für Benutzer- oder Protected Rule fest? Verwenden Sie einfach dies erstellte IT -Funktionen oder Methoden.
$ this -> SET_RULE ( $ name ); Sie können Werte auch in Protected Rule übergeben:
$ this -> SET_RULE ( $ name , $ values ); Hier finden Sie vollständige Funktionen oder Methoden für Protected Rule :
// Check valid data for user or 'Protected Rule';
$ this -> CHECK_RULE ( $ name );
// Set new valid data for user or 'Protected Rule'.
$ this -> SET_RULE ( $ name , $ data = '' );
// Get 'Protected Rule' data.
$ this -> GET_RULE ( $ name );
// Delete valid 'Protected Rule' data.
$ this -> DESTROY_RULE ( $ name ); Um Ihre Datenbank zu konfigurieren, gehen Sie bitte zu backend/.secrets/.db . Dort enthält ein Objekt, um Ihre Datenbank zu konfigurieren:
{ "DB_HOST" : " " , "DB_NAME" : " " , "DB_USERNAME" : " " , "DB_PASSWORD" : " " }Legen Sie alle Schlüsselwerte mit Ihren Datenbankkonfigurationen ein.
Standardmäßig wird Janggelan für das Verzeichnis validiert. Wenn der URI, der sich auf einen ISSET -Ordner oder ein Verzeichnis bezieht, wird das Janggelan -System nicht gestartet, da es durch umgeleitete in diesen Ordner oder Verzeichnis umgeleitet wird. Wenn Sie nicht möchten, dass dies passiert ist, öffnen Sie die Datei backend/force.uri und schreiben Sie den alten Wert in TRUE um.
Dali Kewara | [email protected]
Janggelan ist ein Open-Sourcing-PHP-Framework, das nach der MIT-Lizenz lizenziert wurde.