С помощью этой структуры вы можете построить целое MVC (модель-контроллер) PHP-приложение, или просто использовать его в качестве коллекции полезных классов PHP. Все части структуры могут использоваться индивидуально.
Смотрите Apiindex для всех доступных классов и методов.
Пожалуйста, обратитесь к примеру приложения , пока документация находится в этом неполном состоянии.
Вы можете установить JSMF через композитор. Добавьте следующую зависимость в свой composer.json
{
"require" : {
"janst123/jsmf" : " >=1.0.0 "
}Вы также можете клонировать JSMF из этого репозитория (используйте теги версии или клонировать главную ветвь для последних изменений). В этом случае вам нужно написать свой собственный автозагрузчик.
Это необходимо, только если вы хотите основать все свое приложение на JSMF. Вы также можете использовать отдельные классы, используя автоторист JSMF или свой собственный.
Поместите этот код в файл индекса приложений. Маршрут весь запрос через этот файл (см. Этот GIST для введения о том, как маршрутизировать все запросы на index.php с помощью Apache), используя эту минимальную настройку, позволит классу JSMF приложения определить модель/контроллер/действие из URL -адреса запроса (http: // host/module/controller/action).
Если одна или несколько частей URL нет, приложение всегда будет использовать действие «индекс» (контроллер «индекс», модуль «индекс»).
Пример: Запрашивание http: // host попытается вызовать модуль «index» -> indexController -> indexaction, запрос на http: // host/misc/faq будет вызовом модуль «misc» -> faqcontroller -> indexation
<?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
}