Semua aplikasi Anda akan berasal dari kelas ini atau akan menggunakan kelas yang merupakan saudara kandung dari kelas aplikasi ini.
Kelas ini menyediakan:
Seiring waktu, aplikasi Anda akan tumbuh dan jumlah rute akan meningkat. Jadi kami telah menyediakan cara yang nyaman untuk menyimpan semua rute dalam file konfigurasi mandiri. Jadi tidak perlu menginisialisasi semua rute dalam aplikasi (atau kelas turunan apa pun) konstruktor objek.
Mari kita cari tahu bagaimana Anda bisa menggunakannya.
Pertama -tama buat file config ./conf/routes.php di direktori proyek Anda. Itu pasti terlihat seperti ini:
$ callbackProvider = new SomeCallbackClass ();
return
[
[
' route ' => ' /news/ ' , // your route
' callback ' => ' displayNewsLine ' // this must be the method name of your
// Application derived class
] ,
[
' route ' => ' /news/[i:news_id]/ ' , // your route
' callback ' => ' displayExactNews ' , // this must be the method name of your
' method ' => ' POST ' // Application derived class
] ,
[
' route ' => ' /some-route/ ' ,
' method ' => ' GET ' ,
' callback ' => [ // here we specify callback as pair [object, method]
callbackProvider ,
' someMethod '
]
]
];Perhatikan bahwa bidang 'Metode' tidak disetel maka akan default untuk mendapatkan.
Anda juga dapat menentukan file konfigurasi Anda sendiri.
Kemudian cukup hubungi Aplikasi :: LoadRoutesFromConfig ()
$ app -> loadRoutesFromConfig ( ' ./conf/my-config.php ' );Kelas ini memberikan rutinitas aplikasi sederhana dengan rendering dan penanganan kesalahan yang lebih kompleks.
Dalam rute kelas aplikasi hanya dapat mengembalikan string. Tetapi kelas aplikasi umum memungkinkan Anda mengembalikan array string yang akan ditempatkan di placeholder template.
Contoh sederhana:
class ExampleApplication extends CommonApplication
{
/**
* Constructor.
*/
function __construct ( $ template )
{
parent :: __construct ( $ template );
}
function actionSimplePage ()
{
return [
' title ' => ' Route title ' ,
' main ' => ' Route main '
];
}
}Di sini route's handler menghasilkan dua bagian halaman / halaman sederhana / - - 'judul' dan 'utama'. Kedua bagian ini akan dimasukkan ke dalam {title} dan {main} placeholder masing -masing.
Contoh yang lebih kompleks:
class ExampleApplication extends CommonApplication
{
/**
* Constructor.
*/
function __construct ( $ template )
{
parent :: __construct ( $ template );
}
function actionSimplePage ()
{
return [
' title ' => ' Route title ' ,
' main ' => new View ( ' Generated main content ' )
];
}
}Di sini kami memberikan contoh dari tampilan kelas (atau kelas apa pun yang berasal dari tampilan) ke kompilator halaman aplikasi. Ini akan memanggil tampilan :: render Metode yang harus mengembalikan konten HTML yang dikompilasi.
Anda juga dapat menyimpan rute AL di konfigurasi. Anda dapat menggunakan konfigurasi JSON:
[
{
"route" : "/route1/" ,
"callback" : "route1" ,
"method" : "GET"
} ,
{
"route" : "/route2/" ,
"callback" : "route2" ,
"method" : [ "GET" , "POST" ]
}
]Data ini harus disimpan di './conf/' Dir dari proyek Anda. Atau memuat konfigurasi secara eksplisit seperti yang ditunjukkan di bawah ini (menggunakan metode LoadRoutesFromConfig).
Dan kami juga membutuhkan metode ini di kelas aplikasi.
class ExampleApplication extends CommonApplication
{
/**
* Constructor.
*/
function __construct ( $ template )
{
parent :: __construct ( $ template );
// loading config on custom path
$ this -> loadRoutesFromConfig ( ' ./my-routes.json ' );
}
function route1 ()
{
return [
// here result
];
}
function route2 ()
{
return [
// here result
];
}
}Perhatikan bahwa Anda dapat memuat beberapa konfigurasi dengan satu panggilan metode LoadRoutesFromConfigs
function __construct ( $ template )
{
parent :: __construct ( $ template );
$ this -> loadRoutesFromConfigs ([ ' ./conf/my/routes.json ' , ' ./conf/my-routes.php ' ]);
}Atau sama:
function __construct ( $ template )
{
parent :: __construct ( $ template );
$ this -> loadRoutesFromDirectory ( ' ./conf ' );
} Anda dapat membuat file dengan daftar pesan yang akan diganti dalam action-message variabel template
File ini harus disimpan di direktori %your-application-class-directory%/res/action-messages.json
Kemudian jika kelas akan menemukan parameter $_GET['action-message'] , maka substitusi action-message akan dipicu.
Anda dapat dengan mudah mengeluarkan konten file *.tpl sebagai tampilan umum. Ini bisa berguna jika Anda perlu membuat halaman statis atau bagian halaman statis. Ini akan memungkinkan Anda untuk menghindari membuat kelas yang terpisah dan memisahkan metode tampilan untuk tujuan ini.
Itu cukup sederhana:
// here $template is an instance of the MezonHtmlTemplateHtmlTemplate class
// and 'block-name' is a block name in this class
$ view = new Mezon Application ViewStatic ( $ template , ' block-name ' );Untuk detail lebih lanjut tentang Template Mezon Lihat
tba