prob / router
A simple http request router library
dev-master
2016-10-23 08:13 UTC
Requires
- php: >=7.0
- prob/handler: dev-master
- prob/url-helper: dev-master
- psr/http-message: *
Requires (Dev)
This package is not auto-updated.
Last update: 2024-11-19 22:30:05 UTC
README
A simple http request router library
Usage
1. Configure url mapping and handler
url.mapping.php
<?php use Prob\Router\Map; $map = new Map(); $map->setNamespace('app\\controller'); $map->get('/', function ($url) { echo 'Hello main!'; }); $map->get('/test', 'Test.hello'); $map->get('/post/{post:int}', 'Post.view'); return $map;
2. Write your request handler (controller)
app/controller/Test.php
<?php namespace app\controller; class Test { public function hello() { echo 'Test page!'; } }
app/controller/Post.php
<?php namespace app\controller; class Post { public function hello($req) { echo 'Post ID: ' . $req['post']; } }
3. Apply!
index.php
<?php use Prob\Router\Dispatcher; use Prob\Rewrite\Request; // use zend-diactoros package (for PSR-7) use Zend\Diactoros\Request; use Zend\Diactoros\Uri; $dispatcher = new Dispatcher(require 'url.mapping.php');
// print 'Hello main' $dispatcher->dispatch( (new Request()) ->withUri(new Uri('http://test.com/')) ->withMethod('GET') );
// print 'Test page!' $dispatcher->dispatch( (new Request()) ->withUri(new Uri('http://test.com/test')) ->withMethod('GET') );
// print 'Post ID: 5' $dispatcher->dispatch( (new Request()) ->withUri(new Uri('http://test.com/post/5')) ->withMethod('GET') );