Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/franzose/gimme-url
URL generator for the League Route router
https://github.com/franzose/gimme-url
league-router php-library url-generator
Last synced: about 1 month ago
JSON representation
URL generator for the League Route router
- Host: GitHub
- URL: https://github.com/franzose/gimme-url
- Owner: franzose
- License: mit
- Created: 2019-08-13T02:13:34.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-08-13T14:11:41.000Z (over 5 years ago)
- Last Synced: 2024-04-24T15:09:55.067Z (8 months ago)
- Topics: league-router, php-library, url-generator
- Language: PHP
- Size: 21.5 KB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Gimme URL
Gimme URL is a missing URL generator for the [League Route](https://github.com/thephpleague/route) library. It's capable to generate relative and absolute paths to named routes.## Installation
Use Composer to install Gimme URL:```bash
composer install franzose/gimme-url
```## Setup and usage
URL generator requires you to provide `Router` and `RequestContext` instances. The latter gathers information from a `Psr\Http\Message\ServerRequestInterface` instance and is used to build absolute paths to named routes.
```php
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'
```