Con este marco, puede construir una aplicación PHP basada en MVC (modelo-view-view-controller) o simplemente usarla como una colección de clases de PHP útiles. Todas las partes del marco se pueden usar individualmente.
Consulte el Apiindex para todas las clases y métodos disponibles.
Consulte la aplicación de ejemplo mientras la documentación esté en este estado incompleto.
Puede instalar JSMF a través del compositor. Agregue la siguiente dependencia a su compositor.json
{
"require" : {
"janst123/jsmf" : " >=1.0.0 "
}También puede clonar JSMF de este repositorio (usar las etiquetas de versión o clonar la rama maestra para los últimos cambios). En este caso, debe escribir su propio Autoloader.
Esto solo es necesario si desea basar toda su aplicación en JSMF. También puede usar clases únicas, utilizando el JSMF Autoloader o el suyo.
Coloque este código en su archivo de índice de aplicaciones. Entrete todas las solicitudes a través de este archivo (consulte esta esencia para una introducción sobre cómo enrutar todas las solicitudes a index.php con Apache) usando esta configuración mínima permitirá que la clase JSMF Application determine el modelo/controlador/acción a partir de la url de solicitud (http: // host/module/controlador/acción).
Si una o más piezas de URL no están presentes, la aplicación siempre usará la acción "índice" (el controlador "índice", el módulo "índice").
Ejemplo: Solicitar http: // host intentará llamar al módulo "índice" -> indexController -> indexAction, solicitar a http: // host/misc/faq llamará al módulo "miss miscr" -> faqController -> indexAction
<?php
define ( ' DEV_SERVER ' , true ); // define this
define ( ' SRC ' , realpath ( dirname ( __FILE__ ) . ' /../ ' ));
require ( SRC . ' /vendor/autoload.php ' );
try {
// optional: load an application wide config
JSMF Config:: load ( SRC . ' /config/base.config.php ' );
// optional: load application wide translations
JSMF Language:: loadTranslations ( SRC . ' /language/translations ' , ' de ' );
// optional: route special URLs to special modules / controllers / actions ( I always place the legal texts in a Module named misc)
JSMF Request:: addRoute ( ' /^/disclaimer/?$/i ' , ' misc ' , ' index ' , ' disclaimer ' ); // route a request to /disclaimer to the disclaimer Action in the IndexController in the module "misc"
JSMF Request:: addRoute ( ' /^/privacy/?$/i ' , ' misc ' , ' index ' , ' privacy ' );
// register the autoloader and run the application
JSMF Application:: registerAutoloader ();
JSMF Application:: run ();
// output the applications response (can be HTML, JSON ...)
JSMF Response:: output ();
} catch ( JSMF Exception NotFound $ e ) {
// do some special things for not-found errors e.g. redirect to a static 404 page
JSMF Request:: redirect ( ' /404.html ' );
JSMF Response:: output (); // output method also sends the headers (here: the Location header)
} catch ( JSMF Exception $ e ) {
// output is done by JSMF
JSMF Response:: setException ( $ e );
JSMF Response:: output ();
} catch ( Exception $ e ) {
// do something on common non-JSMF Exception
}