Download the PHP package andydefer/directive-forge without Composer
On this page you can find all versions of the php package andydefer/directive-forge. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download andydefer/directive-forge
More information about andydefer/directive-forge
Files in andydefer/directive-forge
Package directive-forge
Short Description Code generation directives for Laravel - forge directives, actions, tasks, repositories, records and typed collections etc...
License MIT
Informations about the package directive-forge
Directive Forge
Directives de génération de code pour Laravel - forgez des directives, actions, tâches, repositories, records, collections typées, objets de valeur et classes de configuration.
Installation
Prérequis
- PHP 8.2 ou supérieur
- Laravel 12.x, 13.x, 14.x ou 15.x
andydefer/laravel-directive^2.1 (installé automatiquement)
Service Provider (auto-découverte)
Le package utilise l'auto-découverte de Laravel. Le service provider sera automatiquement enregistré.
Vue d'ensemble
Directive Forge fournit un ensemble de commandes CLI pour générer diverses classes PHP suivant les principes d'architecture propre. Il étend le package Laravel Directive pour offrir un échafaudage de code pour :
| Type | Description | Dossier | Suffixe |
|---|---|---|---|
| Directive | Commandes CLI pour votre application | app/Directives/ |
Directive |
| Action | Logique métier à responsabilité unique | app/Actions/ |
Action |
| Requête (Request) | Validation des données entrantes | app/Http/Requests/ |
Request |
| Tâche (Task) | Jobs en arrière-plan et tâches planifiées | app/Tasks/ |
Task |
| Repository | Couche d'accès aux données | app/Repositories/ |
Repository |
| Record | Objets de transfert de données typés | app/Records/ |
Record |
| Collection Typée | Collections type-safe | app/Collections/ |
Collection |
| Objet de valeur (VO) | Objets de valeur immutables du domaine | app/ValueObjects/ |
VO |
| Configuration (Config) | Classes de configuration | app/Configs/ |
Config |
Utilisation
Générer une Directive
Généré : app/Directives/UserListDirective.php
Générer une Action
Sans --fully - crée uniquement : app/Actions/User/ShowAction.php
Avec --fully - crée les trois fichiers :
app/Actions/User/ShowAction.phpapp/Http/Requests/User/ShowRequest.phpapp/Records/User/ShowRecord.php
Action générée (app/Actions/User/ShowAction.php) :
Générer une Requête (Request)
Sans --fully - crée uniquement : app/Http/Requests/StoreUserRequest.php
Avec --fully - crée les deux fichiers :
app/Http/Requests/StoreUserRequest.phpapp/Records/StoreUserRecord.php
Requête générée (app/Http/Requests/StoreUserRequest.php) :
Générer une Tâche (Task)
Généré : app/Tasks/SendWelcomeEmailTask.php
Générer un Repository
Généré : app/Repositories/UserRepository.php
Générer un Record
Généré : app/Records/UserDataRecord.php
Générer un Objet de valeur (Value Object)
Généré : app/ValueObjects/EmailAddressVO.php
Générer une Classe de Configuration
Généré : app/Configs/DatabaseConfig.php
Générer une Collection Typée
Généré : app/Collections/UserCollection.php
Structure avec sous-dossiers
Vous pouvez organiser vos classes générées en utilisant des sous-dossiers :
Référence des commandes
| Commande | Alias | Description |
|---|---|---|
make-directive {name} |
create-directive, make-cmd |
Crée une nouvelle classe de directive |
make-action {name} {--fully} |
create-action, make-act |
Crée une nouvelle classe d'action (avec --fully pour Requête + Record) |
make-request {name} {--fully} |
create-request, make-req |
Crée une nouvelle classe de requête (avec --fully pour Record) |
make-task {name} |
create-task, make-job |
Crée une nouvelle classe de tâche |
make-repository {name} |
create-repository, make-repo |
Crée une nouvelle classe de repository |
make-record {name} |
create-record, make-dto |
Crée une nouvelle classe de record |
make-vo {name} |
create-vo, make-value-object |
Crée un nouvel objet de valeur (VO) |
make-config {name} |
create-config, make-cfg |
Crée une nouvelle classe de configuration |
make-typed-collection {name} {--item-type} |
create-collection, make-collection |
Crée une nouvelle collection typée |
Options globales
| Option | Description |
|---|---|
--list, -l |
Liste toutes les directives disponibles |
--help, -h |
Affiche l'aide |
--version, -v |
Affiche la version |
Options spécifiques aux Actions
| Option | Description |
|---|---|
--fully |
Crée également les classes Requête et Record associées |
Options spécifiques aux Requêtes
| Option | Description |
|---|---|
--fully |
Crée également la classe Record associée |
Options pour les Collections typées
| Option | Description |
|---|---|
--item-type |
Requis. Le type des éléments de la collection (ex: string, UserRecord) |
Convention de nommage intelligente
Directive Forge gère intelligemment les conversions de noms :
| Entrée | Nom de classe | Signature |
|---|---|---|
user-list |
UserListDirective |
user-list |
hello |
HelloDirective |
hello |
hello-directive |
HelloDirective |
hello |
ShowUserAction |
ShowUserAction |
(préservé) |
EmailAddress |
EmailAddressVO |
(préservé) |
Database |
DatabaseConfig |
(préservé) |
Traitement des chemins
- Les slashes (
/) créent des sous-dossiers - Le dernier segment devient le nom de la classe
- Les segments sont convertis en PascalCase pour les sous-dossiers (ex:
user-profile→UserProfile)
Tests
Tests unitaires
Tests d'intégration
Exécuter tous les tests
Composants clés
| Composant | Description |
|---|---|
BaseDirective |
Directive abstraite avec parsing et normalisation des chemins |
AbstractGenerator |
Générateur de base pour la création de fichiers |
GeneratorType |
Enum définissant toutes les configurations des générateurs |
PathInfo |
Objet de valeur pour la gestion des chemins et namespaces |
GeneratorConfig |
Configuration immuable pour chaque type de générateur |
Configuration
Stubs personnalisés
Vous pouvez publier et personnaliser les stubs :
Les stubs seront copiés dans stubs/directive-forge/ à la racine de votre projet.
Chemin de base personnalisé
Vous pouvez modifier les dossiers par défaut en modifiant la configuration du générateur :
Exemples
Flux de travail complet
Structure résultante
Licence
MIT © Andy Defer
All versions of directive-forge with dependencies
laravel/framework Version ^12.0|^13.0|^14.0|^15.0
andydefer/laravel-directive Version ^3.56.13