A simple but powerful routing framework for PHP.
To create a new router responding to the root url of your server, simply do the following:
$router = new \Yarf\Router();
$classMap = [
"" => IndexPage::class
];
$router->route($classMap);
There are three basic page types. HtmlPage
, JsonPage
and TextPage
. Each of them is subclassable and meant to return either html, json or plain text. The content type for the http response is set appropriately.
Create a restful service with this framework is dead simple. Here is a quick example:
use Yarf\response\Response;
class UserApi extends Yarf\page\JsonPage {
private $user;
public function initialize() {
$this->user = ...;
}
public function get(Response $response) {
$response->result($this->user);
return $response;
}
public function post(Response $response) {
$this->user->update(...);
$response->result($this->user);
return $response;
}
public function delete(Response $response) {
$response->result($this->user->delete());
return $response;
}
}
When configuring your routes, route elements using a scheme like {variable}
will be interpreted as variable uri parts.
use Yarf\response\Response;
class UserApi extents \Yarf\page\JsonPage {
public function get(Response $response, $userId) {
$response->result(UserCache::get($userId));
return $response;
}
}
$classMap = [
"api" => [
"user" => [
"{userId}" => UserApi::class
]
]
]
$router = new Yarf\Router();
$router->route($classMap);