Download the PHP package jorgo69/laravel-cqrs-modules without Composer

On this page you can find all versions of the php package jorgo69/laravel-cqrs-modules. 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-cqrs-modules

jorgo69/laravel-cqrs-modules

Tests Version Packagist Téléchargements Packagist

Générateur de modules CQRS pour Laravel. Outil de dev uniquement — aucune dépendance runtime dans les projets qui l'installent (voir "Principe" ci-dessous).

Auteur : Ibra Le Jorgo — [email protected] — github.com/Jorgo69 Licence : MIT (voir LICENSE.md) — projet ouvert, contributions bienvenues (voir CONTRIBUTING.md).

Installation rapide

--dev est volontaire, pas une erreur à corriger — ce package ne fait que générer du code (voir "Principe" plus bas), il n'a rien à faire en production. Autres méthodes d'installation (depuis GitHub directement, en local) : section "Installation" complète plus bas.

Compatibilité

PHP Laravel Testé par la CI
8.2, 8.3, 8.4 12.x Oui (.github/workflows/tests.yml)
8.3, 8.4 (pas 8.2) 13.x Oui
8.2, 8.3, 8.4 11.x Non — voir ci-dessous

Laravel 13 lui-même exige PHP ^8.3 — impossible de l'utiliser sur PHP 8.2, quel que soit ce package. Ce n'est jamais un souci en pratique (un projet Laravel 13 tourne forcément déjà sur PHP 8.3+), mais bon à savoir si vous gérez plusieurs projets sur des PHP différents.

La CI teste réellement 5 combinaisons PHP × Laravel (Laravel 12 sur 8.2/8.3/8.4, Laravel 13 sur 8.3/8.4), pas seulement plusieurs PHP contre une seule version de Laravel.

Laravel 11 n'est plus dans la matrice CI, volontairement. Son support sécurité s'est terminé le 12 mars 2026 : au moment d'écrire ceci, composer require laravel/framework:^11.0 ne se résout plus du tout, car Packagist signale désormais toutes les versions 11.x par des advisories de sécurité (constaté directement, pas une supposition) — il n'existe plus de version 11.x "propre" contre laquelle tester. Le package continue d'accepter illuminate/console/support/filesystem en ^11.0 dans son composer.json (ce sont des sous-packages, pas laravel/framework — un projet déjà en Laravel 11 garde son propre lock file et n'est pas forcé de migrer), mais cette compatibilité n'est plus couverte par la CI et repose sur le fait que le code du package n'utilise que des API stables, inchangées depuis longtemps. Si vous êtes encore sur Laravel 11, ça devrait fonctionner, mais c'est un "best effort", pas une garantie testée. La compatibilité Laravel 13 a aussi été vérifiée manuellement sur un vrai projet consommateur (wuri-anip-api), en plus de la CI.

Principe

Ce package ne fournit pas un Bus tout fait à importer dans votre code. Il copie un Bus minimal (Command/Query/CommandHandler/QueryHandler/ CommandBus/QueryBus) dans votre propre application, sous le namespace de votre choix (App\Shared\Bus par défaut). Le code généré ensuite ne référence jamais ce package — seulement votre propre code. Vous en devenez pleinement propriétaire, vous pouvez le faire évoluer librement projet par projet.

Conséquence : ce package peut rester en require-dev dans vos projets. Il ne sert qu'à générer du code, jamais à l'exécuter en production.

Installation

Depuis Packagist (méthode recommandée)

Le package est publié sur packagist.org/packages/jorgo69/laravel-cqrs-modules — aucune configuration repositories à ajouter, ça fonctionne comme n'importe quel package Composer classique :

--dev est volontaire : ce package ne sert qu'à générer du code (voir "Principe" ci-dessus), il n'a rien à faire en production. Sans version précisée, Composer installe la dernière version taguée stable (v1.0.0 aujourd'hui). Pour figer une branche majeure : jorgo69/laravel-cqrs-modules:^1.0. Le package est synchronisé automatiquement avec Packagist à chaque push sur main et chaque nouveau tag (webhook GitHub actif) — jamais besoin d'attendre une republication manuelle.

Directement depuis GitHub (équivalent de npm install git+...)

Alternative à Packagist : Composer sait installer un package directement depuis un dépôt Git. Utile pour tester une branche précise, un commit non encore taggé, ou tout simplement si vous préférez ne pas dépendre de Packagist. Dans le composer.json du projet consommateur :

En développement local (monorepo / plusieurs projets sur la même machine)

Pratique quand vous développez le package et un projet qui le consomme côte à côte — chaque modification du package est immédiatement visible dans le projet, sans réinstaller :

cqrs-modules:install publie config/cqrs-modules.php, copie le Bus dans app/Shared/Bus/ et enregistre son Provider dans bootstrap/providers.php automatiquement.

Commandes

Référence complète (toutes les options, comment le package fonctionne une fois installé, jusqu'où et comment le personnaliser, complémentaires recommandés pour un projet API) : voir USAGE.md. Ce qui suit est un résumé rapide.

php artisan make:module {Name}

Scaffold un module complet : Commands/ Queries/ Handlers/ DTOs/ Enums/ Models/ Controllers/ Requests/ Providers/ Database/{Migrations,Factories, Seeders}/ + un {Name}ServiceProvider.php + un routes.php propre au module. Enregistre automatiquement le Provider dans bootstrap/providers.php.

Options :

Sans flags, en terminal interactif, les choix (dossiers optionnels, test) sont demandés via des prompts. En CI/scripté (--no-interaction), les valeurs par défaut de config/cqrs-modules.php sont utilisées.

Relancer la commande sur un module existant est sans danger : chaque élément déjà présent est simplement signalé, jamais écrasé.

php artisan make:cqrs-command {Module} {Name}

Ajoute une seule paire Command+Handler dans un module déjà généré par make:module — pour le cas où vous n'avez besoin que d'une nouvelle action dans un module existant, pas d'un module entier. Enregistre automatiquement la paire dans registerHandlers() (--no-register pour désactiver).

php artisan make:cqrs-query {Module} {Name}

Identique pour une paire Query+Handler.

Convention générée

Configuration (config/cqrs-modules.php)

Publiable via l'installeur. Permet d'ajuster : le namespace/chemin des modules, les dossiers optionnels créés par défaut, le suffixe des Handlers, le préfixe/middleware des routes, les noms de méthode du Provider (registerRoutes/registerHandlers), le namespace/chemin du Bus, et si l'enregistrement automatique dans bootstrap/providers.php doit avoir lieu.

Les stubs (stubs/module/*.stub, stubs/piece/*.stub, stubs/bus/*.stub) sont publiables (--tag=cqrs-modules-stubs) et surchargeables sans forker le package — le générateur cherche d'abord dans config('cqrs-modules.stubs.publish_path') avant de retomber sur les stubs embarqués.

Limites connues (v1)

Tests

Utilise orchestra/testbench + orchestra/workbench — les commandes s'exécutent contre une véritable application Laravel de test (pas de mocks sur le système de fichiers).

Contribuer

Les issues et pull requests sont les bienvenues — voir CONTRIBUTING.md pour le détail (structure du projet, signature des fichiers, stratégie de branches, mise en place de l'environnement, conventions de code, process de PR). main est protégée : toute contribution passe par une PR avec CI verte (PHP 8.2/8.3/8.4), pas d'exception.

Historique des changements : voir CHANGELOG.md.


All versions of laravel-cqrs-modules with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
illuminate/console Version ^11.0|^12.0|^13.0
illuminate/support Version ^11.0|^12.0|^13.0
illuminate/filesystem Version ^11.0|^12.0|^13.0
spatie/laravel-package-tools Version ^1.16
laravel/prompts Version ^0.1.24|^0.3
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 jorgo69/laravel-cqrs-modules contains the following files

Loading the files please wait ...