Download the PHP package andydefer/laravel-directive without Composer

On this page you can find all versions of the php package andydefer/laravel-directive. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-directive

Laravel Directive

Un framework CLI pour Laravel. Orchestration de pipelines, contexte partagé, découverte automatique, appels internes - avec ou sans Laravel.

PHP Version Laravel Version


Table des matières

  1. Installation
  2. Philosophie : Créez votre propre CLI
  3. Première directive
  4. Signature des commandes
    • Structure de la signature
    • Arguments requis
    • Arguments par défaut
    • Arguments nullables
    • Arguments variadiques
    • Flags
    • Énumérations
    • Commentaires inline
    • Ordre strict des éléments
    • Formatage des espaces avec ^
    • Tokens spéciaux
    • Tags personnalisés
  5. Accès aux arguments et options
  6. Contexte partagé
  7. Appels internes (call)
  8. Découverte automatique
  9. Journalisation JSONL
  10. Suggestions de commandes
  11. Mode verbose et débogage
  12. Directives intégrées
  13. Exécution hors CLI
  14. Mode autonome (sans Laravel)
  15. Tests des directives
  16. Cas d'usage concrets
  17. Bonnes pratiques
  18. Référence des codes de sortie

Installation

Prérequis : PHP 8.1+ | Laravel 12.x, 13.x, 14.x ou 15.x


Philosophie : Créez votre propre CLI

Ce package n'est pas un simple binaire préfabriqué. C'est un framework pour construire votre propre système CLI adapté à vos besoins métier.

Le binaire fourni (vendor/bin/directive) est un exemple de démonstration, pas une solution finale.

Pourquoi créer votre propre CLI ?

Contrôle total - Vous décidez des commandes, des providers, des sources ✅ Logique métier - Intégration parfaite avec votre domaine applicatif ✅ Providers personnalisés - Enregistrez vos propres services et dépendances ✅ Performance - Chargez uniquement ce dont vous avez besoin ✅ Sécurité - Contrôle d'accès granulaire ✅ Évolutivité - Facile à étendre avec votre code

Créer votre point d'entrée


Première directive

1. Créer la classe

2. Exécuter avec votre CLI


Signature des commandes

La signature est la clé de voûte du système. Elle définit la structure complète d'une commande : son nom, ses arguments, ses flags, ses énumérations et plus encore.

Le parseur de signature est basé sur php-signature-parser et supporte une syntaxe riche et expressive.

Structure de la signature

Arguments requis

Les arguments requis sont obligatoires. La commande échoue si l'utilisateur ne les fournit pas.

Arguments par défaut

Les arguments par défaut fournissent une valeur si l'utilisateur n'en spécifie pas.

Arguments nullables

Les arguments nullables peuvent recevoir la valeur null explicitement.

Arguments variadiques

Les arguments variadiques capturent zéro, une ou plusieurs valeurs.

Flags

Les flags sont des options booléennes. Présents = true, absents = false.

Énumérations

Les énumérations restreignent les valeurs autorisées.

Syntaxe

États possibles

État Syntaxe Description
Requis =* Doit être fourni
Optionnel =? Peut être ~ (skip)
Défaut =default Valeur par défaut

Exemples

Accès aux énumérations

Commentaires inline

Les commentaires documentent chaque argument directement dans la signature.

Ordre strict des éléments

⚠️ L'ordre des éléments dans la signature est STRICT et IMPÉRATIF.

Ordre Type Syntaxe Exemple
1 Source command backup
2 Requis {name} {source} {destination}
3 Par défaut {name=value} {format=zip} {output=dist}
4 Nullable {name=?} {env=?} {port=?}
5 Enum ::name->[values]=state ::level->[low,high]=medium
6 Variadique {name*} {excludes*} {purpose*}
7 Flags {--flag} {--force} {--verbose}
8 Tags personnalisés <key="value"> <user="admin">

Exemples d'ordre valide

Exemples d'ordre invalide

Formatage des espaces avec ^

Le parseur remplace automatiquement les caractères ^ par des espaces.

Saisie utilisateur Valeur réelle
John^Doe John Doe
Hello^World! Hello World!
C:/Program^Files C:/Program Files

Tokens spéciaux

Le token ? (null explicite)

Permet de passer explicitement null comme valeur.

Le token ~ (skip)

Permet de sauter un argument.

Cas Comportement
Argument requis ~null
Argument par défaut ~ → utilise la valeur par défaut
Argument nullable ~null
Enum avec défaut ~ → utilise la valeur par défaut
Enum optionnel ~null

Tags personnalisés

Les tags permettent d'ajouter des données supplémentaires sans modifier la signature.


Accès aux arguments et options

Méthodes principales

Recherche d'arguments avec getArgument()

getArgument() recherche dans l'ordre de priorité :

  1. Arguments requis
  2. Arguments par défaut
  3. Énumérations
  4. Arguments variadiques (retourne un tableau)
  5. Flags (retourne un booléen)

Contexte partagé

Le contexte est un MapCollection mutable accessible par toutes les directives.

Méthodes du contexte

Exemple : Pipeline de traitement


Appels internes (call)

La méthode call() permet d'exécuter d'autres directives depuis une directive.

Syntaxe

Détection de circularité

Laravel Directive détecte automatiquement les appels circulaires :

Pipeline de déploiement


Découverte automatique

Laravel Directive découvre automatiquement les directives via AST (Abstract Syntax Tree).

Sources de découverte

Source Description Dossier par défaut
Built-in Directives intégrées src/BuiltIn/
Workspace Directives de l'application src/Directives/, app/Directives/
Vendor Directives des packages vendor/*/src/Directives/
Custom Sources configurées Configurable

Filtrer la découverte

Système de problèmes

Le système de découverte collecte automatiquement les problèmes :


Journalisation JSONL

Chaque exécution est automatiquement journalisée au format JSONL.

Structure du log

Configuration


Suggestions de commandes

Laravel Directive utilise un BK-tree (distance de Levenshtein) pour suggérer des commandes similaires.

Les alias sont également pris en compte.


Mode verbose et débogage

Le mode verbose affiche automatiquement les problèmes rencontrés.

Activation

Audit du noyau


Directives intégrées

Directive Description Alias
help Affiche l'aide -h, --help
list Liste toutes les directives ls, -l, --list
version Affiche la version -v, --version
clean-logs [days] Nettoie les logs -
kernel:audit Audit du noyau audit

Exécution hors CLI

Les directives peuvent être exécutées dans n'importe quel contexte PHP.

Dans un contrôleur Laravel

Dans un job Laravel

Dans un service métier


Mode autonome (sans Laravel)

Script d'entrée


Tests des directives

DirectiveTestingService permet de tester les directives en isolation.


Cas d'usage concrets

Pipeline de déploiement

Data processing pipeline


Bonnes pratiques

✅ Injection de services

✅ Validation des arguments

✅ Utiliser le contexte pour les données partagées

✅ Hooks before/after

✅ Créer son propre CLI


Référence des codes de sortie

Code Label Description
0 SUCCESS Exécution réussie
1 FAILURE Échec général
2 INVALID_ARGUMENT Argument invalide
3 NOT_FOUND Directive non trouvée
4 PERMISSION_DENIED Permission refusée
5 RUNTIME_ERROR Erreur d'exécution
6 INVALID_SIGNATURE Signature invalide
7 CONFLICT Conflit (circularité)
8 DEPENDENCY_ERROR Erreur de dépendance

Licence

MIT © Andy Defer


All versions of laravel-directive with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1
laravel/framework Version ^12.0|^13.0|^14.0|^15.0
nikic/php-parser Version ^5.8
andydefer/algo-kit Version ^0.8.14
andydefer/laravel-jsonl Version ^0.8.16
andydefer/php-signature-parser Version ^0.12.0
andydefer/php-console Version ^1.6.14
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package andydefer/laravel-directive contains the following files

Loading the files please wait ...