我只是第一次使用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