Symfony 2 - обрабатывает запрос ядра (из другого приложения) внутри службы
Во-первых, я хотел бы сказать, что я нахожу Symfony2 удивительной платформой, поэтому я создаю API-интерфейс RESTful с помощью FOSRestBundle и т. Д. Но я не стремлюсь поддерживать только одно приложение symfony2 с помощью API, мне нужно несколько других приложений Symfony2 для взаимодействовать с API. Я действительно мог бы сделать это с использованием cURL и просто делать простые HTTP-запросы к API, но, поскольку API всегда находится на том же сервере, что и все другие проекты, я хотел бы обрабатывать запросы API напрямую через его ядро (так что нет Curl). Это происходит с удивительным увеличением скорости и меньшим использованием ресурсов.
Итак, чтобы это произошло, я сначала подумал о том, чтобы просто запросить AppKernel из его места назначения, вот так:
require_once '/path/to/external/AppKernel.php';
Затем я бы создал экземпляр AppKernel и обработал «подзапрос» здесь. Но затем я сразу же получил ошибки, говоря, что некоторые пакеты не могут быть загружены и т. Д., Что логично, потому что мне нужен только файл AppKernel, а не его зависимости. Поэтому я включил автозагрузчик проекта API (/app/autoload.php), но это не решило проблемы, я получил ошибки, связанные с переопределенными классами / функциями и т. Д.
Это даст что-то вроде этого:
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;
Я думаю, что делаю все неправильно, пытаясь справиться с этим через AppKernel, может быть, кто-то знает лучший способ сделать вызов во внешний проект Symfony2 (без cURL).
Я действительно надеюсь, что кто-нибудь сможет мне помочь!
Штеффен