Com essa estrutura, você pode criar um aplicativo PHP baseado em MVC (Model-View-View-Controller) ou apenas usá-lo como uma coleção de classes PHP úteis. Todas as partes da estrutura podem ser usadas individualmente.
Consulte o Apiindex para todas as classes e métodos disponíveis.
Consulte o aplicativo de exemplo enquanto a documentação estiver neste estado incompleto.
Você pode instalar o JSMF via compositor. Adicione a seguinte dependência ao seu compositor.json
{
"require" : {
"janst123/jsmf" : " >=1.0.0 "
}Você também pode clonar o JSMF deste repositório (use as tags da versão ou clone o ramo mestre para obter as últimas alterações). Nesse caso, você deve escrever seu próprio automóvel.
Isso só é necessário se você deseja basear todo o seu aplicativo no JSMF. Você também pode usar classes únicas, usando o JSMF AutoLoader ou o seu.
Coloque este código em seu arquivo de índice de aplicativos. ROTE TODOS OS SOIT ALVIMENTO NEU PROFIGO (consulte esta GIST para uma introdução sobre como rotear todas as solicitações para index.php com Apache) usando essa configuração mínima permitirá que a classe de aplicativo JSMF determine o modelo/controlador/ação do URL da solicitação (http: // host/module/controlador/ação).
Se uma ou mais peças de URL não estiverem presentes, o aplicativo sempre usará a ação "índice" (o controlador "índice", o módulo "índice").
Exemplo: Solicitar http: // host tentará chamar o módulo de "index" -> indexController -> indexAction, solicitação para http: // host/misc/frequência chamará o módulo "Misc" -> 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
}