Skip to content

Latest commit

 

History

History
62 lines (48 loc) · 2.72 KB

README.md

File metadata and controls

62 lines (48 loc) · 2.72 KB

Gacela logo

GitHub Build Status Scrutinizer Code Quality Scrutinizer Code Coverage Psalm Type-coverage Status MIT Software License

Gacela Framework

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 the Factory.
  • The Factory creates the objects from the module and has access to the Module's Config.
  • The Config gets the values from your defined config files.
  • The DependencyProvider uses the Locator to get the Facades from different modules.

Installation

composer require gacela-project/gacela

Documentation

  • Basic concepts: What are the characteristics of a module?
  • Facade: The entry point of your module
  • Factory: The place where you create your domain services and objects
  • Config: Reads the values defined in your config path
  • DependencyProvider: It defines the dependencies between modules
  • Code generator: Some commands out-of-the-box for generating code

Examples

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

Contribute

You are more than welcome to contribute reporting issues, sharing ideas, or contributing with your Pull Requests.