gimme url
The first release
gimme url เป็นตัวสร้าง URL ที่ขาดหายไปสำหรับไลบรารี League Route สามารถสร้างเส้นทางสัมพัทธ์และเส้นทางสัมบูรณ์ไปยังเส้นทางที่มีชื่อได้
ใช้ Composer เพื่อติดตั้ง gimme url :
composer install franzose/gimme-url
ตัวสร้าง URL ต้องการให้คุณจัดเตรียม Router
และอินสแตนซ์ RequestContext
หลังรวบรวมข้อมูลจากอินสแตนซ์ PsrHttpMessageServerRequestInterface
และใช้เพื่อสร้างเส้นทางที่แน่นอนไปยังเส้นทางที่มีชื่อ
<?php
use GimmeUrl RequestContext ;
use GimmeUrl Router ;
use GimmeUrl UrlGenerator ;
use Zend Diactoros ServerRequestFactory ;
$ router = new Router ();
$ router -> get ( ' /foo/{bar} ' , function () {
//
})-> setName ( ' foo_route ' );
// Let's say the request is secure and is made at example.com on 8080 port
$ request = ServerRequestFactory:: fromGlobals ( $ _SERVER , $ _GET , $ _POST , $ _COOKIE , $ _FILES );
$ context = RequestContext:: fromRequest ( $ request );
$ generator = new UrlGenerator ( $ router , $ context );
// Then you'll get this
$ generator -> relative ( ' foo_route ' , [ ' bar ' => ' 123 ' ]); // '/foo/123'
$ generator -> relative ( ' foo_route ' , [ ' bar ' => ' 123 ' , ' qux ' => ' doo ' ]); // '/foo/123?qux=doo'
$ generator -> absolute ( ' foo_route ' , [ ' bar ' => ' 456 ' ]); // 'https://example.com:8080/foo/456'
$ generator -> absolute ( ' foo_route ' , [ ' bar ' => ' 456 ' , ' qux ' => ' doo ' ]); // 'https://example.com:8080/foo/456?qux=doo'