Подтвердить что ты не робот

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 Не уверен, какой файл вы ищете...

4b9b3361

Ответ 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 как побочный эффект, и это, похоже, устранило проблему.