Dengan kerangka kerja ini Anda dapat membangun seluruh aplikasi PHP berbasis MVC (model-view-controller) atau hanya menggunakannya sebagai kumpulan kelas PHP yang berguna. Semua bagian kerangka kerja dapat digunakan secara individual.
Lihat APIIndex untuk semua kelas dan metode yang tersedia.
Silakan merujuk ke aplikasi contoh saat dokumentasi dalam keadaan tidak lengkap ini.
Anda dapat menginstal JSMF melalui komposer. Tambahkan ketergantungan berikut ke composer.json Anda
{
"require" : {
"janst123/jsmf" : " >=1.0.0 "
}Anda juga dapat mengkloning JSMF dari repositori ini (gunakan tag versi atau klon cabang master untuk perubahan terbaru). Dalam hal ini Anda harus menulis autoloader Anda sendiri.
Ini hanya diperlukan jika Anda ingin mendasarkan seluruh aplikasi Anda di JSMF. Anda juga dapat menggunakan kelas tunggal, menggunakan Autoloader JSMF atau milik Anda.
Tempatkan kode ini di file indeks aplikasi Anda. Rute semua permintaan melalui file ini (lihat GIST ini untuk pengantar tentang cara merutekan semua permintaan ke index.php dengan Apache) menggunakan pengaturan minimal ini akan memungkinkan kelas aplikasi JSMF menentukan model/pengontrol/tindakan dari URL permintaan (http: // host/modul/controller/action).
Jika satu atau lebih bagian URL tidak ada, aplikasi akan selalu menggunakan tindakan "indeks" (pengontrol "indeks", modul "indeks").
Contoh: Meminta http: // host akan mencoba memanggil modul "index" -> indexController -> indexAction, permintaan ke http: // host/misc/faq akan memanggil 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
}