PHPackages                             elavora/api-skeleton - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. elavora/api-skeleton

ActiveProject[API Development](/categories/api)

elavora/api-skeleton
====================

Projeto base para APIs construidas com o framework Elavora.

v0.2.0(today)011MITPHP ^8.3

Since Jul 7Compare

[ Source](https://github.com/Elavora/api-skeleton)[ Packagist](https://packagist.org/packages/elavora/api-skeleton)[ RSS](/packages/elavora-api-skeleton/feed)WikiDiscussions Synced today

READMEChangelog (3)Dependencies (4)Versions (7)Used By (0)

Elavora API Skeleton
====================

[](#elavora-api-skeleton)

Projeto inicial para APIs HTTP criadas com `elavora/api-framework`.

Criação
-------

[](#criação)

```
composer create-project elavora/api-skeleton minha-api
cd minha-api
cp .env.example .env
docker compose up --build
curl http://localhost:8080/health
```

O projeto inicial depende somente de `elavora/api-framework`. Para criá-lo e executá-lo localmente, tenha Composer, Docker e Docker Compose disponíveis. A resposta inicial é:

```
{"status":"ok"}
```

Estrutura
---------

[](#estrutura)

```
app/
|-- Attributes/       # Validações e hooks HTTP específicos da aplicação.
|-- Contracts/        # Interfaces específicas do produto.
|-- DataTypes/        # Valores tipados com regras do domínio.
|-- Enums/            # Enumerações do domínio.
|-- Http/
|   |-- Controller/   # Entrada HTTP: recebe Request e devolve Response.
|   `-- HttpRoutes.php # Aliases e URLs que não seguem /controller/action.
|-- Integrations/     # Clientes de APIs e sistemas externos.
|-- Repositories/     # Leitura e persistência de dados externos ao domínio.
|-- Services/         # Regras de negócio e casos de uso.
|-- Support/          # Helpers internos pequenos e reutilizáveis.
`-- Worker/           # Handlers e registro de tarefas executadas em fila.
core/
|-- bootstrap/app.php     # Monta Application, extensões e rotas.
|-- compose/              # Overlays opcionais do Docker Compose.
`-- config/extensions.php # Ativa somente pacotes opcionais instalados.
public/index.php          # Única entrada exposta pelo servidor HTTP.
worker.php                # Entrada CLI para consumo de filas.
tests/                    # Testes da aplicação.

```

As pastas vazias com `.gitkeep` existem para manter um padrão previsível entre projetos. Remova apenas quando decidir oficialmente não usar uma categoria.

### Exemplos didaticos

[](#exemplos-didaticos)

- `app/Attributes/Permission.php` mostra como bloquear uma action antes do controller. Em um projeto real, conecte o attribute ao service de autenticação.
- `app/DataTypes/ProjectCode.php` mostra um DataType específico da aplicação que implementa `Insertable` para persistência e `Responseable` para retorno JSON.
- `app/Http/Controller/HealthController.php` mostra o formato mínimo de um controller.
- `app/Http/HttpRoutes.php` mostra como registrar aliases opcionais. Actions que seguem `/controller/action` não precisam ser cadastradas manualmente.
- `app/Worker/ExampleTaskHandler.php` mostra como implementar uma tarefa de fila.

Extensões opcionais
-------------------

[](#extensões-opcionais)

Instale somente os módulos usados pela aplicação. O bootstrap registra automaticamente as extensões instaladas e selecionadas no `.env`.

NecessidadePacoteConfiguração principalOverlayCache local no processo PHP`elavora/api-cache-apcu``CACHE_DRIVER=apcu``core/compose/apcu.yml`Cache compartilhado`elavora/api-cache-redis``CACHE_DRIVER=redis``core/compose/redis.yml`Publicar tarefas em fila junto com cache Redis`elavora/api-queue-redis``REDIS_HOST=redis``core/compose/redis.yml`Consumir tarefas da fila`elavora/api-queue-worker`NenhumaNenhumBanco MySQL`elavora/api-database-mysql``DB_DRIVER=mysql``core/compose/mysql.yml`Banco PostgreSQL`elavora/api-database-postgresql``DB_DRIVER=postgresql``core/compose/postgresql.yml`Logs do container`elavora/api-log-stdout``LOG_DRIVER=stdout`NenhumLogs em arquivo`elavora/api-log-file``LOG_DRIVER=file`NenhumLogs em MongoDB`elavora/api-log-mongodb``LOG_DRIVER=mongodb`NenhumCache Redis e fila Redis podem ser instalados juntos. Ambos reutilizam o pacote base `elavora/api-redis`, instalado automaticamente pelo Composer.

O overlay atual `core/compose/redis.yml` ativa `CACHE_DRIVER=redis`; portanto, ele exige `elavora/api-cache-redis`. Um perfil Docker para fila Redis isolada ainda não faz parte do skeleton.

Defina a configuração necessária em `.env` e combine o Compose principal com o overlay apropriado:

Combinar não significa copiar e colar arquivos. Informe cada arquivo ao Docker Compose com `-f`; ele aplica os overlays na ordem recebida sobre a configuração base de `docker-compose.yml`.

```
composer require elavora/api-cache-apcu
docker compose -f docker-compose.yml -f core/compose/apcu.yml up --build

composer require elavora/api-cache-redis elavora/api-queue-redis
docker compose -f docker-compose.yml -f core/compose/redis.yml up --build

composer require elavora/api-queue-redis elavora/api-queue-worker
php worker.php --queue=default

composer require elavora/api-database-mysql
docker compose -f docker-compose.yml -f core/compose/mysql.yml up --build

composer require elavora/api-database-postgresql
docker compose -f docker-compose.yml -f core/compose/postgresql.yml up --build
```

Os complementos podem ser combinados:

```
docker compose -f docker-compose.yml -f core/compose/redis.yml -f core/compose/postgresql.yml up --build
```

Os pacotes `cache-redis` e `queue-redis` usam `elavora/api-redis` internamente para reutilizar conexões equivalentes.

Os overlays instalam na imagem PHP apenas a extensão requerida pelo perfil. Escolha `CACHE_DRIVER=apcu` ou `CACHE_DRIVER=redis`; não registre ambos como provider do mesmo contrato.

Storage e DataTypes também são opcionais, mas não são selecionados pelo bootstrap. Instale o pacote necessário quando o código da aplicação for utilizá-lo, por exemplo:

```
composer require elavora/api-storage-s3
composer require elavora/api-datatype-email
```

SQLite também exige registro explícito no boot da aplicação. Logs em MongoDB exigem a extensão PHP `mongodb` e infraestrutura configurada pela aplicação.

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance99

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

2

Last Release

0d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/42840517?v=4)[Felipe Cavalca](/maintainers/Felipe-Cavalca)[@Felipe-Cavalca](https://github.com/Felipe-Cavalca)

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/elavora-api-skeleton/health.svg)

```
[![Health](https://phpackages.com/badges/elavora-api-skeleton/health.svg)](https://phpackages.com/packages/elavora-api-skeleton)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35916.4M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24016.2M20](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172445.0k17](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

93459.5k6](/packages/botman-driver-telegram)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
