An open API service indexing awesome lists of open source software.

https://github.com/gacela-project/gacela

Build modular PHP applications.
https://github.com/gacela-project/gacela

framework gacela library modular php

Last synced: 2 months ago
JSON representation

Build modular PHP applications.

Awesome Lists containing this project

README

          




Gacela logo



GitHub Build Status


Scrutinizer Code Quality


Scrutinizer Code Coverage


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 exposes four classes:

- [**Facade**](https://gacela-project.com/docs/facade/) — public API, the only way in
- [**Factory**](https://gacela-project.com/docs/factory/) — creates internal services
- [**Provider**](https://gacela-project.com/docs/provider/) — wires external dependencies
- [**Config**](https://gacela-project.com/docs/config/) — reads project config

## Installation

```bash
composer require gacela-project/gacela
```

## Module structure

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

## Documentation

- [Getting started](docs/getting-started.md)
- [Container configuration](docs/container-configuration.md)
- [Static analysis (PHPStan / Psalm)](docs/static-analysis.md)
- [Module health checks](docs/module-health-checks.md)
- [Opcache preload](docs/opcache-preload.md)
- Full reference: [gacela-project.com](https://gacela-project.com/)
- Examples: [gacela-example](https://github.com/gacela-project/gacela-example)

## Contributing

Report [issues](https://github.com/gacela-project/gacela/issues), share [ideas](https://github.com/gacela-project/gacela/discussions), or open a [pull request](.github/CONTRIBUTING.md).

---

> Inspired by [Spryker](https://github.com/spryker).