odino/exphpress

PHP 缺少的、优雅的、高效的微框架,受 ExpressJS 启发。

0.1.1 2014-07-13 19:53 UTC

This package is not auto-updated.

Last update: 2024-09-10 02:58:47 UTC


README

Build Status

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,我知道,但我无法抗拒。