2014-09-18 4 views
3

При запуске рабочего пространства/app_dev.php, не проблема, но когда я пытаюсь запустить рабочее пространство/app.php я получаю:.Symfony 2.5 «Вы запросили несуществующую услугу„siteTest.b“

«Вы запросили несуществующую услугу« siteTest.b »

У меня нет первой подсказки, что я делаю неправильно.

приложение/Config/config.yml:

imports: 
    - { resource: parameters.yml } 
    - { resource: security.yml } 
framework: 
    secret:   "%secret%" 
    router: 
     resource: "%kernel.root_dir%/config/routing.yml" 
     strict_requirements: ~ 
    form:   ~ 
    csrf_protection: ~ 
    validation:  { enable_annotations: true } 
    templating: 
     engines: ['twig'] 
    default_locale: "%locale%" 
    trusted_hosts: ~ 
    trusted_proxies: ~ 
    session: 
     handler_id: ~ 
    fragments:  ~ 
    http_method_override: true 

ЦСИ/сайта/TestBundle/Ресурсы/конфигурации/services.yml:

parameters: 
    siteTest.aa: Site\TestBundle\Controller\a 

services: 
    siteTest.b: 
     class: %siteTest.aa% 

ЦСИ/сайта/TestBundle /DependencyInjection/SiteTestExtension.php:

namespace Site\TestBundle\DependencyInjection; 

use Symfony\Component\DependencyInjection\ContainerBuilder; 
use Symfony\Component\Config\FileLocator; 
use Symfony\Component\HttpKernel\DependencyInjection\Extension; 
use Symfony\Component\DependencyInjection\Loader; 
class SiteTestExtension extends Extension 
{ 
    /** 
    * {@inheritDoc} 
    */ 
    public function load(array $configs, ContainerBuilder $container) 
    { 
     $configuration = new Configuration(); 
     $config = $this->processConfiguration($configuration, $configs); 

     $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); 
     $loader->load('services.yml'); 
    } 
} 

ЦСИ/сайта/TestBundle/Controller/a.php:

namespace Site\TestBundle\Controller; 
class a { 
    public function printTest() { 
     var_dump('Test'); 
     exit; 
    } 
} 

ЦСИ/сайта/TestBundle/Controller/DefaultController.php:

namespace Site\TestBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Component\HttpFoundation\Response; 

class DefaultController extends Controller 
{ 
    public function indexAction() 
    { 
     $aaa = $this->get('siteTest.b'); 
     exit(); 
    } 
} 
+0

очистить свой 'prod' кэш – dmnptr

ответ

8

команда запуска php app/console cache:clear --env=prod очистить ваш prod кэш

12

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

imports: 
- { resource: parameters.yml } 
- { resource: security.yml } 
- { resource: '@TestBundle/Resources/config/services.yml' } 

в качестве альтернативы вы можете использовать конфигурацию поваренной книги http://symfony.com/doc/current/cookbook/bundles/extension.html#cookbook-bundles-extension-config-class

+0

Спасибо, я не знаю, как импортировать конфигурацию только один файл, в частности. – JSGarcia

Смежные вопросы