Gacela helps you separate your project into modules

Maintainers

Package info

github.com/gacela-project/gacela

Homepage

pkg:composer/gacela-project/gacela

Transparency log

Fund package maintenance!

chemaclass.com/sponsor

Statistics

Installs: 208 857

Dependents: 12

Suggesters: 2

Stars: 134

Open Issues: 0

2.1.0 2026-08-09 07:22 UTC

README

Gacela logo

GitHub Build Status Packagist Downloads Psalm Type-coverage Status Mutation testing badge MIT Software License

Gacela — build modular PHP applications

Gacela normalizes module boundaries so parts of your application communicate through a single entry point, without leaking internals.

Each module is built from four pillars — only the first two are required:

  • Facade — public API, the only way in
  • Factory — creates internal services
  • Provider — wires external dependencies (optional)
  • Config — reads project config (optional)

Installation

composer require gacela-project/gacela

Requires PHP 8.3+. Coming from 1.x? See UPGRADE.md.

Module structure

app/
├── gacela.php
├── config/
└── src/
    └── ModuleA/
        ├── Facade.php
        ├── Factory.php
        ├── Provider.php
        └── Config.php

CLI

vendor/bin/gacela init                  # scaffold gacela.php
vendor/bin/gacela make:module App/Blog  # scaffold a module
vendor/bin/gacela                       # every command

Modules can be inspected, validated and prepared for production — see CLI commands.

Documentation

Start with getting started, then getting a dependency — the one that answers "how do I reach that from here". docs/ is the full index; the rest:

Contributing

Report issues, share ideas, or open a pull request.

Inspired by Spryker.