我在Symfony 4应用程序上安装Sonata Media Bundle时出现了一些错误,它与Symfony 2.8无关。
第一个错误:
sensio/generator-bundle v3.1.6 requires symfony/framework-bundle ~2.7|~3.0
下一个,解决了之前的问题:
- php-amqplib/php-amqplib v2.7.0 requires ext-bcmath * -> the requested PHP extension bcmath is missing from your system.
另一个:
Unrecognized options "naming_strategy, auto_mapping, mappings" under "doctrine.orm"
然后,当我试图清除缓存时:
Class Application\Sonata\MediaBundle\ApplicationSonataMediaBundle not found in home/user/projects/svoya-fignia/config/services.yaml (which is loaded in resource "/home/user/projects/svoya-fignia/config/services.yaml").
或者这个
Class Sonata\MediaBundle\PHPCR\BaseGalleryHasMediaRepository not found in home/user/projects/svoya-fignia/config/services.yaml (which is loaded in resource "/home/user/projects/svoya-fignia/config/services.yaml").
答案 0 :(得分:5)
我找到了所有这些的解决方案,但是花了一些时间,所以我想在这里为遇到这个问题的每个人发布。
sensio/generator-bundle
的第一个错误是通过要求sonata-media-bundle
的开发版本来解决的:
composer require sonata-project/media-bundle:3.x-dev
下一个的解决方案很明显,但无论如何:
sudo yum install php-bcmath
或
sudo apt-get install php-bcmath
此处解决了无法识别的选项问题:Symfony doctrine auto_mapping Unrecognized
最后,找不到的类的问题是由symfony自动装配造成的,应该通过将Application
目录添加到排除的目录来解决:
# services.yaml
services:
App\:
resource: '../src/*'
exclude: '../src/{Entity,Migrations,Tests,Application}'
如果你有什么要补充的,或者我的解决方案不是最好的,请告诉我,我会更新这篇文章。
答案 1 :(得分:0)
对于
下无法识别的选项“命名策略,自动映射,映射” “ doctrine.orm”
错误,尝试在orm.entity_managers中而不是在config / packages / doctrine.yaml中的orm中添加配置,如下所示:
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
#server_version: '5.7'
orm:
auto_generate_proxy_classes: true
#naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
#auto_mapping: true
#mappings:
# App:
# is_bundle: false
# type: annotation
# dir: '%kernel.project_dir%/src/Entity'
# prefix: 'App\Entity'
# alias: App
entity_managers:
default:
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true
mappings:
SonataUserBundle: ~
FOSUserBundle: ~
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
这正在使用Symfony 4.4。也许这可以帮助某人...我花了几个小时解决这个错误:/