odino / exphpress
PHP 缺少的、优雅的、高效的微框架,受 ExpressJS 启发。
0.1.1
2014-07-13 19:53 UTC
Requires
- symfony/http-foundation: ~2.5
- symfony/routing: ~2.5
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-10 02:58:47 UTC
README
PHP 缺少的、优雅的、高效的微框架,受 ExpressJS 启发。
因为 PHP 也很酷。
示例
你需要的最少
<?php $app = Exphpress\app(); $app->listen(function($req, $res){ $date = new \DateTime(); $res->setContent("Today is " . $date->format('l, jS \o\f F Y')); });
这将返回每个请求类似“今天是星期日,2014年7月13日,”的东西;如果你想看到它在行动,克隆此存储库并运行php -S localhost:4000 examples/simple.php
。
变得花哨
匹配 GET 请求很简单
<?php $app = Exphpress\app(); $app->get("/call-me-maybe/{name}", function($req, $res){ $res->setContent("Hey, I just matched you, and this is crazy..."); });
上面的路由将在我们向我们的 web 服务器发出一个匹配路径 /call-me-maybe/{name}
的 GET
请求时匹配。
对于 POST 和所有其他HTTP 方法也可以这样做。
编写自己的中间件
中间件在微框架架构中扮演着重要角色
$app->uses(function($req, $res, $next){ if ($todayIsABadDay) { $res->setStatusCode(403); $res->setContent(null); } else { $next(); } });
正如你可能理解的,$next
是一个回调,它调用后续的中间件,这意味着你可以任意地将它们连接起来(即,查看这个测试)。
安装
Exphpress 通过composer(还能怎样呢?!?)提供。
测试
它们通过 travis 通过 phpspec 运行:如果你想为 exphpress 做贡献或进行修改,只需克隆此存储库并在绿色地带进行检查。
./vendor/bin/phpspec run
许可证
对于那些关心的人,exphpress 在 MIT 许可证下发布。
地狱,为什么?
有Silex,我知道,但我无法抗拒。