Alle Ihre Anwendungen werden aus dieser Klasse abgeleitet oder verwenden Klassen, die Geschwister dieser Anwendungsklasse sind.
Diese Klasse enthält:
Mit der Zeit wächst Ihre Bewerbung und die Anzahl der Routen steigt. Daher haben wir eine bequeme Möglichkeit gegeben, alle Routen in einer eigenständigen Konfigurationsdatei zu speichern. Daher ist es nicht erforderlich, alle Routen in einem Konstruktor eines Anwendungsobjekts (oder einer abgeleiteten Klasse) zu initialisieren.
Lassen Sie uns herausfinden, wie Sie es verwenden können.
Erstellen Sie zunächst in Ihrem Projektverzeichnis die Konfigurationsdatei ./conf/routes.php. Es muss so aussehen:
$ callbackProvider = new SomeCallbackClass ();
return
[
[
' route ' => ' /news/ ' , // your route
' callback ' => ' displayNewsLine ' // this must be the method name of your
// Application derived class
] ,
[
' route ' => ' /news/[i:news_id]/ ' , // your route
' callback ' => ' displayExactNews ' , // this must be the method name of your
' method ' => ' POST ' // Application derived class
] ,
[
' route ' => ' /some-route/ ' ,
' method ' => ' GET ' ,
' callback ' => [ // here we specify callback as pair [object, method]
callbackProvider ,
' someMethod '
]
]
];Beachten Sie, dass das Feld "Methode" nicht festgelegt ist, dann wird es standardmäßig erhalten.
Sie können auch Ihre eigene Konfigurationsdatei angeben.
Rufen Sie dann einfach Anwendung an :: loadRoutesfromConfig ()
$ app -> loadRoutesFromConfig ( ' ./conf/my-config.php ' );Diese Klasse bietet einfache Anwendungsroutine mit komplexerem Rendering und Fehlerbehebung.
In Anwendungsklassen können nur Zeichenfolgen zurückgegeben werden. Mit der Common Application -Klasse können Sie jedoch Arrays der Zeichenfolge zurückgeben, die in den Vorlagen -Platzhaltern platziert werden.
Einfaches Beispiel:
class ExampleApplication extends CommonApplication
{
/**
* Constructor.
*/
function __construct ( $ template )
{
parent :: __construct ( $ template );
}
function actionSimplePage ()
{
return [
' title ' => ' Route title ' ,
' main ' => ' Route main '
];
}
}Hier erzeugt der Handler von Route zwei Teile der Seite / einfache Seite / - 'Titel' und 'Main'. Diese beiden Teils werden in {Titel} bzw. {Main} -Plädiger eingefügt.
Komplexeres Beispiel:
class ExampleApplication extends CommonApplication
{
/**
* Constructor.
*/
function __construct ( $ template )
{
parent :: __construct ( $ template );
}
function actionSimplePage ()
{
return [
' title ' => ' Route title ' ,
' main ' => new View ( ' Generated main content ' )
];
}
}Hier übergeben wir die Instanz der Klassenansicht (oder der von der Ansicht abgeleiteten Klasse) an den Anwendungsseitenkompilator. Es wird View :: Render -Methode angerufen, die kompilierte HTML -Inhalte zurückgeben muss.
Sie können auch Al -Routen in Konfigurationen aufbewahren. Sie können JSON -Konfigurationen verwenden:
[
{
"route" : "/route1/" ,
"callback" : "route1" ,
"method" : "GET"
} ,
{
"route" : "/route2/" ,
"callback" : "route2" ,
"method" : [ "GET" , "POST" ]
}
]Diese Daten müssen in der Dirin Ihres Projekts './conf/' gespeichert werden. Oder laden Sie Konfigurationen explizit wie unten gezeigt (unter Verwendung von Methoden loadRoutesFromConfig).
Und wir benötigen diese Methoden auch in der Anwendungsklasse.
class ExampleApplication extends CommonApplication
{
/**
* Constructor.
*/
function __construct ( $ template )
{
parent :: __construct ( $ template );
// loading config on custom path
$ this -> loadRoutesFromConfig ( ' ./my-routes.json ' );
}
function route1 ()
{
return [
// here result
];
}
function route2 ()
{
return [
// here result
];
}
}Beachten Sie, dass Sie mehrere Konfigurationen mit einem Anruf der Methode LoadRoutesFromConfigs laden können
function __construct ( $ template )
{
parent :: __construct ( $ template );
$ this -> loadRoutesFromConfigs ([ ' ./conf/my/routes.json ' , ' ./conf/my-routes.php ' ]);
}Oder das gleiche:
function __construct ( $ template )
{
parent :: __construct ( $ template );
$ this -> loadRoutesFromDirectory ( ' ./conf ' );
} Sie können eine Datei mit der Liste der Nachrichten erstellen, die in der Template Variable action-message ersetzt werden
Diese Datei muss im Verzeichnis %your-application-class-directory%/res/action-messages.json gespeichert werden
Wenn die Klasse dann $_GET['action-message'] Parameter findet, wird die Substitution von action-message Substitution ausgelöst.
Sie können einfach den Inhalt der *.tpl -Datei als gemeinsame Ansicht ausgeben. Es kann nützlich sein, wenn Sie statische Seiten oder statische Seitenteile rendern müssen. Sie können vermeiden, dass Sie für diese Zwecke separate Klasse und separate Ansichtsmethoden erstellen.
Es ist ganz einfach:
// here $template is an instance of the MezonHtmlTemplateHtmlTemplate class
// and 'block-name' is a block name in this class
$ view = new Mezon Application ViewStatic ( $ template , ' block-name ' );Weitere Informationen zu Mezon -Vorlagen finden Sie unter
tba