
Perpustakaan Routing HTTP yang ringan untuk PHP. (WIP)
multipart/form-data x-www-form-urlencoded application/xml application/json query uri permintaan params path dan headers permintaan akses /abc/{some} /abc/regex(id=^[0-9]+$) /abc/{some?} Lihat Leap Micro-Framework Berdasarkan Ruta.
PHP 8.0 atau lebih baru.
Instal melalui komposer
composer require joseluisq/ruta:dev-master <?php
declare (strict_types= 1 );
require ' vendor/autoload.php ' ;
use Ruta Header ;
use Ruta Method ;
use Ruta Ruta ;
use Ruta Request ;
use Ruta Response ;
use Ruta Status ;
// 1. Callback style
// NOTE: `Request`, `Response`, `array` (slug arguments) are passed to the callback.
// However they are optional and their order can be modified. See more examples below.
Ruta:: get ( ' /home/hola ' , function ( Request $ req , Response $ res ) {
$ res -> json ([
' host ' => $ req -> header (Header::Host),
' headers ' => $ req -> headers (),
]);
});
Ruta:: get ( ' /home/hola/redirect ' , function ( Response $ res ) {
$ res -> redirect ( ' /home/aaa/some/bbb ' );
});
Ruta:: get ( ' /reg/regex(id=^[0-9]+$)/exp ' , function ( Response $ res , array $ args ) {
$ res -> json ([ ' args ' => $ args ]);
});
Ruta:: post ( ' /home/{path3}/some2 ' , function ( Response $ res ) {
$ res -> json ([ ' post_data ' => 11010101010 ]);
});
Ruta:: some ( ' /home/some ' , [Method:: POST , Method:: PUT ], function ( Request $ req , Response $ res ) {
$ res -> json ([ ' only ' => $ req -> method ()]);
});
Ruta:: any ( ' /home/methods ' , function ( Request $ req , Response $ res ) {
$ res -> json ([ ' method ' => $ req -> method ()]);
});
Ruta:: post ( ' /home/{path} ' , function ( Response $ res ) {
$ res
-> header ( ' X-Header-One ' , ' Header Value 1 ' )
-> header ( ' X-Header-Two ' , ' Header Value 2 ' )
-> json ([ ' some_data ' => 223424234 ]);
});
// 2. class/method style
class HomeCtrl
{
public function index ( Request $ req , Response $ res , array $ args )
{
// 2.1 $args contains route placeholder values
if ( array_key_exists ( ' path1 ' , $ args )) {
// do something...
}
// 2.2. Get data provided via `multipart/form-data`
$ data = $ req -> multipart ();
// 2.3. Get all headers
$ data = $ req -> headers ();
// 2.4. Get a single header
$ data = $ req -> header ( " Host " );
// 2.5. Get data provided via `application/x-www-form-urlencoded`
$ data = $ req -> urlencoded ();
// 2.6. Get data provided via `application/json`
$ data = $ req -> json ();
// 2.7. Get data provided via `application/xml`
$ data = $ req -> xml ();
// 2.8. Get query data
$ data = $ req -> query ();
$ res -> json ([ ' data ' => ' Message from a class! ' ]);
}
// Custom 404 reply
public function not_found ( Response $ res )
{
$ res
-> status (Status::NotFound)
-> text ( " 404 - Page Not Found! " );
}
}
Ruta:: get ( ' /home/{path1}/some/{path2} ' , [HomeCtrl::class, ' index ' ]);
// 3. Handle 404 not found routes
Ruta:: not_found ([HomeCtrl::class, ' not_found ' ]);File: Contoh/nginx/public/index.php
# Or run example using Docker + Nginx server
make compose-up # Run example using the PHP built-in server
make container-devSekarang navigasikan misalnya ke http: // localhost: 8088/home/hola
Jangan ragu untuk mengirim permintaan tarik atau mengajukan beberapa masalah.
Kecuali jika Anda secara eksplisit menyatakan sebaliknya, kontribusi apa pun secara sengaja diserahkan untuk dimasukkan dalam pekerjaan saat ini oleh Anda, sebagaimana didefinisikan dalam lisensi APACHE-2.0, harus dilisensikan ganda seperti yang dijelaskan di bawah ini, tanpa syarat atau ketentuan tambahan.
Jangan ragu untuk mengirim beberapa permintaan atau masalah tarik.
Pekerjaan ini terutama didistribusikan berdasarkan ketentuan lisensi MIT dan lisensi Apache (versi 2.0).
© 2021-sekarang Jose Quintana