1. Go to this page and download the library: Download andydefer/directive-forge library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
andydefer / directive-forge example snippets
declare(strict_types=1);
namespace App\Directives;
use AndyDefer\Directive\AbstractDirective;
use AndyDefer\Directive\Enums\ExitCode;
use AndyDefer\DomainStructures\Collections\Utility\StringTypedCollection;
final class UserListDirective extends AbstractDirective
{
public function getSignature(): string
{
return 'user-list';
}
public function getDescription(): string
{
return 'Description pour user-list';
}
public function getAliases(): StringTypedCollection
{
return new StringTypedCollection();
}
public function shouldBootLaravel(): bool
{
return false;
}
public function execute(): ExitCode
{
$this->info('Directive exécutée avec succès !');
return ExitCode::SUCCESS;
}
}
declare(strict_types=1);
namespace App\Actions\User;
use AndyDefer\Actions\Actions\AbstractAction;
use AndyDefer\Actions\Http\ResponseFactory;
use AndyDefer\DomainStructures\Abstracts\AbstractRecord;
final class ShowAction extends AbstractAction
{
protected function handle(AbstractRecord $request): ResponseFactory
{
// TODO: Implémentez votre logique métier ici
return ResponseFactory::json(['message' => 'Action exécutée avec succès']);
}
}
declare(strict_types=1);
namespace App\Http\Requests;
use AndyDefer\Actions\Http\Requests\AbstractRequest;
use AndyDefer\DomainStructures\Abstracts\AbstractRecord;
use AndyDefer\DomainStructures\Utils\EmptyRecord;
final class StoreUserRequest extends AbstractRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [];
}
public function getRecord(): AbstractRecord
{
return new EmptyRecord();
}
}
declare(strict_types=1);
namespace App\ValueObjects;
use AndyDefer\DomainStructures\Abstracts\AbstractValueObject;
final class EmailAddressVO extends AbstractValueObject
{
public function __construct(
// TODO: Ajoutez les propriétés avec le mot-clé readonly
) {
// TODO: Ajoutez la logique de validation
}
}
declare(strict_types=1);
namespace App\Configs;
use AndyDefer\DomainStructures\Abstracts\AbstractConfig;
final class DatabaseConfig extends AbstractConfig
{
// TODO: Ajoutez les méthodes de configuration
}
// Dans votre AppServiceProvider
use AndyDefer\DirectiveForge\Enums\GeneratorType;
// Surcharge de la configuration
GeneratorType::DIRECTIVE->getConfig()->basePath = '/app/Custom/Directives/';
bash
# 1. Créer une directive pour importer des utilisateurs
./vendor/bin/directive make-directive user/import
# 2. Créer une action avec sa Requête et son Record
./vendor/bin/directive make-action user/process-import --fully
# 3. Créer une requête avec son Record
./vendor/bin/directive make-request api/v1/StoreUserRequest --fully
# 4. Créer une tâche pour le traitement par lots
./vendor/bin/directive make-task user/send-notifications
# 5. Créer un repository pour l'accès aux données
./vendor/bin/directive make-repository user
# 6. Créer un record pour le transfert de données
./vendor/bin/directive make-record user-data
# 7. Créer un objet de valeur
./vendor/bin/directive make-vo EmailAddress
# 8. Créer une classe de configuration
./vendor/bin/directive make-config Database
# 9. Créer une collection typée
./vendor/bin/directive make-typed-collection user-collection --item-type=UserDataRecord