Symfony 4 Sonata Media Bundle安装

时间:2018-01-24 15:17:07

标签: sonata-media-bundle symfony4

我在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").

2 个答案:

答案 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。也许这可以帮助某人...我花了几个小时解决这个错误:/