Conventions de nommage
Base de données
:::danger Règle absolue
Toutes les clés étrangères utilisent le préfixe id_*.
:::
| Élément | Convention | Exemple |
|---|---|---|
| Clé primaire | Convention du projet ou standard explicite du module | id_user, id_application |
| Clé étrangère | id_<entité> | id_role, id_service, id_application |
| Table pivot | Noms singuliers dans l'ordre stable | role_user |
| Booléen | is_*, has_*, can_* | is_active |
| Timestamps | Timestamps Laravel | created_at, updated_at, deleted_at |
| Soft delete | deleted_at | — |
Tables par module
Toutes les tables d'un module utilisent le préfixe du module :
| Module | Préfixe | Exemple |
|---|---|---|
| Infrastructure | infrastructure_ | infrastructure_proxmox_servers |
| Elevage | elevage_ | elevage_lots_huitres |
| Thalia | thalia_ | thalia_ai_logs |
| Dashboard | dashboard_ | dashboard_alias |
| IA | ai_ | ai_provider_settings |
Exception : les tables partagées (users, roles, permissions, services, core_applications) n'ont pas de préfixe.
Classes PHP
| Type | Suffixe | Exemple |
|---|---|---|
| Contrôleur | Controller | UserController |
| Form Request | Request | StoreUserRequest, UpdateUserRequest |
| Service | Service | UserService, ProxmoxSyncService |
| Repository | Repository | UserRepository |
| Policy | Policy | UserPolicy |
| DTO | DTO | VirtualMachineDTO, NodeDTO |
| Event | Passé du verbe domaine | UserPermissionUpdated |
| Listener | Action au présent | SendImportNotification |
| Job | Action + Job | SyncProxmoxJob |
| Resource | Resource | UserResource |
Routes
Nommer avec le scope du module :
admin.users.index
admin.users.store
dashboard.widgets.store
api.v1.infrastructure.nodes
Fichiers de configuration
config/infrastructure.php → config('infrastructure.proxmox_timeout')
config/ai.php → config('ai.default_provider')
Ne jamais appeler env() en dehors des fichiers de config.
Vues Blade
Modules/Admin/resources/views/users/index.blade.php
Modules/Admin/resources/views/users/partials/row.blade.php
Modules/Infrastructure/resources/views/proxmox/nodes.blade.php
Convention : {module}::{section}.{vue} en Blade extend.