@Mariik

Silex DI для контроллера?

Привет.

А есть возможность котроллеру принимать в конструкторе обьект класса Silex\Application ?
Пробовал такой подход
$app->get('/','AppComponents\Controllers\HelloController::index' );


// HelloController.php

namespace AppComponents\Controllers;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Silex;
use Silex\Application;

class HelloController{
    
    protected $app; 

    function __construct(Application $app) {
        $this->app = $app;
    }
    
    
    function index() {
        return  new Response("hello");
    }
    
}


В результате получаю ошибку

В тоже время, если обьект Application будет принимать не конструктор, а метод класса, то все работает

public function test(Application $app){
     var_dump($app);
     return "Bloody Hell!! Its working";
}


Можно конечно зарегестрировать класс как сервис, но это как-то дико звучит.
Есть вариант таки заставить сайлекс всунуть Application в конструктор?
  • Вопрос задан
  • 408 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
класс как сервис, но это как-то дико звучит.

Почему? Более дико звучит иньекция контейнера в класс.

silex.sensiolabs.org/doc/providers/service_control...

опять же по ссылке вы узнаете как иньектить что угодно в класс контроллера.
Ответ написан
Ваш ответ на вопрос

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

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