Mit diesem Framework können Sie eine ganze PHP-Anwendung auf MVC (Modell-View-Controller) erstellen oder sie einfach als Sammlung nützlicher PHP-Klassen verwenden. Alle Teile des Frameworks können einzeln verwendet werden.
Weitere verfügbare Klassen und Methoden finden Sie im ApiIndex.
Bitte beziehen Sie sich auf die Beispielanwendung, während sich die Dokumentation in diesem unvollständigen Zustand befindet.
Sie können JSMF über den Komponisten installieren. Fügen Sie Ihrem Composer.json die folgende Abhängigkeit hinzu
{
"require" : {
"janst123/jsmf" : " >=1.0.0 "
}Sie können JSMF auch aus diesem Repository klonen (verwenden Sie die Versionstags oder klonen Sie den Master -Zweig für die neuesten Änderungen). In diesem Fall müssen Sie Ihren eigenen Autoloader schreiben.
Dies ist nur erforderlich, wenn Sie Ihre gesamte Anwendung auf JSMF stützen möchten. Sie können auch einzelne Klassen mit dem JSMF -Autoloader oder Ihrem eigenen verwenden.
Platzieren Sie diesen Code in Ihre Anwendungs -Indexdatei. Alle Anforderungen durch diese Datei weiterleiten (siehe diesen GIST, um eine Einführung zu erhalten, wie alle Anforderungen an index.php mit apache weitergeleitet werden). Mit diesem minimalen Setup ermöglichen die JSMF Anwendungsklasse das Modell/Controller/Aktion aus der Anforderungs -URL (http: // host/modul/controller/action).
Wenn nicht ein oder mehrere URL -Teile vorhanden sind, verwendet die Anwendung immer die "Index" -Kaktion (den "Index" -Controller, das "Index" -Modul).
Beispiel: Anfordern von http: // host versucht, Modul "index" -> IndexController -> IndexAction, Anforderung an http: // host/misc/faq aufzurufen "Modul" 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
}