Skip to content

Instantly share code, notes, and snippets.

@webdevilopers
Created March 12, 2018 16:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save webdevilopers/30e7047b620fc3a131628b346fecfc3b to your computer and use it in GitHub Desktop.
Save webdevilopers/30e7047b620fc3a131628b346fecfc3b to your computer and use it in GitHub Desktop.
Custom Acme namespaces with Symfony Flex
{
"type": "project",
"license": "proprietary",
"require": {
"php": "^7.1.3",
"ext-iconv": "*",
"symfony/console": "^4.0",
"symfony/flex": "^1.0",
"symfony/framework-bundle": "^4.0",
"symfony/lts": "^4@dev",
"symfony/yaml": "^4.0"
},
"require-dev": {
"symfony/dotenv": "^4.0"
},
"config": {
"preferred-install": {
"*": "dist"
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"App\\": "src/App/",
"Acme\\": "src/Acme/"
}
},
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/"
}
},
"replace": {
"symfony/polyfill-iconv": "*",
"symfony/polyfill-php71": "*",
"symfony/polyfill-php70": "*",
"symfony/polyfill-php56": "*"
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install --symlink --relative %PUBLIC_DIR%": "symfony-cmd"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
"conflict": {
"symfony/symfony": "*"
},
"extra": {
"symfony": {
"id": "01C8D4KZZ4TAGW8JM3F94XV9WQ",
"allow-contrib": false
}
}
}
# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:
services:
# default configuration for services in *this* file
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
public: false # Allows optimizing the container by removing unused services; this also means
# fetching services directly from the container via $container->get() won't work.
# The best practice is to be explicit about your dependencies anyway.
# makes classes in src/ available to be used as services
# this creates a service per class whose id is the fully-qualified class name
App\:
resource: '../src/App/*'
exclude: '../src/App/{Entity,Migrations,Tests,Kernel.php}'
Acme\:
resource: '../src/Acme/*'
exclude: '../src/Acme/{Entity,Migrations,Tests,Kernel.php}'
# controllers are imported separately to make sure services can be injected
# as action arguments even if you don't extend any base controller class
App\Controller\:
resource: '../src/App/Controller'
tags: ['controller.service_arguments']
Acme\Presentation\Controller\:
resource: '../src/Acme/Presentation/Controller'
tags: ['controller.service_arguments']
# add more service definitions when explicit configuration is needed
# please note that last definitions always *replace* previous ones
@webdevilopers
Copy link
Author

webdevilopers commented Mar 12, 2018

My (Domain-Driven Design) directory structure:

src/App/Controller
src/Acme/Application/Service
src/Acme/Domain/Model
src/Acme/Infrastructure
src/Acme/Presentation/Controller

As described by @predakanga:

Further discussions:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment