All notable changes to this project will be documented in this file.
- phpMyAdmin Integration - Web-based database management interface
- Automatic phpMyAdmin service in Docker Compose
- Pre-configured connection to project database
- Access via http://localhost:8081
- Secure authentication with MySQL credentials
- Docker Configuration - Enhanced containerized deployment
- Fixed environment variable loading in Config class
- Improved docker-entrypoint.sh for reliable startup
- Better database connection handling in containers
- Optimized migration execution during container startup
- Environment Configuration - Config class now properly reads Docker environment variables
- Docker Entrypoint - Changed from 'fresh' to 'migrate' to avoid foreign key constraint issues
- Database Connection - Resolved connection issues in Docker containers
- App Service - PHP 8.1 Apache container on port 8000
- Database Service - MySQL 8.0 container on port 3307
- phpMyAdmin Service - Web interface on port 8081
- Queue System - Background job processing with multiple drivers
- Database and Redis queue drivers
- Email queue processing with retry logic
- File processing jobs (resize, compress, convert)
- Queue worker with CLI commands
- Job retry and failure handling
- Helper functions for easy job dispatching
- Automatic table creation for database driver
- Failed job tracking and management
QueueManager- Central queue management systemJobInterface- Standard job contractBaseJob- Abstract job class with retry logicSendEmailJob- Built-in email processingProcessFileJob- Built-in file processingQueueWorker- Background job processorDatabaseDriver- MySQL/PostgreSQL queue storageRedisDriver- Redis-based queue storage
php console queue work [queue] [max-jobs]- Start queue workerphp console queue status [queue]- Check queue statusphp console queue clear [queue]- Clear queue
dispatch($job, $queue)- Dispatch jobs to queuequeue_email($to, $subject, $message)- Queue email jobsqueue_file_processing($path, $operation, $options)- Queue file jobsqueue_status($queue)- Get queue size
QUEUE_DRIVER- Set queue driver (database/redis)REDIS_HOST- Redis server hostREDIS_PORT- Redis server port
- API Versioning System - Multiple API versions with backward compatibility
- URI path versioning (/api/v1/, /api/v2/)
- Header-based version detection (X-API-Version, Accept)
- Version-specific controllers and responses
- Automatic version middleware integration
- Enhanced V2 response format with metadata
- Structured error codes and messages
- Backward compatibility support
ApiVersionMiddleware- Automatic version detectionVersionedRouter- Route handling for different versions- V1 Controllers - Standard JSON responses
- V2 Controllers - Enhanced responses with metadata
- Multiple version detection methods
- Flexible response transformations
- V1: Standard responses, basic error handling
- V2: Enhanced metadata, structured errors, timestamps
- URI path:
/api/v1/users,/api/v2/users - Header:
X-API-Version: v2 - Accept:
application/vnd.api+json;version=2
- CLI Support - Command-line interface for development tasks
- Console application with command registration system
- Built-in commands: serve, migrate, test, cache, make
- File generation: controllers and models
- Development server management
- Database migration management
- Test runner integration
- Cache management utilities
- Colored console output for better UX
- Cross-platform compatibility
php console serve- Start development serverphp console migrate [action]- Database migrationsphp console test [file]- Run PHPUnit testsphp console cache clear- Clear application cachephp console make controller|model <name>- Generate filesphp console help- Show available commands
- Debug Bar System - Lightweight development debugging toolbar
- Real-time performance monitoring (execution time, memory usage)
- Database query tracking with timing information
- Debug message logging with different severity levels
- HTTP request information capture
- Timer functionality for measuring code execution
- Automatic PDO query interception and logging
- Safe by default - only enabled via environment configuration
- IP whitelist support for security
- Minimal overhead when disabled
CollectorInterface- Base interface for debug collectorsDebugBar- Main singleton manager for debug functionality- Built-in collectors:
TimerCollector- Measures execution timesMemoryCollector- Tracks memory usageMessageCollector- Logs debug messagesQueryCollector- Records database queriesRequestCollector- Captures HTTP request data
DebugPDO- PDO wrapper for automatic query tracking- Helper functions:
debug(),timer_start(),timer_stop() - Responsive debug toolbar UI with tabbed interface
- Dual output support: HTML toolbar for web pages, JSON headers for APIs
DEBUGBAR_ENABLED- Enable/disable debug barDEBUGBAR_ALLOWED_IPS- IP whitelist for security
- PHP 8+ compatibility issues with PDO return types
getallheaders()function compatibility for CLI environments
- Debug bar automatically disabled in production
- IP-based access control
- No sensitive data exposure in debug output