Slim PHP 自定义 http 响应页面

Slim PHP custom http response pages

好的,我已经阅读了 Slim PHP 上的文档并阅读了相当多的教程,并且正在顺利进行应用程序。但是,我正在尝试处理诸如自定义 HTTP 响应代码之类的事情。我已经设法获得以下内容:

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

这似乎工作得很好(因为它应该 一个直接在 Slim 中的方法),但不是我试图控制诸如 403回复。我已经像往常一样控制了不允许使用 Apache,但是我想知道是否有一种方法可以使用 Slim 来提供自定义 Not Permitted 页面?还是因为我在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();