Skip to content

Commit 1e14a75

Browse files
authored
Merge pull request #2 from CAFernandes/v1.0.2
V1.0.2
2 parents 58ce29e + ca6c974 commit 1e14a75

File tree

117 files changed

+7594
-2717
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+7594
-2717
lines changed

.env.example

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
1-
# Exemplo de configuração .env para express-php/cycle-orm-extension
1+
# Database Configuration
2+
DB_CONNECTION=sqlite
3+
DB_DATABASE=database/database.sqlite
24

3-
# Banco de Dados
4-
DB_CONNECTION=mysql
5-
DB_HOST=localhost
6-
DB_PORT=3306
7-
DB_DATABASE=express_api
8-
DB_USERNAME=root
9-
DB_PASSWORD=
5+
# MySQL Configuration (if DB_CONNECTION=mysql)
6+
# DB_HOST=127.0.0.1
7+
# DB_PORT=3306
8+
# DB_USERNAME=root
9+
# DB_PASSWORD=
1010

11-
# Configurações do Cycle ORM
12-
CYCLE_SCHEMA_CACHE=true
13-
CYCLE_AUTO_SYNC=false
14-
CYCLE_SCHEMA_STRICT=false
15-
16-
# Outras opções
17-
APP_ENV=local
11+
# Application Environment
12+
APP_ENV=development
1813
APP_DEBUG=true
19-
APP_URL=http://localhost
14+
15+
# Cycle ORM Debug Options
16+
CYCLE_LOG_QUERIES=false
17+
CYCLE_PROFILE_QUERIES=false

.github/workflows/ci.yml

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: CI
22

33
on:
44
push:
5-
branches: [ main, develop ]
5+
branches: [ main, develop, v1.0.2 ]
66
pull_request:
77
branches: [ main ]
88

@@ -12,39 +12,45 @@ jobs:
1212

1313
strategy:
1414
matrix:
15-
php-version: [8.1, 8.2, 8.3]
15+
php-version: [8.1, 8.2, 8.3, 8.4]
1616

1717
steps:
18-
- uses: actions/checkout@v3
18+
- uses: actions/checkout@v4
1919

2020
- name: Setup PHP
2121
uses: shivammathur/setup-php@v2
2222
with:
2323
php-version: ${{ matrix.php-version }}
24-
extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite
24+
extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, pdo_mysql
25+
coverage: xdebug
2526

2627
- name: Cache Composer packages
2728
id: composer-cache
2829
uses: actions/cache@v3
2930
with:
3031
path: vendor
31-
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
32+
key: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }}
3233
restore-keys: |
33-
${{ runner.os }}-php-
34+
${{ runner.os }}-php-${{ matrix.php-version }}-
3435
3536
- name: Install dependencies
36-
run: composer install --prefer-dist --no-progress
37+
run: composer install --prefer-dist --no-progress --no-interaction
3738

38-
- name: Run PHPStan
39-
run: vendor/bin/phpstan analyse --no-progress
39+
- name: Run PHPUnit Tests
40+
run: composer test
4041

41-
- name: Run PHP CS Fixer
42-
run: vendor/bin/php-cs-fixer fix --dry-run --diff
42+
- name: Run PHPStan Analysis
43+
run: composer phpstan
4344

44-
- name: Run PHPUnit
45-
run: vendor/bin/phpunit --coverage-clover=coverage.xml
45+
- name: Check PSR-12 Compliance
46+
run: composer cs:check
47+
48+
- name: Generate Coverage Report
49+
if: matrix.php-version == '8.4'
50+
run: composer test-coverage
4651

4752
- name: Upload coverage to Codecov
53+
if: matrix.php-version == '8.4'
4854
uses: codecov/codecov-action@v3
4955
with:
5056
file: ./coverage.xml

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,8 @@ Thumbs.db
3636

3737
# Composer
3838
composer.lock
39-
vendor/
39+
vendor/
40+
41+
#User
42+
CLAUDE.md
43+
.claude

CHANGELOG.md

Lines changed: 65 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,74 @@
1-
# CHANGELOG
1+
# Changelog
22

3-
## [1.0.1] - 2025-07-01
3+
Todas as mudanças notáveis deste projeto serão documentadas neste arquivo.
4+
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
49

510
### Adicionado
6-
- Padronização do nome do pacote para `cafernandes/express-php-cycle-orm-extension` em toda a documentação e exemplos.
7-
- Guia técnico e quick start centralizado em `docs/guia-tecnico-quickstart.md`.
8-
- Referências cruzadas entre os arquivos de documentação para facilitar navegação.
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
922

1023
### Corrigido
11-
- Ajustes de exemplos de instalação e uso rápido para refletir o nome correto do pacote.
12-
- Correções de instruções e comandos para integração Express-PHP + Cycle ORM.
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+
- **validateDatabaseConfig()** e **validateEntityConfig()**: Métodos stub não utilizados removidos do CycleServiceProvider
32+
33+
### Melhorias de Qualidade
34+
- **PSR-12**: Conformidade total validada com phpcs
35+
- **PHPStan**: Nível 9 sem erros ou avisos
36+
- **Testes**: 68 testes passando com sucesso
37+
- **Documentação**: Guias práticos e exemplos de uso real
1338

14-
---
39+
## [1.0.2] - 2025-01-04
40+
### Adicionado
41+
- **Sistema de Testes Completo**: 68 testes automatizados (Unit, Feature, Database)
42+
- **PHPStan Nível 9**: Zero erros de tipagem estática
43+
- **CycleRequest**: Classe de request estendida com métodos ORM integrados
44+
- **Repository Factory**: Sistema de cache inteligente para repositórios
45+
- **Sistema de Monitoramento**: MetricsCollector, PerformanceProfiler, QueryLogger
46+
- **Middlewares Avançados**: TransactionMiddleware e EntityValidationMiddleware
47+
48+
### Melhorado
49+
- **Type Safety**: Todas as classes agora são 100% tipadas
50+
- **Arquitetura**: Refatoração completa seguindo SOLID principles
51+
- **Documentação**: README atualizado com exemplos práticos
52+
- **Testes**: Cobertura completa das funcionalidades principais
53+
- **Performance**: Cache de repositórios e otimização de queries
54+
55+
### Corrigido
56+
- **PHPStan Issues**: Todos os 245 erros de tipagem foram corrigidos
57+
- **Test Infrastructure**: Base de testes robusta com SQLite in-memory
58+
- **Entity Creation**: Método `entity()` agora popula dados corretamente
59+
- **Schema Registration**: Entidades de teste registradas no ORM
1560

16-
## [1.0.0] - 2025-07-01
61+
### Técnico
62+
- **Testing**: Excludes complex integration tests by default (`@group integration`)
63+
- **CI/CD Ready**: Configuração preparada para integração contínua
64+
- **PSR-12**: Padrões de código seguidos rigorosamente
65+
- **Monitoring**: Sistema completo de métricas e profiling em produção
1766

67+
## [1.0.0] - 2025-07-04
1868
### Adicionado
19-
- Primeira versão estável da extensão Express-PHP Cycle ORM.
20-
- Integração automática do Cycle ORM ao Express-PHP via Service Provider.
21-
- Middlewares para transação, validação, health check e injeção de serviços.
22-
- Helpers para filtros, paginação, busca e ordenação.
23-
- CLI para geração de entidades, sync de schema, migrações e status.
24-
- Documentação completa com exemplos de CRUD, queries avançadas e melhores práticas.
69+
- Estrutura inicial da extensão Express PHP Cycle ORM
70+
- Integração com Cycle ORM
71+
- Comandos CLI: migrate, schema, status, entity
72+
- Health check para banco de dados
73+
- Suporte a middlewares customizados
74+
- Documentação técnica inicial

CONTRIBUTING.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Contribuindo com o Express PHP Cycle ORM Extension
2+
3+
Obrigado por considerar contribuir com este projeto!
4+
5+
## Como contribuir
6+
- Abra uma issue detalhando bugs, sugestões ou melhorias
7+
- Proponha pull requests com correções ou novas funcionalidades
8+
- Siga o guia de estilo e padrões definidos em `phpcs.xml` e `phpstan.neon`
9+
- Adicione testes para novas funcionalidades
10+
11+
## Extensões e Cobertura
12+
- Sugestões para novos middlewares, comandos ou integrações são bem-vindas
13+
- Ajude a melhorar a cobertura de testes
14+
15+
## Dúvidas?
16+
Abra uma issue ou entre em contato com os mantenedores.

0 commit comments

Comments
 (0)