Toutes vos applications seront dérivées de cette classe ou utiliseront des classes qui sont des frères et sœurs de cette classe d'application.
Cette classe fournit:
Avec le temps, votre application augmentera et le nombre d'itinéraires augmentera. Nous avons donc fourni un moyen pratique de stocker tous les itinéraires dans un fichier de configuration autonome. Il n'est donc pas nécessaire d'initialiser tous les itinéraires dans le constructeur d'un objet d'application (ou de classe dérivée).
Découvrons comment vous pouvez l'utiliser.
Créez tout d'abord le fichier de configuration ./conf/routes.php dans votre répertoire de projets. Cela doit ressembler à ceci:
$ 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 '
]
]
];Notez que le champ «Méthode» n'est pas défini, puis il sera par défaut d'obtenir.
Vous pouvez également spécifier votre propre fichier de configuration.
Puis il suffit d'appeler l'application :: LoadRoutesFromConfig ()
$ app -> loadRoutesFromConfig ( ' ./conf/my-config.php ' );Cette classe fournit une routine d'application simple avec un rendu plus complexe et une gestion des erreurs.
Dans les classes d'applications, les routes peuvent ne retourner que des chaînes. Mais la classe CommonApplication vous permet de retourner des tableaux de chaîne qui seront placés dans les espaces réservés du modèle.
Exemple simple:
class ExampleApplication extends CommonApplication
{
/**
* Constructor.
*/
function __construct ( $ template )
{
parent :: __construct ( $ template );
}
function actionSimplePage ()
{
return [
' title ' => ' Route title ' ,
' main ' => ' Route main '
];
}
}Ici, le gestionnaire de Route génère deux parties de la page / PAGE SIMPLE / - «Title» et «Main». Ces deux parties seront insérées dans {title} et {main} des espaces réservées respectivement.
Exemple plus complexe:
class ExampleApplication extends CommonApplication
{
/**
* Constructor.
*/
function __construct ( $ template )
{
parent :: __construct ( $ template );
}
function actionSimplePage ()
{
return [
' title ' => ' Route title ' ,
' main ' => new View ( ' Generated main content ' )
];
}
}Ici, nous passons l'instance de la vue de classe (ou toute classe dérivée de la vue) au compilateur de page d'application. Il appellera la vue View :: Render qui doit renvoyer le contenu HTML compilé.
Vous pouvez également conserver les itinéraires AL dans les configurations. Vous pouvez utiliser des configurations JSON:
[
{
"route" : "/route1/" ,
"callback" : "route1" ,
"method" : "GET"
} ,
{
"route" : "/route2/" ,
"callback" : "route2" ,
"method" : [ "GET" , "POST" ]
}
]Ces données doivent être stockées dans le DIR './conf/' de votre projet. Ou charger des configurations explicites comme indiqué ci-dessous (en utilisant la méthode LoadRoutesFromConfig).
Et nous avons également besoin de ces méthodes dans la classe d'application.
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
];
}
}Notez que vous pouvez charger plusieurs configurations avec un appel de la méthode LoadRoutesFromConfigs
function __construct ( $ template )
{
parent :: __construct ( $ template );
$ this -> loadRoutesFromConfigs ([ ' ./conf/my/routes.json ' , ' ./conf/my-routes.php ' ]);
}Ou la même chose:
function __construct ( $ template )
{
parent :: __construct ( $ template );
$ this -> loadRoutesFromDirectory ( ' ./conf ' );
} Vous pouvez créer un fichier avec la liste des messages qui seront substitués dans la variable action-message de la variable de modèle
Ce fichier doit être stocké dans le répertoire %your-application-class-directory%/res/action-messages.json
Ensuite, si la classe trouvera un paramètre $_GET['action-message'] , la substitution action-message sera déclenchée.
Vous pouvez simplement produire le contenu du fichier * .tpl comme vue commune. Il peut être utile si vous avez besoin de rendre des pages statiques ou des parties de page statique. Il vous permettra d'éviter de créer une classe distincte et des méthodes de vue séparées à ces fins.
C'est assez simple:
// 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 ' );Pour plus de détails sur les modèles Mezon, voir
TBA