Skip to content

Guideline

Ce document présente les bonnes pratiques et les recommandations pour le développement backend d'un projet.

Structure des fichiers PHP

├── app                      # Cœur logique de l'application (Espace de noms racine)
│   ├── Configurations       # Enregistrement des ressources natives et ACF dans WordPress
│   │   ├── Blocks           # Blocs Gutenberg personnalisés (via ACF Composer / Blade)
│   │   ├── Fields           # Définitions des groupes de champs ACF (logique PHP)
│   │   ├── Options          # Pages d'options ACF (réglages généraux, header/footer)
│   │   ├── PostTypes        # Déclaration et configuration des Custom Post Types (CPT)
│   │   └── Taxonomies       # Déclaration et configuration des taxonomies personnalisées
│   ├── Mappers              # Classes de transformation (formatage des données brutes vers la vue)
│   ├── Models               # Représentation des données (Objets métier, abstractions de Posts/Terms)
│   ├── Providers            # Service Providers : Boot et Register des services du thème
│   ├── Repositories         # Logique d'accès aux données (Abstraction des requêtes SQL/WP_Query)
│   │   └── Queries          # Classes spécialisées pour les requêtes complexes ou filtrées
│   ├── Support              # Framework interne : Classes utilitaires, Helpers et briques de structure
│   └── View                 # Logique de présentation et lien avec les templates Blade
│       ├── Components       # Composants de vue réutilisables (Logique + Template)
│       ├── Composers        # View Composers : Injection de données dans des vues spécifiques
│       ├── Data             # Data Transfer Objects (DTO) pour structurer les données de vue
│       └── Livewire         # Composants interactifs temps réel (si utilisation de Livewire)

Convention PSR-4

Le projet respecte la norme PSR-4 pour l’autoloading des classes PHP. Cette convention impose une correspondance claire entre les espaces de noms (namespaces) et l’arborescence des fichiers, garantissant une organisation cohérente du code et un chargement automatique fiable des classes.

Le respect de PSR-4 est obligatoire afin d’assurer la lisibilité, la maintenabilité et la compatibilité du code avec l’écosystème PHP et les outils standards.

Nommage des classes

Les noms de classes doivent utiliser le PascalCase.
Chaque classe doit être définie dans un fichier portant le même nom et respecter la convention PSR-4.

Exemple :

php
UserRepository
HttpResponseBuilder

Nommage des méthodes

Les méthodes doivent être nommées en camelCase. Les noms doivent être explicites et refléter clairement l’action réalisée.

Exemple :

php
getUser()
handleRequest()
buildResponse()

Nommage des variables

Les variables doivent utiliser le snake_case. Cette convention garantit une meilleure lisibilité et une cohérence globale du code.

Exemple :

php
$user_id
$request_data
$is_enabled

Nommage des helpers

Les fonctions utilitaires (helpers) doivent être nommées en snake_case. Elles doivent être courtes, explicites et éviter toute ambiguïté avec les méthodes de classe.

Exemple :

php
format_date()
sanitize_input()
get_current_user_id()