Aller au contenu principal

Conventions de nommage

Base de données

:::danger Règle absolue Toutes les clés étrangères utilisent le préfixe id_*. :::

ÉlémentConventionExemple
Clé primaireConvention du projet ou standard explicite du moduleid_user, id_application
Clé étrangèreid_<entité>id_role, id_service, id_application
Table pivotNoms singuliers dans l'ordre stablerole_user
Booléenis_*, has_*, can_*is_active
TimestampsTimestamps Laravelcreated_at, updated_at, deleted_at
Soft deletedeleted_at

Tables par module

Toutes les tables d'un module utilisent le préfixe du module :

ModulePréfixeExemple
Infrastructureinfrastructure_infrastructure_proxmox_servers
Elevageelevage_elevage_lots_huitres
Thaliathalia_thalia_ai_logs
Dashboarddashboard_dashboard_alias
IAai_ai_provider_settings

Exception : les tables partagées (users, roles, permissions, services, core_applications) n'ont pas de préfixe.


Classes PHP

TypeSuffixeExemple
ContrôleurControllerUserController
Form RequestRequestStoreUserRequest, UpdateUserRequest
ServiceServiceUserService, ProxmoxSyncService
RepositoryRepositoryUserRepository
PolicyPolicyUserPolicy
DTODTOVirtualMachineDTO, NodeDTO
EventPassé du verbe domaineUserPermissionUpdated
ListenerAction au présentSendImportNotification
JobAction + JobSyncProxmoxJob
ResourceResourceUserResource

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.