Из вашего комментария к другому ответу ваша цель попасть в Silex / Application - попасть туда в сервис Twig. Я решил использовать текущее приложение в другой функции для моих проектов Silex:
use \Silex\Application;
use \Symfony\Component\HttpFoundation\Request;
class myController {
private $a;
// Route defined as:
// $app->get('/foo', 'myController::showPage');
public function showPage(Application $a) {
$this->a = $a;
return $this->doAwesome();
}
private function doAwesome() {
$twig = $this->a['twig'];
return $twig->render('awesomePage.twig');
}
}
Каждая функция, являющаяся конечной точкой для маршрута, затем сохраняет приложение, переданное ему, как свойство класса, для доступа к другим функциям. Это означает, что вы должны помнить о необходимости делать $this->a = $a;
в каждой функции, которая использует doAwesome()
( до вызова doAwesome()
), но это самый чистый способ, которым я придумал для решения этой проблемы.