All Features
Security
UI/UX
System
Content
Business
Marketing
⚙️
Admin SettingsSystem
System Settings
Database-driven configuration with type casting and encryption
Overview
Key-value configuration store in database. Supports multiple types (string, number, boolean, JSON, encrypted). Grouped for organization. Cached for performance with ConfigHelper.
Design Considerations
UX patterns and visual design notes for this feature:
- •Group settings logically (General, Email, Auth...)
- •Show descriptions - admins need context
- •Dangerous settings need confirmation dialogs
- •Visual feedback on save
Key Benefits
What makes this feature stand out:
- ✓No code changes for config updates
- ✓Type-safe value casting
- ✓Encrypted storage for secrets
- ✓Automatic caching
Technical Note
ConfigHelper::get('key', 'default') with caching. System settings override params.php values. Encrypted type uses Yii::$app->security for storage.
Helpers
ConfigHelperModels
SystemSettingDatabase Tables
system_settingConfiguration
Config Relationship Legend
⚙ DB overrides params.php🔗 DB related setting📋 DB stores value only
params.php Configuration
Config path: params['N/A (this IS the settings system)']
paramsConfigHelper::get('site_name', 'Default') => Get with fallbackparamsConfigHelper::getBool('maintenance_mode') => Type-cast to booleanparamsConfigHelper::set('key', 'value', 'string') => Set and cacheDatabase Settings (system_setting table)
| Key | Type | Description | Relation |
|---|---|---|---|
site_name | string | Site name displayed in header | ⚙ |
site_tagline | string | Site tagline/slogan | ⚙ |
smtp_password | encrypted | SMTP password (encrypted) | 📋 |
Note: This feature IS the bridge between params.php and database. Priority: DB system_setting > params.php > hardcoded defaults.