Merge branch 'feature/ERP-7-mise-en-place-du-modular-monolith' into develop
Some checks failed
Auto Tag Develop / tag (push) Has been cancelled

# Conflicts:
#	docker-compose.yml
This commit is contained in:
Matthieu
2026-04-14 15:11:59 +02:00
77 changed files with 5401 additions and 630 deletions

10
config/modules.php Normal file
View File

@@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
use App\Module\Commercial\CommercialModule;
use App\Module\Core\CoreModule;
return [
CoreModule::class,
CommercialModule::class,
];

View File

@@ -9,12 +9,12 @@ doctrine:
Doctrine\DBAL\Platforms\PostgreSQLPlatform: identity
auto_mapping: true
mappings:
App:
Core:
type: attribute
is_bundle: false
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
dir: '%kernel.project_dir%/src/Module/Core/Domain/Entity'
prefix: 'App\Module\Core\Domain\Entity'
alias: Core
controller_resolver:
auto_mapping: false

View File

@@ -1,4 +1,5 @@
doctrine_migrations:
migrations_paths:
'DoctrineMigrations': '%kernel.project_dir%/migrations'
'App\Module\Core\Infrastructure\Doctrine\Migrations': '%kernel.project_dir%/src/Module/Core/Infrastructure/Doctrine/Migrations'
enable_profiler: false

View File

@@ -8,7 +8,7 @@ security:
providers:
app_user_provider:
entity:
class: App\Entity\User
class: App\Module\Core\Domain\Entity\User
property: username
firewalls:
@@ -45,6 +45,8 @@ security:
- { path: ^/login_check, roles: PUBLIC_ACCESS }
- { path: ^/api/docs, roles: PUBLIC_ACCESS }
- { path: ^/api/version, roles: PUBLIC_ACCESS, methods: [ GET ] }
- { path: ^/api/modules, roles: PUBLIC_ACCESS, methods: [ GET ] }
- { path: ^/api/sidebar, roles: PUBLIC_ACCESS, methods: [ GET ] }
- { path: ^/api, roles: IS_AUTHENTICATED_FULLY }
when@test:

View File

@@ -15,3 +15,6 @@ services:
# this creates a service per class whose id is the fully-qualified class name
App\:
resource: '../src/'
App\Module\Core\Domain\Repository\UserRepositoryInterface:
alias: App\Module\Core\Infrastructure\Doctrine\DoctrineUserRepository

55
config/sidebar.php Normal file
View File

@@ -0,0 +1,55 @@
<?php
declare(strict_types=1);
/*
* Sidebar configuration.
*
* This file defines the sidebar sections displayed in the frontend.
* Each item references the module that owns it via the `module` key.
* Items whose module is not active (see config/modules.php) are filtered out.
*
* This config is decoupled from the modules themselves: you can freely
* move an item from one section to another without touching the module code.
*
* Label keys are i18n keys resolved by the frontend (see frontend/i18n/locales/).
*/
return [
[
'label' => 'sidebar.general.section',
'icon' => 'mdi:view-dashboard-outline',
'items' => [
[
'label' => 'sidebar.general.dashboard',
'to' => '/',
'icon' => 'mdi:view-dashboard-outline',
'module' => 'core',
],
[
'label' => 'sidebar.general.admin',
'to' => '/admin',
'icon' => 'mdi:cog-outline',
'module' => 'core',
],
[
'label' => 'sidebar.general.logout',
'to' => '/logout',
'icon' => 'mdi:logout',
'module' => 'core',
],
],
],
[
'label' => 'sidebar.commercial.section',
'icon' => 'mdi:account-arrow-left-outline',
'items' => [
[
'label' => 'sidebar.commercial.suppliers',
'to' => '/suppliers',
'icon' => 'mdi:account-arrow-left-outline',
'module' => 'commercial',
],
],
],
];