Skip to content

gacela-project/gacela

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e425e2a · Jul 10, 2021
Jun 26, 2021
Jul 9, 2021
Jul 10, 2021
Jul 10, 2021
Mar 16, 2021
Apr 18, 2021
Jul 4, 2021
Jul 10, 2021
Apr 24, 2021
Jul 9, 2021
Jun 30, 2021
Jul 4, 2021
May 30, 2021
Jun 8, 2021
Apr 18, 2021
Jun 26, 2021

Repository files navigation

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.