简体   繁体   中英

Symfony 4: Reusable code in “src”

I'm trying to update a Symfony 3.4 application to Symfony 4. On my current applications I always share a local AdminBundle folder inside src . I know Symfony 4 recommends to be "bundle-less" now. But this AdminBundle is the base for most of my projects, and sometimes I make some updates to it that can be deployed to all my projects just pushing to the repository.

I tried to move by AdminBundle inside src but obviously that's not working. Could anyone detail the recipe or configuration needed to make this Bundle work under Symfony 4 in a generic way?

If this is not possible what's the best way to create a reusable code in symfony 4?

I'm currently using a similiar approach: I've got a "CoreBundle" for shared Services, Entites, Subscribers etc under "src".

In order to make this usable i had to edit the following:

config/maker.yaml -> to use make:entity and create under CoreBundle

maker:
  root_namespace: 'App\CoreBundle'

config/packages/doctrine.yaml modify -> to get the Entities from 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

config/services.yaml add -> to import all SymfonyLike Classes

  ###> 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 ###

config/* add -> where i wanted to import a separate config file

imports:
  - { resource: '../../src/CoreBundle/Resources/config/*.yaml' }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM