Todas sus aplicaciones se derivarán de esta clase o utilizarán clases que son hermanos de esta clase de aplicación.
Esta clase proporciona:
Con el tiempo, su aplicación crecerá y el número de rutas aumentará. Por lo tanto, hemos proporcionado una forma conveniente de almacenar todas las rutas en un archivo de configuración independiente. Por lo tanto, no es necesario inicializar todas las rutas en un constructor del objeto de una aplicación (o cualquier clase derivada).
Descubra cómo puede usarlo.
En primer lugar, cree el archivo de configuración ./conf/routes.php en su directorio de proyectos. Debe verse así:
$ 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 '
]
]
];Tenga en cuenta que el campo 'Método' no está establecido, entonces se predeterminará.
También puede especificar su propio archivo de configuración.
Luego solo llame a la aplicación :: loadRoutesFromConfig ()
$ app -> loadRoutesFromConfig ( ' ./conf/my-config.php ' );Esta clase proporciona una rutina de aplicación simple con representación y manejo de errores más complejos.
En las rutas de clase de aplicación pueden devolver solo cadenas. Pero la clase de aplicaciones comunes le permite devolver conjuntos de cadenas que se colocarán en los marcadores de posición de la plantilla.
Ejemplo simple:
class ExampleApplication extends CommonApplication
{
/**
* Constructor.
*/
function __construct ( $ template )
{
parent :: __construct ( $ template );
}
function actionSimplePage ()
{
return [
' title ' => ' Route title ' ,
' main ' => ' Route main '
];
}
}Aquí el Handler de Route genera dos partes de la página / Página simple / - 'Título' y 'Main'. Estas dos partes se insertarán en marcadores de posición {Title} y {Main} respectivamente.
Ejemplo más complejo:
class ExampleApplication extends CommonApplication
{
/**
* Constructor.
*/
function __construct ( $ template )
{
parent :: __construct ( $ template );
}
function actionSimplePage ()
{
return [
' title ' => ' Route title ' ,
' main ' => new View ( ' Generated main content ' )
];
}
}Aquí pasamos la instancia de la vista de clase (o cualquier clase derivada de la vista) al compilador de la página de la aplicación. Llamará al método View :: Render que debe devolver el contenido HTML compilado.
También puede mantener las rutas Al en las configuraciones. Puede usar las configuraciones JSON:
[
{
"route" : "/route1/" ,
"callback" : "route1" ,
"method" : "GET"
} ,
{
"route" : "/route2/" ,
"callback" : "route2" ,
"method" : [ "GET" , "POST" ]
}
]Estos datos deben almacenarse en el Dir './conf/' de su proyecto. O cargar configuraciones explícitamente como se muestra a continuación (utilizando el método LoadRoutesFromConfig).
Y también necesitamos estos métodos en la clase de aplicación.
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
];
}
}Tenga en cuenta que puede cargar múltiples configuraciones con una llamada del método LoadRoutesFromConfigs
function __construct ( $ template )
{
parent :: __construct ( $ template );
$ this -> loadRoutesFromConfigs ([ ' ./conf/my/routes.json ' , ' ./conf/my-routes.php ' ]);
}O lo mismo:
function __construct ( $ template )
{
parent :: __construct ( $ template );
$ this -> loadRoutesFromDirectory ( ' ./conf ' );
} Puede crear un archivo con la lista de mensajes que se sustituirán en la plantilla variable action-message
Este archivo debe almacenarse en el directorio %your-application-class-directory%/res/action-messages.json
Entonces, si la clase encontrará $_GET['action-message'] parámetro, entonces se activará la sustitución action-message .
Simplemente puede generar contenido del archivo *.TPL como vista común. Puede ser útil si necesita representar páginas estáticas o piezas de página estáticas. Le permitirá evitar crear una clase separada y métodos de vista separados para estos fines.
Es bastante 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 ' );Para más detalles sobre las plantillas de mezon, ver
TBA