Skip to content

Commit 3203d53

Browse files
committed
feat: Atualiza o changelog e adiciona nova documentação de integração e referência rápida
1 parent 66a2a69 commit 3203d53

File tree

5 files changed

+924
-52
lines changed

5 files changed

+924
-52
lines changed

CHANGELOG.md

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,40 @@
22

33
Todas as mudanças notáveis deste projeto serão documentadas neste arquivo.
44

5-
## [1.0.2] - 2025-07-04
5+
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/),
6+
e este projeto adere ao [Semantic Versioning](https://semver.org/lang/pt-BR/).
7+
8+
## [1.1.0] - 2025-01-06
9+
10+
### Adicionado
11+
- **Guia de Integração Completo**: Nova documentação detalhada em `docs/integration-guide.md`
12+
- **Compatibilidade PHP 8.4**: Documentação sobre avisos de depreciação e soluções
13+
- **Badge PSR-12**: Indicador de conformidade com padrões no README
14+
- **Exemplos CRUD**: Implementação completa de API REST com todos os verbos HTTP
15+
- **Troubleshooting**: Seção dedicada para resolução de problemas comuns
16+
17+
### Alterado
18+
- **CycleMiddleware**: Agora cria corretamente o wrapper CycleRequest antes de passar para o próximo handler
19+
- **QueryLogger**: Método `clear()` renomeado para `clearLogs()` (mantendo alias para retrocompatibilidade)
20+
- **Documentação**: README atualizado com instruções claras sobre `chdir()` e estrutura de diretórios
21+
- **GitHub Actions**: Workflow CI atualizado para refletir comandos do ambiente local
22+
23+
### Corrigido
24+
- **CycleORMException**: Removido 4º parâmetro do construtor (context array)
25+
- **Type Checking**: Alterado de `instanceof ORM` para `instanceof ORMInterface` para maior flexibilidade
26+
- **Table Annotations**: Corrigida sintaxe de anotações nas entidades de teste
27+
- **CycleRequest**: Adicionados métodos `getAttribute()` e `setAttribute()` com tipos corretos
28+
29+
### Removido
30+
- **validateEntity()**: Método stub não utilizado removido do CycleRequest
31+
32+
### Melhorias de Qualidade
33+
- **PSR-12**: Conformidade total validada com phpcs
34+
- **PHPStan**: Nível 9 sem erros ou avisos
35+
- **Testes**: 68 testes passando com sucesso
36+
- **Documentação**: Guias práticos e exemplos de uso real
37+
38+
## [1.0.2] - 2025-01-04
639
### Adicionado
740
- **Sistema de Testes Completo**: 68 testes automatizados (Unit, Feature, Database)
841
- **PHPStan Nível 9**: Zero erros de tipagem estática

README.md

Lines changed: 65 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,21 @@
33
[![PHPStan Level 9](https://img.shields.io/badge/PHPStan-level%209-brightgreen.svg)](https://phpstan.org/)
44
[![PHP 8.1+](https://img.shields.io/badge/PHP-8.1%2B-blue.svg)](https://php.net)
55
[![Tests](https://img.shields.io/badge/tests-68%20passing-brightgreen.svg)](https://phpunit.de/)
6+
[![PSR-12](https://img.shields.io/badge/PSR-12-blue.svg)](https://www.php-fig.org/psr/psr-12/)
67
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
78

8-
Uma extensão robusta e bem testada que integra o Cycle ORM ao framework Express PHP, oferecendo recursos avançados de ORM com arquitetura limpa e moderna.
9+
Uma extensão robusta e bem testada que integra o Cycle ORM ao framework Express PHP, oferecendo recursos avançados de ORM com arquitetura limpa e moderna. Fornece integração transparente através do CycleRequest, permitindo acesso direto aos serviços ORM em suas rotas.
910

1011
## 🚀 Características
1112

1213
- **Integração Completa**: Perfeita integração com Express PHP através de Service Provider
13-
- **Type Safety**: Código 100% tipado com PHPStan nível 9
14+
- **CycleRequest**: Wrapper inteligente que adiciona métodos ORM ao Request padrão
15+
- **Type Safety**: Código 100% tipado com PHPStan nível 9 e PSR-12
1416
- **Bem Testado**: 68 testes automatizados cobrindo todas as funcionalidades
1517
- **Repositórios Customizados**: Factory pattern para repositórios com cache inteligente
16-
- **Middlewares Prontos**: Transaction e Entity Validation middlewares
17-
- **Monitoramento**: Sistema completo de métricas e profiling
18-
- **CycleRequest**: Extensão intuitiva do Request com métodos ORM
18+
- **Middlewares Prontos**: CycleMiddleware, Transaction e Entity Validation
19+
- **Monitoramento**: Sistema completo de métricas, profiling e logging de queries
20+
- **Compatibilidade**: PHP 8.1+ (recomendado PHP 8.3 para evitar avisos)
1921
- **CLI Commands**: Comandos para migração e gerenciamento do schema
2022

2123
## 📦 Instalação
@@ -26,20 +28,32 @@ composer require cafernandes/express-php-cycle-orm-extension
2628

2729
## 🎯 Uso Rápido
2830

29-
### 1. Registrar o Service Provider
31+
### 1. Configuração Inicial
3032

3133
```php
32-
// bootstrap/app.php
34+
// public/index.php
3335
use CAFernandes\ExpressPHP\CycleORM\CycleServiceProvider;
36+
use CAFernandes\ExpressPHP\CycleORM\Middleware\CycleMiddleware;
3437

35-
// Configure as variáveis de ambiente antes do registro
38+
// IMPORTANTE: Define o diretório de trabalho
39+
chdir(dirname(__DIR__));
40+
41+
// Configure as variáveis de ambiente
3642
$_ENV['DB_CONNECTION'] = 'sqlite';
37-
$_ENV['DB_DATABASE'] = __DIR__ . '/database/database.sqlite';
43+
$_ENV['DB_DATABASE'] = __DIR__ . '/../database/database.sqlite';
3844

3945
// Registre o provider
4046
$app->register(new CycleServiceProvider($app));
47+
48+
// Adicione o CycleMiddleware para usar CycleRequest
49+
$app->use(new CycleMiddleware($app));
4150
```
4251

52+
### ⚠️ Importante
53+
- Sempre defina o diretório de trabalho com `chdir()`
54+
- Crie o diretório `app/Entities` mesmo se não usar entidades anotadas
55+
- Use PHP 8.1 ou 8.3 para evitar avisos de depreciação do Spiral Core
56+
4357
### 2. Configurar Variáveis de Ambiente
4458

4559
```env
@@ -56,29 +70,39 @@ DB_USERNAME=your_username
5670
DB_PASSWORD=your_password
5771
```
5872

59-
### 3. Uso Básico - Acesso Direto ao Database
73+
### 3. Uso com CycleRequest (Recomendado)
74+
75+
Com o CycleMiddleware ativo, todas as rotas recebem um CycleRequest com métodos ORM:
6076

6177
```php
62-
// Acesso direto para queries simples
63-
$app->get('/api/users', function ($req, $res) use ($app) {
64-
$database = $app->make('cycle.database');
65-
$users = $database->database()->query('SELECT * FROM users')->fetchAll();
78+
// Listar usuários usando CycleRequest
79+
$app->get('/api/users', function ($req, $res) {
80+
// $req é agora um CycleRequest
81+
$db = $req->getContainer()->get('cycle.database');
82+
$users = $db->database()->query('SELECT * FROM users')->fetchAll();
6683

67-
return $res->json(['data' => $users]);
84+
return $res->json([
85+
'data' => $users,
86+
'request_type' => get_class($req) // CAFernandes\ExpressPHP\CycleORM\Http\CycleRequest
87+
]);
6888
});
6989

70-
// Inserção com query builder
71-
$app->post('/api/users', function ($req, $res) use ($app) {
72-
$database = $app->make('cycle.database');
73-
$data = $req->getParsedBody();
90+
// Métodos disponíveis no CycleRequest
91+
$app->get('/api/example', function ($req, $res) {
92+
// Repositório para entidade
93+
$userRepo = $req->repository(User::class);
94+
95+
// Criar nova entidade
96+
$user = $req->entity(User::class, ['name' => 'John']);
97+
98+
// Paginação
99+
$paginated = $req->paginate(User::class, 20, 1);
74100

75-
$database->database()->insert('users')->values([
76-
'name' => $data['name'],
77-
'email' => $data['email'],
78-
'created_at' => date('Y-m-d H:i:s')
79-
])->run();
101+
// Propriedades ORM disponíveis
102+
$orm = $req->orm; // Instância do ORM
103+
$em = $req->em; // Entity Manager
80104

81-
return $res->json(['message' => 'User created']);
105+
return $res->json(['message' => 'CycleRequest features']);
82106
});
83107
```
84108

@@ -145,22 +169,25 @@ class UserController
145169
## 🧪 Executar Testes
146170

147171
```bash
148-
# Todos os testes (exceto integração complexa)
149-
vendor/bin/phpunit
172+
# Todos os testes
173+
composer test
150174

151-
# Apenas testes unitários
152-
vendor/bin/phpunit tests/Unit/
175+
# Com relatório de cobertura
176+
composer test-coverage
153177

154-
# Incluir testes de integração
155-
vendor/bin/phpunit --group integration
178+
# Verificar qualidade do código
179+
composer phpstan # PHPStan nível 9
180+
composer cs:check # PSR-12 compliance
181+
composer cs:fix # Corrigir PSR-12
156182
```
157183

158184
## 📈 Qualidade do Código
159185

160-
- **PHPStan Nível 9**: Zero erros de tipagem
161-
- **PSR-12**: Padrões de código seguidos
162-
- **100% Testado**: Cobertura completa das funcionalidades principais
163-
- **Type Safety**: Interfaces bem definidas
186+
- **PHPStan Nível 9**: Zero erros de tipagem em análise estática
187+
- **PSR-12**: Conformidade total com padrões de código
188+
- **68 Testes**: Cobertura completa com PHPUnit
189+
- **Type Safety**: Interfaces e tipos bem definidos
190+
- **CI/CD**: GitHub Actions para testes automatizados
164191

165192
## 🔧 Funcionalidades Avançadas
166193

@@ -293,11 +320,12 @@ A extensão suporta diferentes níveis de complexidade:
293320

294321
## 📚 Documentação Completa
295322

323+
- [Guia de Integração Completo](docs/integration-guide.md) 🆕
296324
- [Guia Completo - Do Básico ao Avançado](docs/guia-completo.md)
297325
- [Documentação Principal](docs/index.md)
326+
- [Resolução de Problemas](docs/integration-guide.md#resolução-de-problemas)
327+
- [Exemplos Práticos](docs/integration-guide.md#exemplos-práticos)
298328
- [Guia de Contribuição](CONTRIBUTING.md)
299-
- [Arquitetura Técnica](docs/techinical/)
300-
- [Exemplos de Implementação](docs/implementions/)
301329

302330
## 🤝 Contribuição
303331

docs/index.md

Lines changed: 48 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,50 @@
11
# Documentação Express PHP Cycle ORM Extension
22

3-
## Mapa da Documentação
4-
5-
- [Guia de Implementação](./implementions/usage_basic.md)
6-
- [Guia de Middleware](./implementions/usage_with_middleware.md)
7-
- [Guia de Middleware Customizado](./implementions/usage_with_custom_middleware.md)
8-
- [Técnico: Provider](./techinical/provider.md)
9-
- [Técnico: Repository](./techinical/repository.md)
10-
- [Técnico: Commands](./techinical/commands/)
11-
- [Técnico: Exceptions](./techinical/exceptions/)
12-
- [Técnico: Health](./techinical/heath/)
13-
- [Técnico: HTTP](./techinical/http/)
14-
- [Técnico: Middleware](./techinical/middlware/)
15-
- [Técnico: Monitoring](./techinical/monitoring/)
16-
- [Contribuindo](../contributing/)
3+
## 🚀 Início Rápido
4+
- [**Guia de Integração Completo**](./integration-guide.md) 🆕 - Passo a passo detalhado
5+
- [**Referência Rápida**](./quick-reference.md) 🆕 - Comandos e exemplos práticos
6+
- [Guia Completo](./guia-completo.md) - Do básico ao avançado
7+
8+
## 📚 Guias de Implementação
9+
- [Implementação Básica](./implementions/usage_basic.md)
10+
- [Implementação com Middleware](./implementions/usage_with_middleware.md)
11+
- [Middleware Customizado](./implementions/usage_with_custom_middleware.md)
12+
- [Padrões Valida Conceito](./examples/valida-conceito-patterns.md)
13+
14+
## 🔧 Documentação Técnica
15+
16+
### Core Components
17+
- [Service Provider](./techinical/provider.md) - Arquitetura e registro de serviços
18+
- [Repository Factory](./techinical/repository.md) - Sistema de repositórios
19+
- [CycleRequest](./techinical/http/cycle_request.md) - Request estendido com ORM
20+
21+
### Middleware
22+
- [CycleMiddleware](./techinical/middlware/cycle_middleware.md) - Integração principal
23+
- [TransactionMiddleware](./techinical/middlware/transaction_middleware.md) - Transações automáticas
24+
- [EntityValidationMiddleware](./techinical/middlware/entity_validation_middleware.md) - Validação de entidades
25+
26+
### Comandos CLI
27+
- [Schema Command](./techinical/commands/schema_command.md) - Sincronização de schema
28+
- [Migrate Command](./techinical/commands/migrate_command.md) - Execução de migrações
29+
- [Status Command](./techinical/commands/status_command.md) - Status do banco
30+
- [Entity Command](./techinical/commands/entity_command.md) - Gerenciamento de entidades
31+
32+
### Monitoramento e Health
33+
- [Health Check](./techinical/heath/cycle_health_check.md) - Verificação de saúde
34+
- [Query Logger](./techinical/monitoring/query_logger.md) - Log de queries SQL
35+
- [Performance Profiler](./techinical/monitoring/performance_profiler.md) - Profiling de performance
36+
- [Metrics Collector](./techinical/monitoring/metrics_collector.md) - Coleta de métricas
37+
38+
### Exceptions
39+
- [Exception Handling](./techinical/exceptions/exception_handling.md) - Tratamento de erros
40+
- [CycleORMException](./techinical/exceptions/cycle_orm_exception.md) - Exceções do ORM
41+
- [EntityNotFoundException](./techinical/exceptions/entity_not_found_exception.md) - Entidade não encontrada
42+
43+
## 🤝 Contribuindo
44+
- [Guia de Contribuição](./contributing/README.md)
45+
- [Padrões de Código](../CONTRIBUTING.md)
46+
47+
## 📋 Recursos Adicionais
48+
- [Changelog](../CHANGELOG.md) - Histórico de mudanças
49+
- [Exemplos](../examples/) - Código de exemplo
50+
- [Testes](../tests/README.md) - Informações sobre testes

0 commit comments

Comments
 (0)