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.

"I've got questions..."

Apart from reading the docs, if something is unclear, don't hesitate to write us on Twitter, and we will answer any questions you might have about this project. Feel free to contact directly any member of the team.