Skip to content

Commit 3287f1f

Browse files
committed
docs: Adiciona o Guia Técnico e Quick Start e atualiza referências em documentos existentes
1 parent bbbb44b commit 3287f1f

File tree

8 files changed

+192
-51
lines changed

8 files changed

+192
-51
lines changed

README.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,21 @@ make ci
246246
- 🎯 [Examples](examples/) - Exemplos práticos
247247
- 🧪 [Testing Guide](docs/testing.md) - Como testar
248248

249+
---
250+
251+
## 📚 Guia Técnico e Quick Start
252+
253+
Consulte o arquivo [`docs/guia-tecnico-quickstart.md`](docs/guia-tecnico-quickstart.md) para um guia completo das funcionalidades, exemplos de uso, dicas de integração e melhores práticas com o Express-PHP + Cycle ORM Extension.
254+
255+
Principais tópicos:
256+
- Funcionalidades detalhadas da extensão
257+
- Quick start para integração com Express-PHP
258+
- Exemplos de CRUD, queries avançadas, validação, transações e mais
259+
- Dicas de performance e troubleshooting
260+
- Links para suporte e comunidade
261+
262+
---
263+
249264
## 🛡️ Requisitos
250265

251266
- **PHP**: 8.1 ou superior
@@ -300,7 +315,7 @@ Este projeto está licenciado sob a **MIT License** - veja o arquivo [LICENSE](L
300315

301316
- 🐛 **Issues**: [GitHub Issues](https://github.com/CAFernandes/express-php-cycle-orm-extension/issues)
302317
- 💬 **Discussões**: [GitHub Discussions](https://github.com/CAFernandes/express-php-cycle-orm-extension/discussions)
303-
- 📧 **Email**: caio@express-php.dev
318+
<!-- - 📧 **Email**: caio@express-php.dev -->
304319

305320
---
306321

@@ -312,4 +327,4 @@ Este projeto está licenciado sob a **MIT License** - veja o arquivo [LICENSE](L
312327

313328
**Se você gostou, deixe uma estrela!**
314329

315-
</div>
330+
</div>

docs/advanced.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Advanced Usage - Express-PHP Cycle ORM Extension
22

3+
> Consulte também o [Guia Técnico e Quick Start](./guia-tecnico-quickstart.md) para exemplos de uso avançado, dicas de performance e integração.
4+
35
## 🏗️ Custom Repositories
46

57
### Creating Custom Repositories

docs/configuration.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
21
# Configuration Guide - Express-PHP Cycle ORM Extension
32

3+
> Consulte também o [Guia Técnico e Quick Start](./guia-tecnico-quickstart.md) para exemplos práticos de configuração e melhores práticas.
4+
45
## 🔧 Environment Variables
56

67
### Database Configuration
@@ -447,4 +448,4 @@ class CycleConfigProvider
447448
}
448449
}
449450
}
450-
```
451+
```

docs/cycle-request.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Integração Cycle ORM Extension para Express-PHP
22

3+
> Consulte também o [Guia Técnico e Quick Start](./guia-tecnico-quickstart.md) para visão geral, exemplos e integração rápida.
4+
35
## Visão Geral
46
A extensão injeta recursos do Cycle ORM no seu projeto Express-PHP de forma **opcional, segura e sem acoplamento** ao core do framework, utilizando um wrapper inteligente: `CycleRequest`.
57

docs/guia-tecnico-quickstart.md

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
# Guia Técnico e Quick Start — Express-PHP Cycle ORM Extension
2+
3+
## Sumário
4+
- [Visão Geral](#visão-geral)
5+
- [Funcionalidades Principais](#funcionalidades-principais)
6+
- [Quick Start](#quick-start)
7+
- [Recursos Avançados](#recursos-avançados)
8+
- [Dúvidas e Suporte](#dúvidas-e-suporte)
9+
10+
---
11+
12+
## Visão Geral
13+
A extensão Express-PHP Cycle ORM integra o Cycle ORM ao microframework Express-PHP, fornecendo injeção automática de serviços, gerenciamento inteligente de transações, validação de entidades, helpers para queries e arquitetura baseada em middlewares, tudo com zero configuração manual.
14+
15+
## Funcionalidades Principais
16+
17+
### Injeção Automática de Serviços
18+
- `$req->orm`: Instância do Cycle ORM
19+
- `$req->em`: EntityManager para persistência
20+
- `$req->db`: Database Manager
21+
- `$req->repository(EntityClass)`: Repositório da entidade
22+
- `$req->entity(EntityClass, $data)`: Cria entidade populada
23+
- `$req->find(EntityClass, $id)`: Busca por PK
24+
- `$req->paginate($query, $page, $perPage)`: Paginação de resultados
25+
- `$req->validateEntity($entity)`: Validação automática
26+
27+
### Gerenciamento Inteligente de Transações
28+
- Transações abertas automaticamente em cada request
29+
- Commit automático em sucesso, rollback em exceções
30+
- Middleware `TransactionMiddleware` customizável
31+
32+
### Validação de Entidades
33+
- Validação básica via reflection (tipos, campos obrigatórios)
34+
- Pode ser estendida com regras customizadas
35+
36+
### Helpers para Queries
37+
- Filtros dinâmicos, busca textual, ordenação e paginação via helpers
38+
- Eager loading de relacionamentos com `.load('relacao')`
39+
40+
### Arquitetura Middleware-Driven
41+
- Middlewares: `CycleMiddleware`, `TransactionMiddleware`, `EntityValidationMiddleware`, `HealthCheckMiddleware`
42+
- Compatível com qualquer stack de middlewares do Express-PHP
43+
44+
### CLI Integrada
45+
- Comandos: `make:entity`, `cycle:schema --sync`, `cycle:status`, `migrate`, `seed` etc.
46+
47+
### Zero Configuração
48+
- Auto-discovery: basta instalar, sem necessidade de registrar providers manualmente
49+
- Configuração mínima via `.env` e `config/cycle.php`
50+
51+
### Compatibilidade
52+
- 100% compatível com handlers e middlewares Express-PHP
53+
- Proxy transparente: `CycleRequest` expõe todos métodos do `Request` original
54+
55+
### Exemplos Avançados
56+
- CRUD completo, queries com joins, subqueries, operações em lote, analytics, health check, etc.
57+
- Veja exemplos em `examples/basic-usage.php` e `examples/advanced-queries.php`
58+
59+
---
60+
61+
## Quick Start
62+
63+
### 1. Instalação
64+
```bash
65+
composer require express-php/cycle-orm-extension
66+
```
67+
68+
### 2. Configuração do Ambiente
69+
Crie ou edite o arquivo `.env`:
70+
```env
71+
DB_CONNECTION=mysql
72+
DB_HOST=localhost
73+
DB_PORT=3306
74+
DB_DATABASE=express_api
75+
DB_USERNAME=root
76+
DB_PASSWORD=
77+
78+
CYCLE_SCHEMA_CACHE=true
79+
CYCLE_AUTO_SYNC=false
80+
CYCLE_SCHEMA_STRICT=false
81+
```
82+
83+
### 3. Gerar Primeira Entidade
84+
```bash
85+
php express make:entity User
86+
```
87+
88+
### 4. Sincronizar o Schema
89+
```bash
90+
php express cycle:schema --sync
91+
```
92+
93+
### 5. Implementação Básica de API
94+
Exemplo de `public/index.php`:
95+
```php
96+
<?php
97+
require_once 'vendor/autoload.php';
98+
99+
use Express\Core\Application;
100+
use App\Models\User;
101+
102+
$app = new Application();
103+
104+
// Listar usuários
105+
$app->get('/api/users', function($req, $res) {
106+
$users = $req->repository(User::class)->findAll();
107+
$res->json(['users' => $users]);
108+
});
109+
110+
// Criar usuário
111+
$app->post('/api/users', function($req, $res) {
112+
$user = $req->entity(User::class, $req->body);
113+
$req->em->persist($user);
114+
$res->status(201)->json(['user' => $user]);
115+
});
116+
117+
$app->run();
118+
```
119+
120+
---
121+
122+
## Recursos Avançados
123+
- Paginação: `$req->paginate($query, $page, $perPage)`
124+
- Filtros: `CycleHelpers::applyFilters($query, $filters, $campos)`
125+
- Busca textual: `CycleHelpers::applySearch($query, $search, $campos)`
126+
- Eager loading: `$query->load('relacao')`
127+
- Validação: `$req->validateEntity($entity)`
128+
129+
---
130+
131+
## Dúvidas e Suporte
132+
- Documentação: [docs.express-php.dev/cycle-orm](https://docs.express-php.dev/cycle-orm)
133+
<!-- - Discord: [express-php.dev/discord](https://express-php.dev/discord) -->
134+
- Issues: [github.com/express-php/cycle-orm-extension/issues](https://github.com/express-php/cycle-orm-extension/issues)

docs/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Documentação Express-PHP Cycle ORM Extension
22

3+
> Consulte o [Guia Técnico e Quick Start](./guia-tecnico-quickstart.md) para um resumo completo e exemplos práticos.
4+
35
## Índice de Documentos
46

57
- [Instalação](installation.md)

docs/installation.md

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Installation
22

3+
> **Dica:** Para um passo a passo completo, consulte também o [Guia Técnico e Quick Start](./guia-tecnico-quickstart.md).
4+
35
## Requirements
46

57
- PHP 8.1 or higher
@@ -10,37 +12,30 @@
1012
## Composer Installation
1113

1214
```bash
13-
composer require cafernandes/express-php-cycle-orm-extension
14-
```
15-
16-
## Manual Installation
17-
18-
1. Download the package
19-
2. Add to your `composer.json`:
20-
21-
```json
22-
{
23-
"require": {
24-
"cafernandes/express-php-cycle-orm-extension": "^1.0"
25-
}
26-
}
15+
composer require express-php/cycle-orm-extension
2716
```
2817

29-
3. Run `composer install`
30-
3118
## Environment Setup
3219

33-
Copy the example environment file:
20+
Crie ou edite o arquivo `.env`:
3421

35-
```bash
36-
cp vendor/cafernandes/express-php-cycle-orm-extension/.env.example .env
37-
```
22+
```env
23+
DB_CONNECTION=mysql
24+
DB_HOST=localhost
25+
DB_PORT=3306
26+
DB_DATABASE=express_api
27+
DB_USERNAME=root
28+
DB_PASSWORD=
3829
39-
Configure your database settings in `.env`.
30+
CYCLE_SCHEMA_CACHE=true
31+
CYCLE_AUTO_SYNC=false
32+
CYCLE_SCHEMA_STRICT=false
33+
CYCLE_LOG_QUERIES=false
34+
```
4035

4136
## Verification
4237

43-
To verify the installation worked:
38+
Para verificar se a instalação funcionou:
4439

4540
```php
4641
<?php
@@ -50,7 +45,6 @@ use Express\Core\Application;
5045

5146
$app = new Application();
5247

53-
// Check if Cycle ORM is available
5448
if ($app->has('cycle.orm')) {
5549
echo "✅ Cycle ORM Extension installed successfully!";
5650
} else {
@@ -60,6 +54,6 @@ if ($app->has('cycle.orm')) {
6054

6155
## Next Steps
6256

63-
- [Configuration](configuration.md)
64-
- [Basic Usage](usage.md)
65-
- [Advanced Features](advanced.md)
57+
- [Configuração](configuration.md)
58+
- [Uso Básico](usage.md)
59+
- [Avançado](advanced.md)

docs/usage.md

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,40 @@
11
# Usage Guide - Express-PHP Cycle ORM Extension
22

3+
> **Dica:** Consulte também o [Guia Técnico e Quick Start](./guia-tecnico-quickstart.md) para um resumo completo das funcionalidades, exemplos e melhores práticas.
4+
35
## 🚀 Quick Start
46

5-
### 1. Installation
7+
### 1. Instalação
68

79
```bash
8-
composer require cafernandes/express-php-cycle-orm-extension
10+
composer require express-php/cycle-orm-extension
911
```
1012

11-
### 2. Environment Configuration
13+
### 2. Configuração do Ambiente
1214

13-
Create or update your `.env` file:
15+
Crie ou edite o arquivo `.env`:
1416

1517
```env
16-
# Database Configuration
1718
DB_CONNECTION=mysql
1819
DB_HOST=localhost
1920
DB_PORT=3306
2021
DB_DATABASE=express_api
2122
DB_USERNAME=root
2223
DB_PASSWORD=
2324
24-
# Cycle ORM Settings
2525
CYCLE_SCHEMA_CACHE=true
2626
CYCLE_AUTO_SYNC=false
2727
CYCLE_SCHEMA_STRICT=false
2828
CYCLE_LOG_QUERIES=false
2929
```
3030

31-
### 3. Create Your First Entity
31+
### 3. Gerar Primeira Entidade
3232

3333
```bash
3434
php express make:entity User
3535
```
3636

37-
This creates `app/Models/User.php`:
37+
Isso cria `app/Models/User.php`:
3838

3939
```php
4040
<?php
@@ -65,13 +65,13 @@ class User
6565
}
6666
```
6767

68-
### 4. Sync Database Schema
68+
### 4. Sincronizar o Schema
6969

7070
```bash
7171
php express cycle:schema --sync
7272
```
7373

74-
### 5. Basic API Implementation
74+
### 5. Implementação Básica de API
7575

7676
```php
7777
<?php
@@ -82,28 +82,19 @@ use App\Models\User;
8282

8383
$app = new Application();
8484

85-
// List users
85+
// Listar usuários
8686
$app->get('/api/users', function($req, $res) {
8787
$users = $req->repository(User::class)->findAll();
8888
$res->json(['users' => $users]);
8989
});
9090

91-
// Create user
91+
// Criar usuário
9292
$app->post('/api/users', function($req, $res) {
9393
$user = $req->entity(User::class, $req->body);
9494
$req->em->persist($user);
9595
$res->status(201)->json(['user' => $user]);
9696
});
9797

98-
// Get user by ID
99-
$app->get('/api/users/:id', function($req, $res) {
100-
$user = $req->find(User::class, $req->params['id']);
101-
if (!$user) {
102-
return $res->status(404)->json(['error' => 'User not found']);
103-
}
104-
$res->json(['user' => $user]);
105-
});
106-
10798
$app->run();
10899
```
109100

0 commit comments

Comments
 (0)