Gacela Project

Gacela helps you build modular PHP applications

VISION: Simplify the communication of your different modules in your web application.

MISSION: Normalize the entry point of a module, without interfering with your domain-business logic.

Splitting your project into different modules is vital for the maintainability and scalability for your app. It encourages your modules to interact with each other in a unified way by following these rules:

  • Modules interact with each other only via their Facade
  • The Facade is the entry point of a module
  • The Factory manages the intra-dependencies of the module
  • The DependencyProvider resolves the extra-dependencies of the module
  • The Config has access to the project's config files

Installation (via packagist)

composer require gacela-project/gacela

Extra Modules

  • Router: A minimalistic HTTP router.
  • Container: A minimalistic container dependency.



You can see an example of a module using Gacela in this repository.

See how Gacela works with Symfony, Laravel or other frameworks.


We have a community forum where you can get the latest news and openly ask any of your questions to help spread the knowledge in the

If something is still unclear, do not hesitate to write us on X, and we will answer any questions you might have about this project.