Symfony 2 - невозможно очистить кеш - вы не можете создать службу ( "запрос" ) неактивной области ( "запрос" )
всякий раз, когда я пытаюсь очистить кеш на консоли, я получаю следующую ошибку:
[Symfony\Component\DependencyInjection\Exception\InactiveScopeException]
You cannot create a service ("request") of an inactive scope ("request").
Кто-нибудь испытал это раньше? Благодарю.
Изменить: Пример кода:
//accessing request object
namespace Greg\TestBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\DependencyInjection\ContainerInterface;
use HvH\APIschemaBundle\Controller\Validation;
use HvH\APIschemaBundle\Controller\Helpers;
//FOSRestBundle
use FOS\RestBundle\View\View;
class TestController extends Controller
{
public function testAction(Request $request)
{
//get any query strings
$query_strings = $request->query->all();
return($query_strings);
}
}
XML
Не уверен, какой файл вы ищете...
Ответы
Ответ 1
Например, чтобы вручную создать запрос "область запроса" в CLI, вы можете перегрузить метод ядра initializeContainer в классе AppKernel, просто выполнив:
class AppKernel extends Kernel {
public function registerBundles() {
// ...
}
public function registerContainerConfiguration(LoaderInterface $loader) {
// ...
}
protected function initializeContainer() {
parent::initializeContainer();
if (PHP_SAPI == 'cli') {
$this->getContainer()->enterScope('request');
$this->getContainer()->set('request', new \Symfony\Component\HttpFoundation\Request(), 'request');
}
}
}
Ответ 2
Исправлена ошибка, удаляя объект запроса в конструкторе. Поскольку CLI безголовый, объект запроса отсутствует, если он не создан вручную.
Ответ 3
Попробуйте запустить этот rm -rf app/cache/*
... Этот метод - это просто способ удаления linux.
Ответ 4
Чтобы продлить на Шатов Максим ответ Я создал запрос к корневому сайту сайта, чтобы ассемблерные фильтры активов (cssrewrite) могли разрешать URL-адреса ресурсов:
class AppKernel extends Kernel
{
public function registerBundles()
{
// ...
}
public function registerContainerConfiguration(LoaderInterface $loader)
{
// ...
}
protected function initializeContainer()
{
parent::initializeContainer();
if (PHP_SAPI == 'cli') {
$request = new Request();
$request->create('/');
$this->getContainer()->enterScope('request');
$this->getContainer()->set('request', $request, 'request');
}
}
}
Ответ 5
Я столкнулся с этой проблемой, но я не делал ничего особенного с запросами в моих собственных сервисах - оказалось, что ошибка связана с самой службой запроса в ядре Symfony.
Я решил это, выполнив composer install
, который не изменил поставщиков (уже установлен), но запустил Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap
как побочный эффект, и это, похоже, устранило проблему.