精简PHP自定义http响应页面


Slim PHP custom http response pages

好的,我已经阅读了Slim PHP的文档,并阅读了不少教程,应用程序正在顺利进行中。然而,我正在努力掌握一些事情,比如自定义HTTP响应代码。我已经设法得到了以下:

$app->notfound('template.file', array(
    'data' => 'passed'
));

这似乎工作得很好(因为是直接在Slim中的方法),但我并没有试图控制403响应之类的事情。我已经像往常一样控制了不允许使用Apache的情况,但我想知道Slim是否有办法提供自定义的not Permissioned页面?或者因为我在Apache级别屏蔽了它,Slim会不会注意到?

我确实读到我可以手动停止某些路线?我应该这样做吗?例如,我不希望人们访问我的JS目录,所以:

$app->group('/js', function () use($app) {
    $app->get('/', functin () use($app) {
        $app->halt(403, "You shall not pass!");
    });
});

我之所以分组,是因为我想要访问实际的脚本,而不是目录浏览。

以前有人见过这个吗?你有什么建议?还是我对一些简单的事情想得太多了。。。。

您可以简单地将用户重定向到另一个打印自定义模板的路由。示例:

require 'vendor/autoload.php';
session_start();
$app = new 'Slim'Slim();
$app->group('/js', function () use($app) {
    $app->get('/', function () use($app) {
        $app->flash('httpStatusCode', '403');
        $app->redirectTo('NotAuthorized');
    });
});
$app->get('/notAuthorized', function () use($app) {
    echo 'You''re here because you''re Balrog!';
    echo 'Http Status Code: ' . $_SESSION['slim.flash']['httpStatusCode'];
})->name('NotAuthorized');
$app->run();