ruta
1.0.0

مكتبة توجيه HTTP خفيفة الوزن لـ PHP. (WIP)
multipart/form-data data x-www-form-urlencoded application/xml application/json query uri path طلب الوصول headers /abc/{some} /abc/regex(id=^[0-9]+$) /abc/{some?} انظر Leap Micro-Framework على أساس Ruta.
PHP 8.0 أو الأحدث.
تثبيت عبر الملحن
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 ' ]);ملف: مثال/nginx/public/index.php
# Or run example using Docker + Nginx server
make compose-up # Run example using the PHP built-in server
make container-devانتقل الآن على سبيل المثال إلى http: // localhost: 8088/home/hola
لا تتردد في إرسال طلب سحب أو تقديم بعض المشكلات.
ما لم تقل صراحةً خلاف ذلك ، فإن أي مساهمة تم تقديمها عن عمد لإدراجها في العمل الحالي بواسطتك ، كما هو محدد في ترخيص Apache-2.0 ، تكون مرخصة مزدوجة كما هو موضح أدناه ، دون أي شروط أو شروط إضافية.
لا تتردد في إرسال بعض طلب السحب أو المشكلة.
يتم توزيع هذا العمل في المقام الأول بموجب شروط كل من ترخيص MIT وترخيص Apache (الإصدار 2.0).
© 2021-خوسيه Quintana الدني