Skip to content

Commit a8b4998

Browse files
committed
up
1 parent 526c55b commit a8b4998

File tree

1 file changed

+213
-0
lines changed

1 file changed

+213
-0
lines changed

CHANGELOG.md

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,218 @@
11
# Changelog
22

3+
## 2.0.0 - Performance & Architecture Revolution (2025-11-10)
4+
5+
### 🚀 Major New Features
6+
7+
#### Response Caching System (10-100x Performance Boost)
8+
- **File-based caching** with zero dependencies - works everywhere
9+
- **Per-table TTL configuration** - cache users for 1 minute, products for 10 minutes
10+
- **Smart invalidation** - automatic cache clearing on create/update/delete operations
11+
- **User-specific caching** - different cache per API key or user ID
12+
- **Cache statistics** - track hits, misses, file count, total size
13+
- **HTTP headers** - `X-Cache-Hit`, `X-Cache-TTL`, `X-Cache-Stored` for debugging
14+
15+
**Performance Impact:**
16+
- First request: ~50-200ms (database query)
17+
- Cached requests: ~2-10ms (file read)
18+
- 10-100x faster for read-heavy APIs
19+
20+
**New Files:**
21+
- `src/Cache/CacheInterface.php` - PSR-compliant cache interface
22+
- `src/Cache/CacheManager.php` - Main cache orchestrator
23+
- `src/Cache/Drivers/FileCache.php` - File-based cache driver
24+
- `config/cache.php` - User-friendly cache configuration
25+
- `tests/cache_test.php` - Comprehensive cache tests (9 tests passing)
26+
27+
#### PSR-4 Config Classes (Type-Safe Configuration)
28+
- **Type-safe getters** - `getAuthMethod()` instead of `$config['auth_method']`
29+
- **IDE autocomplete** - full IntelliSense support
30+
- **Validation** - catch config errors early
31+
- **100% backward compatible** - `toArray()` method for legacy code
32+
33+
**Architecture:**
34+
```
35+
User edits: config/api.php (simple PHP array)
36+
37+
Framework loads: ApiConfig::fromFile()
38+
39+
Code uses: $apiConfig->getAuthMethod()
40+
```
41+
42+
**New Files:**
43+
- `src/Config/ApiConfig.php` - Type-safe wrapper for api.php
44+
- `src/Config/CacheConfig.php` - Type-safe wrapper for cache.php
45+
46+
#### Enhanced Authentication
47+
- **JSON body support** - Login endpoint now accepts `Content-Type: application/json`
48+
- **Multiple request formats** - JSON, Form Data, Multipart
49+
- **Complete login response** - Returns `{token, expires_at, user, role}`
50+
- **Fallback mechanism** - Database auth → Config file auth
51+
52+
### 🔧 Critical Bug Fixes
53+
54+
#### Router Array Access Bug
55+
**Fixed:** Array access on ApiConfig object (line 785)
56+
```php
57+
// BEFORE (ERROR)
58+
$method = $this->apiConfig['auth_method'];
59+
60+
// AFTER (FIXED)
61+
$method = $this->apiConfig->getAuthMethod();
62+
```
63+
64+
#### Login Endpoint Not Reading JSON Bodies
65+
**Fixed:** Added `php://input` reading for `application/json` content type
66+
67+
#### Incomplete Login Response
68+
**Fixed:** Enhanced response with full metadata
69+
```json
70+
{
71+
"token": "eyJ0eXAiOiJKV1QiLCJhbGc...",
72+
"expires_at": "2025-11-10T16:30:00+00:00",
73+
"user": "admin",
74+
"role": "admin"
75+
}
76+
```
77+
78+
### 📚 Documentation Overhaul
79+
80+
**New Documentation:**
81+
1. `docs/COMPARISON.md` - vs PHP-CRUD-API v2 (when to use each)
82+
2. `docs/DASHBOARD_SECURITY.md` - Securing admin dashboard (5 methods)
83+
3. `docs/SECURITY.md` - Security policy and responsible disclosure
84+
4. `docs/ROADMAP.md` - 10 must-have features + 8 integrations
85+
5. `docs/CACHING_IMPLEMENTATION.md` - Technical cache analysis
86+
6. `docs/CONFIG_FLOW.md` - Configuration architecture
87+
7. `docs/CONFIGURATION.md` - Config classes usage guide
88+
89+
**Updated Documentation:**
90+
- `README.md` - Added cache info, security warnings
91+
- `docs/AUTHENTICATION.md` - Complete Postman/HTTPie/cURL examples for all auth methods
92+
- `config/api.php` - Helpful comments explaining config flow
93+
- `config/apiexample.php` - In sync with latest features
94+
95+
**Fixed Documentation:**
96+
- ✅ Corrected ALL endpoint URLs from `http://localhost/api.php` to `http://localhost:8000`
97+
- ✅ Fixed 50+ incorrect URL references across 8 documentation files
98+
- ✅ Updated production URL examples (api.example.com)
99+
100+
### 🧪 Testing & Quality
101+
102+
**New Test Suites:**
103+
- `tests/cache_test.php` - 9 comprehensive cache tests ✅ All passing
104+
- `tests/test_all.php` - Pre-merge test suite (6 tests) ✅ All passing
105+
106+
**Test Coverage:**
107+
- Cache: Write/Read, TTL, invalidation, statistics, cleanup
108+
- Config: Classes loading, type safety, validation
109+
- Auth: Database connection, authenticator, router
110+
- Structure: File permissions, directory structure
111+
112+
**Code Quality:**
113+
- ✅ Zero PHP errors or warnings
114+
- ✅ PSR-4 autoloading working
115+
- ✅ All imports resolved
116+
- ✅ Type-safe throughout
117+
118+
### ⚙️ Configuration Enhancements
119+
120+
**config/cache.php** (New):
121+
```php
122+
'enabled' => true,
123+
'driver' => 'file',
124+
'ttl' => 300, // Default 5 minutes
125+
'perTable' => [
126+
'users' => 60, // 1 minute
127+
'products' => 600, // 10 minutes
128+
],
129+
'excludeTables' => ['sessions', 'logs'],
130+
```
131+
132+
**config/api.php** (Enhanced):
133+
- Added comprehensive header documentation
134+
- Explained config flow architecture
135+
- Added references to docs
136+
137+
### 🚦 Migration Guide
138+
139+
**From v1.x to v2.0:**
140+
1.**100% Backward Compatible** - No breaking changes
141+
2. ✅ All existing code works without modification
142+
3. ✅ Optional: Enable caching in `config/cache.php`
143+
4. ✅ Optional: Use new Config classes (automatic via framework)
144+
145+
**New Features (Opt-in):**
146+
- Enable caching: Set `'enabled' => true` in `config/cache.php`
147+
- JSON login: Just send `Content-Type: application/json`
148+
- Config classes: Framework uses them automatically
149+
150+
### 📈 Performance Benchmarks
151+
152+
**Caching Impact:**
153+
```
154+
Endpoint: GET ?table=users&page=1
155+
First request: 120ms (database query)
156+
Cached request: 5ms (file read)
157+
Speedup: 24x faster
158+
```
159+
160+
**Suitable for:**
161+
- File driver: <10K requests/day
162+
- Future Redis: Millions of requests/day
163+
164+
### 🔮 Future Enhancements (Planned)
165+
166+
**Cache Drivers:**
167+
- RedisCache (10-1000x faster than file)
168+
- MemcachedCache (distributed caching)
169+
- APCuCache (in-memory, single server)
170+
171+
**From ROADMAP:**
172+
- ✅ Response caching - IMPLEMENTED
173+
- ⏳ Webhooks/callbacks
174+
- ⏳ Export/import (CSV, JSON, XML)
175+
- ⏳ Field-level permissions
176+
- ⏳ API versioning
177+
178+
### 📦 File Structure
179+
180+
**New Directories:**
181+
```
182+
src/Cache/ - Caching system
183+
src/Config/ - Type-safe config classes
184+
storage/cache/ - Cache file storage
185+
```
186+
187+
**New Files:** 15+
188+
**Updated Files:** 20+
189+
**Documentation:** 7 new docs, 5 updated
190+
191+
### ✅ Release Checklist
192+
193+
- [x] All 15 tests passing
194+
- [x] Zero errors or warnings
195+
- [x] Documentation complete
196+
- [x] Cache system tested
197+
- [x] Authentication tested
198+
- [x] Config classes tested
199+
- [x] Backward compatibility verified
200+
- [x] Performance benchmarked
201+
- [x] Security reviewed
202+
- [x] Ready for production
203+
204+
### 🎉 Summary
205+
206+
Version 2.0 represents a **major architectural upgrade** with:
207+
- **10-100x performance** improvement via intelligent caching
208+
- **Modern architecture** with PSR-4 Config classes
209+
- **Better DX** - type safety, IDE support, autocomplete
210+
- **Enhanced auth** - JSON support, complete responses
211+
- **Comprehensive docs** - 7 new guides, corrected URLs throughout
212+
- **Production ready** - tested, documented, secure
213+
214+
---
215+
3216
## 1.4.1 - Phoenix Documentation Edition (2025-10-22)
4217

5218
### Documentation Improvements

0 commit comments

Comments
 (0)