$ composer require troublete/monty
<?php
require_once ' path/to/vendor/autoload.php ' ;
$ application = new Monty Application ();
$ application -> get (
' /request[/{someId}] ' ,
function ( Monty Request $ req , Monty Response $ res , $ someId ) {
// do some awesome stuff
return new Symfony Component HttpFoundation JsonResponse ([]);
}
); Parsing rute didasarkan pada paket fastroute yang dibuat menjadi @nikic, jadi sebagian besar harus dimungkinkan untuk mendefinisikan rute sebagaimana ditentukan oleh fastroute. Pencocokan rute dilakukan melalui PCRE dengan pembatas diatur ke @ , jadi ketahuilah saat mengatur parameter Regex yang ditentukan pengguna cocok dengan @ . Definisi rute memungkinkan bagian variabel di akhir definisi yang ditandai dengan [] . Karena ini dimungkinkan, pencocokan akan mencoba beberapa ekspresi reguler dalam urutan kompleksitas keturunan dan akan kembali pada pertandingan pola pertama.
Routing yang valid
/search/{searchId} => routing with parameter
/search/{searchId:d+} => routing with parameter with defined regex
/search[/{searchId}] => routing with optional parameter
/search/index[es] => routing with optional part
Routing tidak valid
/search/index[es]/{searchId} => optional chunk in the middle
Definisi penanganan akan diproses dalam urutan pendaftaran segera setelah satu cocok dengan permintaan yang diterima akan dikirim, kembali dan karenanya menutup proses.
Selain itu, Monty dirancang untuk menjadi centrik permintaan dan respons, mengikuti dogma bahwa satu permintaan ke aplikasi akan ditangani sekali sehingga segala sesuatu yang dibutuhkan selama siklus hidup disertakan (atau harus ditambahkan) dalam objek permintaan atau respons.
Penangan pada definisi adalah array callable dan akan dieksekusi secara serempak agar sesuai dengan definisi. Middlewares terdaftar untuk berjalan sebelum atau sesudah diintegrasikan dalam "Call Stack" ini.
Jika objek respons dikembalikan dalam penangan, itu ditafsirkan sebagai respons proses dan tidak dapat diatur ulang (tetapi dimodifikasi).
Aplikasi adalah komponen utama Monty. Ini akan menangani pendaftaran penangan rute, menengah dan pengaturan permintaan dan tanggapan tambahan. Umumnya berisi empat kasus penggunaan yang berbeda. Mengakses permintaan atau objek respons dari proses permintaan saat ini, mendaftarkan penangan rute dan mendaftarkan tudung middlew yang akan dieksekusi selama siklus hidup.
Selain metode penggunaan kasus ini juga berisi antarmuka metode alias untuk membuat kode Anda menulis lebih mudah dimengerti dan ramping.
Metode ini mendaftarkan penangan permintaan baru untuk rute tertentu sehubungan dengan kumpulan metode permintaan yang harus dikirim.
| Argumen | Jenis | Keterangan |
|---|---|---|
| $ Metode | rangkaian[] | Pengumpulan metode permintaan dalam huruf besar. |
| $ rute | rangkaian | Rute tempat para penangan terdaftar. |
| ... $ Handlers | Callable [] | Koleksi penangan yang akan dieksekusi. |
// ...
$ app -> handle (
[ ' GET ' ],
' /index ' ,
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ }
// ...
);
// ... | Metode | Keterangan |
|---|---|
| All ($ route, ... $ Handlers) | Metode alias yang akan bereaksi terhadap semua metode permintaan |
| Dapatkan ($ rute, ... $ Handlers) | Metode alias yang akan bereaksi untuk mendapatkan permintaan |
| POST ($ rute, ... $ Handlers) | Metode alias yang akan bereaksi terhadap permintaan pos |
| kepala ($ rute, ... $ penangan) | Metode alias yang akan bereaksi terhadap permintaan kepala |
| Opsi ($ Route, ... $ Handlers) | Metode alias yang akan bereaksi terhadap permintaan opsi |
| tambalan ($ rute, ... $ penangan) | Metode alias yang akan bereaksi terhadap permintaan patch |
| put ($ rute, ... $ penangan) | Metode alias yang akan bereaksi terhadap permintaan menempatkan |
| hapus ($ rute, ... $ penangan) | Metode alias yang akan bereaksi terhadap permintaan hapus |
Metode ini mendaftarkan penangan tambahan yang akan dieksekusi tanpa memperhatikan metode permintaan.
| Argumen | Jenis | Keterangan |
|---|---|---|
| $ menempatkan | bilangan bulat | Posisi Siklus Hidup Permintaan (Aplikasi :: Prepend - Sebelumnya, Aplikasi :: Tambahkan - Setelah) Ketika penangan harus dieksekusi. |
| ... $ Handlers | Callable [] | Koleksi penangan yang akan dieksekusi. |
// ...
$ app -> middleware (
Monty Application:: PREPEND ,
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ },
function ( $ req , $ res ) { /*...*/ }
// ...
);
// ... | Metode | Keterangan |
|---|---|
| Sebelum (... $ Handlers) | Metode alias yang akan menambah penangan permintaan yang dieksekusi sebelum penanganan permintaan yang sebenarnya |
| setelah (... $ penangan) | Metode alias yang akan menambah permintaan penangan yang dieksekusi setelah penanganan permintaan yang sebenarnya |
Metode ini mengambil objek permintaan saat ini.
Metode ini mengambil objek respons saat ini.
Objek permintaan adalah bagian tengah dari proses. Ini berisi kemungkinan untuk menambahkan properti dan layanan yang diperlukan selama permintaan. Dengan penanganan itu, objek permintaan tetap kecil dan hanya dependensi yang diperlukan terdaftar saat dibutuhkan.
Metode untuk mengambil IP permintaan.
Metode untuk mengambil nilai header tipe konten yang diminta.
Metode untuk mengambil parameter $ _files.
Metode ini dapat digunakan untuk mengambil properti atau layanan yang disetel ke permintaan.
| Argumen | Jenis | Keterangan |
|---|---|---|
| ... $ parameter | campur aduk | Koleksi parameter melewati metode setter panjang. |
// ...
$ request -> get ( ' logger ' , new SomeDefault ());
$ request -> get ( ' property ' , ' some default value ' );
// ... Metode untuk mengambil permintaan mentah yang tertanam di objek permintaan monty .
Metode untuk mengambil host HTTP termasuk protokol.
Metode untuk memeriksa apakah metode permintaan adalah nilai tertentu.
| Argumen | Jenis | Keterangan |
|---|---|---|
| $ Metode | rangkaian | Metode meminta untuk memeriksa. |
Metode untuk memeriksa apakah permintaan yang dikirim aman (https/ssl).
Metode untuk mengambil jalur permintaan.
Metode untuk mengambil nilai pengembalian pawang sebelumnya di tumpukan.
Metode untuk mengambil parameter $ _get.
Metode untuk mengambil metode permintaan.
Metode untuk mengambil parameter $ _post.
Metode untuk mengambil nilai parameter rute cocok dengan instance route handler.
Metode ini dapat digunakan untuk menambahkan instance atau properti kelas ke permintaan yang dapat diakses di sepanjang tumpukan panggilan. Biasanya metode ini mengambil setidaknya dua parameter, pertama ID properti/layanan sebagai string dan kedua skalar atau nilai objek.
Array tidak diperbolehkan ditetapkan sebagai properti permintaan untuk menghindari kode yang berantakan dan pengumuman sumber daya.
| Argumen | Jenis | Keterangan |
|---|---|---|
| ... $ parameter | campur aduk | Koleksi parameter melewati metode setter panjang. |
// ...
$ request -> set ( ' logger ' , new SomeLogger ()); // valid
$ request -> set ( ' property ' , ' some value ' ); // valid
$ request -> set ( ' not_possible ' , []); // invalid
// ... Metode untuk mengatur pengembalian pawang sebelumnya.
| Argumen | Jenis | Keterangan |
|---|---|---|
| nilai $ | campur aduk | Nilai pengembalian pawang sebelumnya. |
Metode untuk memperbarui parameter rute yang diatur ke permintaan.
| Argumen | Jenis | Keterangan |
|---|---|---|
| $ params | array | Parameter rute yang akan diatur. |
Objek respons umumnya diasumsikan untuk menyelesaikan dirinya sendiri - makna yang harus menangani bagaimana respons yang didefinisikan harus diberikan dalam respons aplikasi. Anda dapat menggunakan hanya objek respons komponen http Symfony, atau mendefinisikan yang sendiri, yang perlu mengimplementasikan monty responseinterface.
Handler didefinisikan sebagai callable yang terdaftar dalam definisi rute handler atau middleware.
Handler dapat berupa, fungsi lambda sederhana, objek penutupan, kelas, ... praktis apa pun yang dimungkinkan untuk dipanggil. Tidak ada batasan di sini.
© 2017 Willi Eßer