Symfony 2 - Obsługa żądania jądra (z innej aplikacji) wewnątrz usługi

Najpierw chciałbym powiedzieć, że znajduję Symfony2 jako niesamowity framework, dlatego tworzę z nim API RESTful za pomocą FOSRestBundle itp. Ale nie zamierzam obsługiwać tylko jednej aplikacji symfony2 z API, potrzebuję wielu innych aplikacji symfony2 współdziałać z API. Rzeczywiście mogłem to zrobić za pomocą cURL i po prostu wykonywać proste żądania HTTP do API, ale ponieważ API jest zawsze na tym samym serwerze, co wszystkie inne projekty, które chciałbym obsługiwać żądania API bezpośrednio przez to jądro (więc nie kędzior). Wiąże się to z niesamowitym zwiększeniem prędkości i mniejszym zużyciem zasobów.

Aby tak się stało, najpierw pomyślałem o tym, aby po prostu wymagać aplikacji AppKernel od tego miejsca:

require_once '/path/to/external/AppKernel.php';

Następnie stworzyłbym instancję AppKernela i obsłużył „żądanie podrzędne” tutaj. Ale natychmiast dostałem błędy, mówiąc, że niektóre pakiety nie mogą być załadowane itd., Co jest logiczne, ponieważ wymagałem tylko pliku AppKernel, a nie jego zależności. Więc włączyłem autoloader projektu API (/app/autoload.php), ale to nie rozwiązało problemów, dostałem błędy związane z zadeklarowanymi klasami / funkcjami itp.

Dałoby to coś takiego:

require_once '/path/to/external/AppKernel.php';
$class = 'Namespace\AppKernel';

// I tried this, but this does not work...
$loader = require_once $path . '/autoload.php';

/**
  * @var HttpKernel $kernel
  */
$kernel = new $class('dev', true);

// $request contains a custom Request object created with 'Request::create()'
$response = $kernel->handle($request);
$response->send();

$kernel->terminate($request, $response);

return $response;

Myślę, że robię wszystko źle, próbując obsłużyć go przez AppKernel, może ktoś zna lepszy sposób na wywołanie zewnętrznego projektu Symfony2 (bez cURL).

Naprawdę mam nadzieję, że ktoś może mi pomóc!

Steffen

questionAnswers(1)

yourAnswerToTheQuestion