Symfony 4:“src”中的可重用代码

Pab*_*blo 6 php symfony

我正在尝试将 Symfony 3.4 应用程序更新到 Symfony 4。在我当前的应用程序中,我总是AdminBundlesrc. 我知道 Symfony 4 现在建议“无捆绑”。但这个 AdminBundle 是我大多数项目的基础,有时我会对它进行一些更新,这些更新可以部署到我的所有项目中,只需推送到存储库即可。

我尝试通过 AdminBundle 移动内部src,但显然这是行不通的。任何人都可以详细说明使此捆绑包以通用方式在 Symfony 4 下工作所需的配方或配置吗?

如果这是不可能的,那么在 symfony 4 中创建可重用代码的最佳方法是什么?

Das*_*Ben 0

我目前正在使用类似的方法:我在“src”下有一个用于共享服务、实体、订阅者等的“CoreBundle”。

为了使其可用,我必须编辑以下内容:

config/maker.yaml -> 使用 make:entity 并在 CoreBundle 下创建

maker:
  root_namespace: 'App\CoreBundle'
Run Code Online (Sandbox Code Playgroud)

config/packages/doctrine.yaml 修改 -> 从 CoreBundle 获取实体

  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/CoreBundle/Entity'
        prefix: 'App\CoreBundle\Entity'
        alias: App
Run Code Online (Sandbox Code Playgroud)

config/services.yaml 添加 -> 导入所有 SymfonyLike 类

  ###> CoreBundle ###
  App\CoreBundle\:
    resource: '../src/CoreBundle/*'
    exclude: '../src/CoreBundle/{DependencyInjection,Entity,Model,Migrations,Tests}'

  App\CoreBundle\Controller\:
    resource: '../src/CoreBundle/Controller'
    tags: ['controller.service_arguments']
  ###< CoreBundle ###
Run Code Online (Sandbox Code Playgroud)

config/* add -> 我想在其中导入单独的配置文件

imports:
  - { resource: '../../src/CoreBundle/Resources/config/*.yaml' }
Run Code Online (Sandbox Code Playgroud)