Хорошо, я прочитал документы на Тонкий PHP и прочитайте немало учебных пособий, и у вас есть подходящее приложение. Однако я пытаюсь справиться с такими вещами, как настройка кодов ответов HTTP. Мне удалось получить следующее:
$app->notfound('template.file', array(
'data' => 'passed'
));
Это, кажется, работает хорошо (как и должно быть является Метод непосредственно в Slim), но я не пытаюсь контролировать такие вещи, как 403
ответ. Я контролировал не разрешенное использование Apache, как обычно, но мне интересно, есть ли способ с Slim, чтобы я мог обслуживать обычай Не разрешено страница? Или потому, что я заблокировал его на уровне 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();
Других решений пока нет …