@ChemAli

Как в Slim Framework реализовать роут вида /method?par1=val1&...&parn=valn?

Если я верно понял из документации, фреймворком приветствуются роуты вида

/method/val1/val2/.../valn


Нужно сделать роут вида

/method?par1=val1&...&parn=valn


Пока я пришёл к решению такого вида:

$app->get('/method', 'callback_function');

function callback_function() {
    GLOBAL $app;
    $par1 = $_GET['par1'];
    $par2 = $_GET['par2'];
}



Но оно видится мне кривым из-за необходимости объявлять внутри функции глобальную переменную приложения. Кроме того, мне нужно изменить для ответа http-заголовок «content type», а для этого нужно менять свойства экземпляра $app.


Что я делаю не так?
  • Вопрос задан
  • 3844 просмотра
Решения вопроса 1
ragimovich
@ragimovich
В объявлении глобальной $app нет ничего странного и страшного, насколько я в курсе. Другого метода до нее добраться все равно нет.

Если у вас свежий PHP, то можно делать еще как-то так

$app->get('/method', function() use ($app) {
    $app->request->params('par1');
});


Что касается Content-Type, то это решается через $app->response и это тоже нормально.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@joger
к $app можно добраться и так:
$app = \Slim\Slim::getInstance();
docs.slimframework.com/#Application-Names-and-Scopes
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы