我正在尝试将 Symfony 3.4 应用程序更新到 Symfony 4。在我当前的应用程序中,我总是AdminBundle
在src
. 我知道 Symfony 4 现在建议“无捆绑”。但这个 AdminBundle 是我大多数项目的基础,有时我会对它进行一些更新,这些更新可以部署到我的所有项目中,只需推送到存储库即可。
我尝试通过 AdminBundle 移动内部src
,但显然这是行不通的。任何人都可以详细说明使此捆绑包以通用方式在 Symfony 4 下工作所需的配方或配置吗?
如果这是不可能的,那么在 symfony 4 中创建可重用代码的最佳方法是什么?
我目前正在使用类似的方法:我在“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)
归档时间: |
|
查看次数: |
768 次 |
最近记录: |