Gacela is a class resolver. It helps you to improve the design of your modules.
Inspired by Spryker Framework: https://github.com/spryker
Splitting your project into different modules will help the design of your project in terms of maintainability and scalability. It will certainly encourage your modules to interact with each other in a unified way by following these rules:
- Different modules can interact only via their
Facade
. - The
Facade
has access to theFactory
. - The
Factory
creates the objects from the module and has access to the Module'sConfig
. - The
Config
gets the values from your defined config files. - The
DependencyProvider
uses the Locator to get the Facades from different modules.
composer require gacela-project/gacela
You can check the full documentation in the official website.
You can see an example of a module using gacela in this repository.
You are more than welcome to contribute reporting issues, sharing ideas, or contributing with your Pull Requests.