Phalconphp: получение параметров маршрутизатора вне контроллера

У меня роутер определен вот так

$router->add("/api/:controller/:action/:params", array(
'controller' => 1,
'action' => 2,
'params' => 3,
'myParameter' => 'test'
));

Итак, я могу получить этот параметр «myParameter» внутри контроллера, как это

$this->dispatcher->getParam("myParameter");

Но я хочу использовать этот параметр в другом классе, который я вызываю из контроллера. Что-то вроде

myCustomClass::test();class myCustomClass {
function test() {
// this is where I need that parameter
}
}

Диспетчер ничего не возвращает, если я позвоню myCustomClass,

(Конечно, получить значение внутри контроллера и передать его как значение — это решение, но я, вероятно, буду использовать его как минимум для 100 различных действий, поэтому в данном случае это не очень хорошее решение).

Есть ли способ получить этот дополнительный параметр вне области действия контроллера?

1

Решение

Вам необходимо внедрение зависимостей по умолчанию, которое, вероятно, объявлено в index.php.

class myCustomClass {
static function test() {
$request = \Phalcon\DI::getDefault()->get( 'request' );
$request->get("myParameter");
}
}

Также вам не хватает статического слова из функции.

1

Другие решения

Я не уверен на 100%, но я думаю, что вы получаете доступ к параметрам получения из класса запроса phalcon Http.

$request = new Phalcon\Http\Request();
$request->get("myParameter");
0

По вопросам рекламы [email protected]