gacela-project/gacela
| Install | |
|---|---|
composer require gacela-project/gacela |
|
| Latest Version: | 2.8.0 |
| PHP: | >=8.3 |
| License: | MIT |
| Last Updated: | Oct 4, 2026 |
| Links: | GitHub · Packagist |
Gacela — build modular PHP applications
Gacela normalizes module boundaries so parts of your application communicate through a single entry point, without leaking internals.
Each module is built from four pillars — only the first two are required:
- Facade — public API, the only way in
- Factory — creates internal services
- Provider — wires external dependencies (optional)
- Config — reads project config (optional)
Installation
composer require gacela-project/gacela
Requires PHP 8.3+. Coming from 1.x? See UPGRADE.md.
Module structure
app/
├── gacela.php
├── config/
└── src/
└── Blog/
├── BlogFacade.php
├── BlogFactory.php
├── BlogProvider.php
└── BlogConfig.php
That is what make:module App/Blog below writes. Pass --short-name for Facade.php instead of BlogFacade.php — both resolve; the prefix is the default because it survives being read out of context.
CLI
vendor/bin/gacela init # scaffold gacela.php
vendor/bin/gacela make:module App/Blog # scaffold a module
vendor/bin/gacela # every command
Modules can be inspected, validated and prepared for production — see CLI commands.
Documentation
Start with getting started, then getting a dependency — the one that answers "how do I reach that from here". docs/ is the full index; the rest:
- Upgrading from 1.x
- CLI commands
- Container configuration — bindings, contextual bindings, attributes, hooks
- Caching and cacheable methods
- Static analysis (PHPStan / Psalm)
- Module health checks
- Events
- Testing
- Opcache preload and production performance
- Full reference: gacela-project.com
- Symfony bundle — bootstrap Gacela from the kernel, reach Symfony services,
bin/console gacela:* - Laravel provider — bootstrap Gacela when the app boots, reach Laravel services,
artisan gacela:* - Examples:
- gacela-example
- symfony-gacela-example — Gacela with Symfony 7.4
- laravel-gacela-example — Gacela with Laravel 12
Contributing
Report issues, share ideas, or open a pull request.
Inspired by Spryker.
Related Packages
Version History
| Version | Released | PHP | License |
|---|---|---|---|
| 2.8.0 | >=8.3 | MIT | |
| 2.7.1 | >=8.3 | MIT | |
| 2.7.0 | >=8.3 | MIT | |
| 2.6.2 | >=8.3 | MIT | |
| 2.6.1 | >=8.3 | MIT | |
| 2.6.0 | >=8.3 | MIT | |
| 2.5.0 | >=8.3 | MIT | |
| 2.4.0 | >=8.3 | MIT | |
| 2.3.0 | >=8.3 | MIT | |
| 2.2.0 | >=8.3 | MIT | |
| 2.1.0 | >=8.3 | MIT | |
| 2.0.0 | >=8.3 | MIT | |
| 1.21.0 | >=8.1 | MIT | |
| 1.20.0 | >=8.1 | MIT | |
| 1.19.0 | >=8.1 | MIT | |
| 1.18.0 | >=8.1 | MIT | |
| 1.17.0 | >=8.1 | MIT | |
| 1.16.0 | >=8.1 | MIT | |
| 1.15.0 | >=8.1 | MIT | |
| 1.14.4 | >=8.1 | MIT | |
| 1.14.3 | >=8.1 | MIT | |
| 1.14.2 | >=8.1 | MIT | |
| 1.14.1 | >=8.1 | MIT | |
| 1.14.0 | >=8.1 | MIT | |
| 1.13.0 | >=8.1 | MIT | |
| 1.12.0 | >=8.1 | MIT | |
| 1.11.0 | >=8.1 | MIT | |
| 1.10.0 | >=8.1 | MIT | |
| 1.9.1 | >=8.1 | MIT | |
| 1.9.0 | >=8.1 | MIT |
Showing the latest 30 of 80. See every release on Packagist