Symfony CMF无法在容器中找到管理器名称参数



我只是第一次使用Symfony ..我与自己的控制器一起工作。我尝试安装CMF,并且会收到以下错误。

> IncenteevParameterHandlerScriptHandler::buildParameters
Updating the "app/config/parameters.yml" file
> SensioBundleDistributionBundleComposerScriptHandler::buildBootstrap
> SensioBundleDistributionBundleComposerScriptHandler::clearCache
PHP Fatal error:  Uncaught SymfonyComponentDependencyInjectionExceptionInvalidArgumentException: Could not find the manager name parameter in the container. Tried the following parameter names: "cmf_menu.manager_name", "doctrine_phpcr.odm.default_document_manager" in /var/www/vhosts/admin/symfonycmf.ab-uk.com/htdocs/symfonycmf/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterMappingsPass.php:235
Stack trace:
#0 /var/www/vhosts/admin/symfonycmf.ab-uk.com/htdocs/symfonycmf/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterMappingsPass.php(181): SymfonyBridgeDoctrineDependencyInjectionCompilerPassRegisterMappingsPass->getManagerName(Object(SymfonyComponentDependencyInjectionContainerBuilder))
#1 /var/www/vhosts/admin/symfonycmf.ab-uk.com/htdocs/symfonycmf/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterMappingsPass.php(149): SymfonyBridgeDoctrineDependencyInjectionCompilerPassRegisterMa in /var/www/vhosts/admin/symfonycmf.ab-uk.com/htdocs/symfonycmf/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterMappingsPass.php on line 235
Script SensioBundleDistributionBundleComposerScriptHandler::clearCache handling the symfony-scripts event terminated with an exception

  [RuntimeException]                                                                                                                                                                                                                                       
  An error occurred when executing the "'cache:clear --no-warmup'" command:                                                                                                                                                                                
  PHP Fatal error:  Uncaught SymfonyComponentDependencyInjectionExceptionInvalidArgumentException: Could not find the manager name parameter in the container. Tried the following parameter names: "cmf_menu.manager_name", "doctrine_phpcr.odm.defa  
  ult_document_manager" in /var/www/vhosts/admin/symfonycmf.ab-uk.com/htdocs/symfonycmf/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterMappingsPass.php:235                                                   
  Stack trace:                                                                                                                                                                                                                                             
  #0 /var/www/vhosts/admin/symfonycmf.ab-uk.com/htdocs/symfonycmf/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterMappingsPass.php(181): SymfonyBridgeDoctrineDependencyInjectionCompilerPassRegisterMap  
  pingsPass->getManagerName(Object(SymfonyComponentDependencyInjectionContainerBuilder))                                                                                                                                                                
  #1 /var/www/vhosts/admin/symfonycmf.ab-uk.com/htdocs/symfonycmf/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterMappingsPass.php(149): SymfonyBridgeDoctrineDependencyInjectionCompilerPassRegisterMa   
  in /var/www/vhosts/admin/symfonycmf.ab-uk.com/htdocs/symfonycmf/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterMappingsPass.php on line 235                                                                 

有人可以解释我缺少什么步骤?

config_dev.yml

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: services.yml }
# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:
    locale: en
framework:
    #esi: ~
    #translator: { fallbacks: ['%locale%'] }
    secret: '%secret%'
    router:
        resource: '%kernel.project_dir%/app/config/routing.yml'
        strict_requirements: ~
    form: ~
    csrf_protection: ~
    validation: { enable_annotations: true }
    #serializer: { enable_annotations: true }
    templating:
        engines: ['twig']
    default_locale: '%locale%'
    trusted_hosts: ~
    session:
        # https://symfony.com/doc/current/reference/configuration/framework.html#handler-id
        handler_id: session.handler.native_file
        save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
    fragments: ~
    http_method_override: true
    assets: ~
    php_errors:
        log: true




# Twig Configuration
twig:
    debug: '%kernel.debug%'
    strict_variables: '%kernel.debug%'

sonata_block:
    default_contexts: [sonata_page_bundle]
    blocks:
        sonata.admin.block.admin_list:
            contexts:   [admin]
        #sonata.admin_doctrine_orm.block.audit:
        #    contexts:   [admin]
        sonata.block.service.text:
        sonata.block.service.rss:
        # Some specific block from the SonataMediaBundle
        #sonata.media.block.media:
        #sonata.media.block.gallery:
        #sonata.media.block.feature_media:
        # Some block with different templates
        #acme.demo.block.demo:
        #    templates:
        #       - { name: 'Simple', template: 'AcmeDemoBundle:Block:demo_simple.html.twig' }
        #       - { name: 'Big',    template: 'AcmeDemoBundle:Block:demo_big.html.twig' }



doctrine:   
    dbal:
        default_connection: default
        connections:
            default:
                driver: pdo_mysql
                host: 'localhost'
                #port: '%database_port%'
                dbname: 'symfonycmf'
                user: 'root'
                password: '123456'
                charset: UTF8
    #document_managers:
    #    default:
    #        auto_mapping: true            
    orm:
        default_entity_manager: default
        entity_managers:
            default:
                connection: default
                mappings:
                    AppBundle:  ~

cmf_routing:
    dynamic:
        route_provider_service_id: app.route_provider


# Swiftmailer Configuration
swiftmailer:
    transport: '%mailer_transport%'
    host: '%mailer_host%'
    username: '%mailer_user%'
    password: '%mailer_password%'
    spool: { type: memory }

service.yml

# Learn more about services, parameters and containers at
# https://symfony.com/doc/current/service_container.html
parameters:
    #parameter_name: value
services:
    # default configuration for services in *this* file
    _defaults:
        # automatically injects dependencies in your services
        autowire: true
        # automatically registers your services as commands, event subscribers, etc.
        autoconfigure: true
        # this means you cannot fetch services directly from the container via $container->get()
        # if you need to do this, you can override this setting on individual services
        public: false
    # makes classes in src/AppBundle available to be used as services
    # this creates a service per class whose id is the fully-qualified class name
    AppBundle:
        resource: '../../src/AppBundle/*'
        # you can exclude directories or files
        # but if a service is unused, it's removed anyway
        exclude: '../../src/AppBundle/{Entity,Repository,Tests}'
    # controllers are imported separately to make sure they're public
    # and have a tag that allows actions to type-hint services
    AppBundleController:
        resource: '../../src/AppBundle/Controller'
        public: true
        tags: ['controller.service_arguments']
    # add more services, or override services that need manual wiring
    # AppBundleServiceExampleService:
    #     arguments:
    #         $someArgument: 'some_value'

    app.menu_referrer_listener:
        class: AppBundleEventListenerCreateMenuItemFromMenuListener
        arguments: ['@knp_menu.menu_provider']
        tags:
            name: kernel.event_listener
            event: cmf_menu.create_menu_item_from_node
            method: onCreateMenuItemFromNode

appkernal.php

$bundles = [
            new SymfonyBundleFrameworkBundleFrameworkBundle(),
            new SymfonyBundleSecurityBundleSecurityBundle(),
            new SymfonyBundleTwigBundleTwigBundle(),
            new SymfonyBundleMonologBundleMonologBundle(),
            new SymfonyBundleSwiftmailerBundleSwiftmailerBundle(),
            new DoctrineBundleDoctrineBundleDoctrineBundle(),
            new SensioBundleFrameworkExtraBundleSensioFrameworkExtraBundle(),
            // Dependencies of the CmfBlockBundle
            new SonataCoreBundleSonataCoreBundle(),
            new SonataBlockBundleSonataBlockBundle(),

            // Dependencies of the CmfMenuBundle
            new KnpBundleMenuBundleKnpMenuBundle(),
            new SymfonyCmfBundleRoutingBundleCmfRoutingBundle(),
            new SymfonyCmfBundleCoreBundleCmfCoreBundle(),
            new SymfonyCmfBundleMenuBundleCmfMenuBundle(),
            new SymfonyCmfBundleContentBundleCmfContentBundle(),
            new SymfonyCmfBundleBlockBundleCmfBlockBundle(),

            new AppBundleAppBundle(),
        ];

将此添加到您的服务中:

# app/config/services.yml
services:
    app.menu_referrer_listener:
        class: AppBundleEventListenerCreateMenuItemFromMenuListener
        arguments: ['@knp_menu.menu_provider']
        tags:
            -
                name: kernel.event_listener
                event: cmf_menu.create_menu_item_from_node
                method: onCreateMenuItemFromNode

最新更新