Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
172 changes: 149 additions & 23 deletions CHANGELOG.md

Large diffs are not rendered by default.

62 changes: 31 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
- **🛡️ Segurança Integrada**: Middlewares prontos para CSRF, XSS, JWT - protótipos seguros desde o início.
- **🔧 Extensibilidade Simples**: Sistema de plugins e providers para expandir funcionalidades conforme necessário.
- **📊 Performance Adequada**: Throughput de 44,092 ops/sec, footprint de 1.61MB - suficiente para demonstrações.
- **🎨 v1.2.0**: Simplicity Edition - Arquitetura limpa, zero complexidade desnecessária, foco em simplicidade.
- **🎨 v2.0.0**: Legacy Cleanup Edition - 18% code reduction, modern namespaces, routing externalized, zero deprecated code.

---

Expand All @@ -34,15 +34,17 @@
- 🔐 **Autenticação Multi-método**
- 🛡️ **Segurança Avançada**
- 📡 **Streaming & SSE**
- 📚 **OpenAPI/Swagger Automático** (v1.2.0+ Middleware)
- 📚 **OpenAPI/Swagger Automático** (v2.0.0 Middleware)
- 🔄 **PSR-7 Híbrido**
- ♻️ **Object Pooling**
- 🚀 **JSON Optimization** (v1.2.0 Intelligent)
- 🎯 **Array Callables** (v1.2.0 Native)
- 🔍 **Enhanced Error Diagnostics** (v1.2.0)
- 🚀 **JSON Optimization** (Intelligent Caching)
- 🎯 **Array Callables** (Native Support)
- 🔍 **Enhanced Error Diagnostics**
- ⚡ **Performance Extrema**
- 🧪 **Qualidade e Testes**
- 🎯 **Simplicidade sobre Otimização** (v1.2.0)
- 🎯 **Simplicidade sobre Otimização**
- 🧹 **v2.0.0 Legacy Cleanup** (18% code reduction)
- 🔌 **Modular Routing** (External package, pluggable in v2.1.0)

---

Expand Down Expand Up @@ -116,7 +118,7 @@ $app->get('/posts/:year<\d{4}>/:month<\d{2}>/:slug<slug>', function($req, $res)
$app->run();
```

### 🛣️ Sintaxes de Roteamento Suportadas (v1.2.0)
### 🛣️ Sintaxes de Roteamento Suportadas

O PivotPHP oferece suporte robusto para múltiplas sintaxes de roteamento:

Expand Down Expand Up @@ -160,37 +162,37 @@ $app->get('/users/:id', [Controller::class, 'show']);

namespace App\Controllers;

class UserController
class UserController
{
// ✅ Métodos devem ser PÚBLICOS
public function index($req, $res)
public function index($req, $res)
{
$users = User::paginate($req->query('limit', 10));
return $res->json(['users' => $users]);
}
public function show($req, $res)

public function show($req, $res)
{
$id = $req->param('id');
$user = User::find($id);

if (!$user) {
return $res->status(404)->json(['error' => 'User not found']);
}

return $res->json(['user' => $user]);
}
public function store($req, $res)

public function store($req, $res)
{
$data = $req->body();
$user = User::create($data);

return $res->status(201)->json(['user' => $user]);
}
}

// ✅ Registrar rotas com array callable v1.2.0
// ✅ Registrar rotas com array callable
$app->get('/users', [UserController::class, 'index']);
$app->get('/users/:id<\d+>', [UserController::class, 'show']); // Apenas números
$app->post('/users', [UserController::class, 'store']);
Expand All @@ -200,10 +202,10 @@ $app->put('/users/:id', [UserController::class, 'update'])
->middleware($authMiddleware);
```

#### ⚡ Validação Automática (v1.2.0)
#### ⚡ Validação Automática

```php
// O PivotPHP v1.2.0 valida automaticamente array callables:
// O PivotPHP valida automaticamente array callables:

// ✅ Método público - ACEITO
class PublicController {
Expand Down Expand Up @@ -265,17 +267,17 @@ $response = OptimizedHttpFactory::createResponse();
- ✅ **API Express.js** mantida para produtividade
- ✅ **Zero breaking changes** - código existente funciona sem alterações

### 🚀 JSON Optimization (v1.2.0 Intelligent System)
### 🚀 JSON Optimization (Intelligent System)

O PivotPHP v1.2.0 mantém o **threshold inteligente de 256 bytes** no sistema de otimização JSON, eliminando overhead para dados pequenos:
O PivotPHP mantém o **threshold inteligente de 256 bytes** no sistema de otimização JSON, eliminando overhead para dados pequenos:

#### ⚡ Sistema Inteligente Automático

```php
// ✅ OTIMIZAÇÃO AUTOMÁTICA - Zero configuração necessária
$app->get('/api/users', function($req, $res) {
$users = User::all();

// Sistema decide automaticamente:
// • Poucos usuários (<256 bytes): json_encode() direto
// • Muitos usuários (≥256 bytes): pooling automático
Expand All @@ -288,10 +290,10 @@ $app->get('/api/users', function($req, $res) {
```php
// Dados pequenos (<256 bytes) - json_encode() direto
$smallData = ['status' => 'ok', 'count' => 42];
$json = JsonBufferPool::encodeWithPool($smallData);
$json = JsonBufferPool::encodeWithPool($smallData);
// Performance: 500K+ ops/sec (sem overhead)

// Dados médios (256 bytes - 10KB) - pooling automático
// Dados médios (256 bytes - 10KB) - pooling automático
$mediumData = User::paginate(20);
$json = JsonBufferPool::encodeWithPool($mediumData);
// Performance: 119K+ ops/sec (15-30% ganho)
Expand Down Expand Up @@ -327,7 +329,7 @@ echo "Eficiência: {$stats['efficiency']}%\n";
echo "Operações: {$stats['total_operations']}\n";
```

#### ✨ Mantido v1.2.0
#### ✨ Mantido v2.0.0

- ✅ **Threshold Inteligente** - Elimina overhead para dados <256 bytes
- ✅ **Detecção Automática** - Sistema decide quando usar pooling
Expand All @@ -336,7 +338,7 @@ echo "Operações: {$stats['total_operations']}\n";
- ✅ **Monitoramento Integrado** - Estatísticas em tempo real
- ✅ **Compatibilidade Total** - Drop-in replacement transparente

### 🔍 Enhanced Error Diagnostics (v1.2.0)
### 🔍 Enhanced Error Diagnostics

PivotPHP v1.2.0 mantém **ContextualException** para diagnósticos avançados de erros:

Expand Down Expand Up @@ -367,7 +369,7 @@ try {
```php
// Automaticamente detectadas pelo sistema
ContextualException::CATEGORY_ROUTING // Problemas de roteamento
ContextualException::CATEGORY_PARAMETER // Validação de parâmetros
ContextualException::CATEGORY_PARAMETER // Validação de parâmetros
ContextualException::CATEGORY_VALIDATION // Validação de dados
ContextualException::CATEGORY_MIDDLEWARE // Problemas de middleware
ContextualException::CATEGORY_HTTP // Erros HTTP
Expand Down Expand Up @@ -402,9 +404,9 @@ ContextualException::configure([
- ✅ **Segurança por Ambiente** - Detalhes reduzidos em produção
- ✅ **Logging Integrado** - Registro automático para análise posterior

📖 **Documentação completa:**
📖 **Documentação completa:**
- [Array Callable Guide](docs/technical/routing/ARRAY_CALLABLE_GUIDE.md)
- [JsonBufferPool Optimization Guide](docs/technical/json/BUFFER_POOL_OPTIMIZATION.md)
- [JsonBufferPool Optimization Guide](docs/technical/json/BUFFER_POOL_OPTIMIZATION.md)
- [Enhanced Error Diagnostics](docs/technical/error-handling/CONTEXTUAL_EXCEPTION_GUIDE.md)

### 📖 Documentação OpenAPI/Swagger Automática (v1.2.0+)
Expand Down Expand Up @@ -735,9 +737,7 @@ Se você precisa de um framework com equipe dedicada e suporte empresarial, cons

Junte-se à nossa comunidade crescente de desenvolvedores:

- **Discord**: [Entre no nosso servidor](https://discord.gg/DMtxsP7z) - Obtenha ajuda, compartilhe ideias e conecte-se com outros desenvolvedores
- **GitHub Discussions**: [Inicie uma discussão](https://github.com/PivotPHP/pivotphp-core/discussions) - Compartilhe feedback e ideias
- **Twitter**: [@PivotPHP](https://twitter.com/pivotphp) - Siga para atualizações e anúncios

## 🤝 Como Contribuir

Expand Down
13 changes: 6 additions & 7 deletions RELEASE_v1.2.0.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# 🚀 PivotPHP Core v1.2.0 - Simplicity Edition
## "Simplicidade sobre Otimização Prematura"

**Data de Lançamento**: 21 de Julho de 2025
**Versão**: 1.2.0 (Simplicity Edition)
**Compatibilidade**: PHP 8.1+ | 100% Backward Compatible
**Data de Lançamento**: 21 de Julho de 2025
**Versão**: 1.2.0 (Simplicity Edition)
**Compatibilidade**: PHP 8.1+ | 100% Backward Compatible
**Status**: Estável para uso em produção

---
Expand Down Expand Up @@ -35,7 +35,7 @@ use PivotPHP\Core\Middleware\Http\ApiDocumentationMiddleware;
// Ativar documentação automática em 3 linhas
$app->use(new ApiDocumentationMiddleware([
'docs_path' => '/docs', // JSON OpenAPI 3.0.0
'swagger_path' => '/swagger', // Interface Swagger UI
'swagger_path' => '/swagger', // Interface Swagger UI
'base_url' => 'http://localhost:8080'
]));

Expand Down Expand Up @@ -292,13 +292,12 @@ A versão 1.2.0 "Simplicity Edition" marca um momento de maturidade do PivotPHP
## 📞 **Suporte e Comunidade**

- **📚 Documentação**: [GitHub Wiki](https://github.com/PivotPHP/pivotphp-core/wiki)
- **💬 Discord**: [Comunidade PivotPHP](https://discord.gg/DMtxsP7z)
- **🐛 Issues**: [GitHub Issues](https://github.com/PivotPHP/pivotphp-core/issues)
- **📖 Examples**: [Diretório examples/](examples/) com 11 exemplos práticos
- **🎓 Tutoriais**: [docs/](docs/) com guias detalhados

---

**PivotPHP v1.2.0 - Onde simplicidade encontra performance. Onde produtividade encontra qualidade. Onde desenvolvedores encontram felicidade.**
**PivotPHP v1.2.0 - Onde simplicidade encontra performance. Onde produtividade encontra qualidade. Onde desenvolvedores encontram felicidade.**

🚀 **Happy Coding!**
🚀 **Happy Coding!**
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.2.0
2.0.0
13 changes: 9 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "pivotphp/core",
"description": "PivotPHP Core v1.2.0 - Simplified high-performance microframework with automatic OpenAPI/Swagger documentation, PSR-7 hybrid support, and Express.js-inspired API",
"description": "PivotPHP Core v2.0.0 - Modular high-performance microframework with pluggable routing system, automatic OpenAPI/Swagger documentation, PSR-7 hybrid support, and Express.js-inspired API",
"type": "library",
"keywords": [
"php",
Expand Down Expand Up @@ -43,11 +43,14 @@
"psr/container": "^2.0",
"psr/event-dispatcher": "^1.0",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.1",
"psr/http-message": "^1.1|^2.0",
"psr/http-server-handler": "^1.0",
"psr/http-server-middleware": "^1.0",
"psr/log": "^3.0",
"react/http": "^1.9"
"psr/cache": "^2.0|^3.0",
"psr/simple-cache": "^2.0|^3.0",
"react/http": "^1.9",
"pivotphp/core-routing": "^1.0"
},
"require-dev": {
"phpunit/phpunit": "^9.0|^10.0",
Expand All @@ -62,7 +65,9 @@
"ext-openssl": "Required for secure token generation",
"ext-mbstring": "Required for proper string handling",
"ext-fileinfo": "Required for file upload validation",
"ext-apcu": "For caching middleware and performance optimization"
"ext-apcu": "For caching middleware and performance optimization",
"pivotphp/cycle-orm": "Database ORM integration for PivotPHP",
"pivotphp/reactphp": "Async runtime extension for continuous execution"
},
"autoload": {
"psr-4": {
Expand Down
31 changes: 15 additions & 16 deletions docs/API_REFERENCE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# PivotPHP Core - API Reference

**Version:** 1.2.0
**Last Updated:** July 2025
**Version:** 1.2.0
**Last Updated:** July 2025

> ⚠️ **Nota**: Este projeto é mantido por apenas uma pessoa e pode não receber atualizações constantemente. Ideal para provas de conceito, protótipos e estudos, mas não recomendado para aplicações críticas de produção.

Expand Down Expand Up @@ -118,7 +118,7 @@ $app->get('/protected', $authMiddleware, function ($req, $res) {

#### Multiple Middleware
```php
$app->post('/api/data',
$app->post('/api/data',
$corsMiddleware,
$authMiddleware,
$validationMiddleware,
Expand Down Expand Up @@ -273,7 +273,7 @@ $app->get('/users', 'getUsersHandler');
#### String Format (Does NOT work)
```php
// This will cause a TypeError!
$app->get('/users', 'UserController@index');
$app->get('/users', 'UserController@index');
```

**Use this instead:**
Expand All @@ -299,7 +299,7 @@ PerformanceMode::disable();

**Performance Profiles:**
- `PROFILE_DEVELOPMENT` - Development optimization
- `PROFILE_PRODUCTION` - Production optimization
- `PROFILE_PRODUCTION` - Production optimization
- `PROFILE_TEST` - Test optimization

### JSON Optimization (v1.1.1+)
Expand All @@ -321,7 +321,7 @@ $stats = JsonBufferPool::getStatistics();

**Automatic Optimization:**
- Arrays with 10+ elements use pooling
- Objects with 5+ properties use pooling
- Objects with 5+ properties use pooling
- Strings >1KB use pooling
- Smaller data uses traditional `json_encode()`

Expand All @@ -331,11 +331,11 @@ $stats = JsonBufferPool::getStatistics();
```php
$middleware = function ($req, $res, $next) {
// Pre-processing

$response = $next($req, $res); // Continue to next middleware

// Post-processing

return $response;
};
```
Expand All @@ -346,7 +346,7 @@ $authMiddleware = function ($req, $res, $next) {
if (!$req->header('Authorization')) {
return $res->status(401)->json(['error' => 'Unauthorized']);
}

return $next($req, $res);
};
```
Expand All @@ -356,13 +356,13 @@ $authMiddleware = function ($req, $res, $next) {
$enrichMiddleware = function ($req, $res, $next) {
// Add data to request
$req->startTime = microtime(true);

$response = $next($req, $res);

// Add headers to response
$duration = microtime(true) - $req->startTime;
$res->header('X-Response-Time', $duration . 'ms');

return $response;
};
```
Expand Down Expand Up @@ -460,7 +460,7 @@ Application::VERSION // Current version string

Complete working examples are available in the `/examples` directory:
- **01-basics** - Hello World, CRUD, Request/Response, JSON API
- **02-routing** - Regex, Parameters, Groups, Constraints
- **02-routing** - Regex, Parameters, Groups, Constraints
- **03-middleware** - Custom, Stack, Auth, CORS
- **04-api** - RESTful API with pagination and validation
- **05-performance** - High-performance mode demonstrations
Expand Down Expand Up @@ -488,10 +488,9 @@ Complete working examples are available in the `/examples` directory:

## Community & Support

- **Discord**: https://discord.gg/DMtxsP7z
- **GitHub**: https://github.com/PivotPHP/pivotphp-core
- **Issues**: https://github.com/PivotPHP/pivotphp-core/issues
- **Examples**: Ready-to-run examples in `/examples` directory

---
**PivotPHP Core v1.1.3-dev** - Express.js for PHP 🐘⚡
**PivotPHP Core v1.1.3-dev** - Express.js for PHP 🐘⚡
Loading
Loading