Resolved multiple critical discovery system issues: ## Discovery System Fixes - Fixed console commands not being discovered on first run - Implemented fallback discovery for empty caches - Added context-aware caching with separate cache keys - Fixed object serialization preventing __PHP_Incomplete_Class ## Cache System Improvements - Smart caching that only caches meaningful results - Separate caches for different execution contexts (console, web, test) - Proper array serialization/deserialization for cache compatibility - Cache hit logging for debugging and monitoring ## Object Serialization Fixes - Fixed DiscoveredAttribute serialization with proper string conversion - Sanitized additional data to prevent object reference issues - Added fallback for corrupted cache entries ## Performance & Reliability - All 69 console commands properly discovered and cached - 534 total discovery items successfully cached and restored - No more __PHP_Incomplete_Class cache corruption - Improved error handling and graceful fallbacks ## Testing & Quality - Fixed code style issues across discovery components - Enhanced logging for better debugging capabilities - Improved cache validation and error recovery Ready for production deployment with stable discovery system. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
149 lines
4.6 KiB
Markdown
149 lines
4.6 KiB
Markdown
# Environment Configuration Guide
|
|
|
|
This directory contains environment templates for different deployment environments of the Custom PHP Framework.
|
|
|
|
## Environment Templates
|
|
|
|
### `.env.production.template`
|
|
Production environment template with security-focused configurations:
|
|
- APP_DEBUG=false
|
|
- Strict session fingerprinting
|
|
- Xdebug disabled
|
|
- Production logging levels
|
|
- Strong password requirements
|
|
|
|
### `.env.staging.template`
|
|
Staging environment template for testing:
|
|
- APP_DEBUG=true
|
|
- Moderate security settings
|
|
- Xdebug enabled for debugging
|
|
- Verbose logging
|
|
- Test API configurations
|
|
|
|
## Usage
|
|
|
|
1. **Copy the appropriate template:**
|
|
```bash
|
|
cp .env.production.template .env.production
|
|
# or
|
|
cp .env.staging.template .env.staging
|
|
```
|
|
|
|
2. **Fill in required values:**
|
|
- Replace all `*** REQUIRED ***` placeholders with actual values
|
|
- Generate strong passwords for database credentials
|
|
- Configure API keys and service credentials
|
|
- Set proper domain names and SSL certificate paths
|
|
|
|
3. **Security Considerations:**
|
|
- Never commit actual `.env.production` or `.env.staging` files to version control
|
|
- Use strong, unique passwords for each environment
|
|
- Rotate credentials regularly
|
|
- Enable appropriate session fingerprinting for security
|
|
|
|
## Environment-Specific Settings
|
|
|
|
### Development → Staging Changes
|
|
- Enable Xdebug but remove IDE configurations
|
|
- Use staging database and credentials
|
|
- Enable detailed logging for debugging
|
|
- Use test API endpoints where available
|
|
|
|
### Staging → Production Changes
|
|
- Disable all debug features (APP_DEBUG=false, XDEBUG_MODE=off)
|
|
- Enable strict security settings
|
|
- Use production database with strong credentials
|
|
- Set warning-level logging only
|
|
- Configure production SSL certificates
|
|
- Use production API keys and webhooks
|
|
|
|
## Required Values by Environment
|
|
|
|
### Production Requirements
|
|
- **Database:** Strong passwords, production database name
|
|
- **APIs:** Production webhook secrets, SMTP credentials
|
|
- **SSL:** Valid SSL certificate paths
|
|
- **Monitoring:** Production-grade logging configuration
|
|
|
|
### Staging Requirements
|
|
- **Database:** Separate staging database credentials
|
|
- **APIs:** Test/staging API keys where available
|
|
- **SSL:** Test certificates or self-signed certificates
|
|
- **Monitoring:** Verbose logging for debugging
|
|
|
|
## Environment Variable Categories
|
|
|
|
### Core Application
|
|
- `APP_ENV`, `APP_DEBUG`, `APP_URL`, `APP_DOMAIN`
|
|
|
|
### Database Configuration
|
|
- `DB_HOST`, `DB_DATABASE`, `DB_USERNAME`, `DB_PASSWORD`, `DB_ROOT_PASSWORD`
|
|
|
|
### Security & Session
|
|
- Session fingerprinting settings
|
|
- SSL certificate paths
|
|
- Authentication configurations
|
|
|
|
### External Services
|
|
- SMTP configuration for emails
|
|
- Third-party API credentials
|
|
- Webhook secrets
|
|
|
|
### Performance & Caching
|
|
- OPcache settings
|
|
- Redis configuration
|
|
- Worker process limits
|
|
|
|
### Monitoring & Logging
|
|
- Log levels and channels
|
|
- Error reporting settings
|
|
- Analytics configuration
|
|
|
|
## Deployment Integration
|
|
|
|
These environment files are used by:
|
|
- Docker Compose overlays (`docker-compose.production.yml`, `docker-compose.staging.yml`)
|
|
- Ansible deployment playbooks
|
|
- Application deployment scripts
|
|
|
|
## Security Best Practices
|
|
|
|
1. **Credential Management:**
|
|
- Use strong, unique passwords for each environment
|
|
- Consider using a password manager or secrets management service
|
|
- Rotate credentials regularly
|
|
|
|
2. **Environment Isolation:**
|
|
- Keep staging and production completely separate
|
|
- Use different database servers and API keys
|
|
- Monitor access to production credentials
|
|
|
|
3. **File Permissions:**
|
|
- Set restrictive permissions on environment files (600)
|
|
- Ensure only necessary users can read the files
|
|
- Never include in version control
|
|
|
|
4. **SSL/TLS Configuration:**
|
|
- Use valid SSL certificates in production
|
|
- Enable HTTPS everywhere
|
|
- Configure proper cipher suites
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
- **Missing required values:** Check for `*** REQUIRED ***` placeholders
|
|
- **Database connection failures:** Verify database credentials and host
|
|
- **SSL certificate errors:** Check certificate paths and permissions
|
|
- **API failures:** Verify API keys and endpoint configurations
|
|
|
|
### Environment-Specific Debugging
|
|
- **Staging:** Enable verbose logging and Xdebug
|
|
- **Production:** Check application logs and monitoring systems
|
|
- **Both:** Verify environment variable loading in application
|
|
|
|
## Integration with Deployment
|
|
|
|
The environment templates integrate with:
|
|
1. **Docker Compose overlays** for environment-specific container configuration
|
|
2. **Ansible playbooks** for automated environment setup
|
|
3. **Application deployment scripts** for environment validation and deployment |