Installation
Detailed installation and setup instructions for WPZylos Framework.
System Requirements
| Requirement | Minimum | Recommended |
|---|---|---|
| PHP | 8.0 | 8.1+ |
| WordPress | 6.0 | 6.4+ |
| Composer | 2.0 | 2.6+ |
| MySQL | 5.7 | 8.0+ |
PHP Extensions
Required:
jsonmbstringdom
Recommended:
opcacheintl
Installation Methods
Method 1: Scaffold (Recommended)
The scaffold generates a complete plugin structure:
# In wp-content/plugins
composer create-project wpzylos/plugin-skeleton my-plugin
cd my-plugin
Method 2: Composer Require
Add individual packages to an existing plugin:
composer require wpzylos/core
composer require wpzylos/container
composer require wpzylos/hooks
composer require wpzylos/security
Method 3: Full Framework
Require all packages at once:
composer require wpzylos/framework
Package Dependencies
graph TD
A[wpzylos/scaffold] --> B[wpzylos/core]
B --> C[wpzylos/container]
B --> D[wpzylos/hooks]
B --> E[wpzylos/config]
F[wpzylos/security] --> B
G[wpzylos/http] --> B
H[wpzylos/routing] --> G
I[wpzylos/validation] --> B
J[wpzylos/views] --> B
K[wpzylos/database] --> B
L[wpzylos/migrations] --> K
M[wpzylos/i18n] --> B
N[wpzylos/cli-core] --> B
O[wpzylos/cli-devtool] --> N
P[wpzylos/wp-cli] --> N
Composer Configuration
composer.json
{
"name": "vendor/my-plugin",
"type": "wordpress-plugin",
"require": {
"php": ">=8.0",
"wpzylos/core": "^1.0",
"wpzylos/container": "^1.0",
"wpzylos/hooks": "^1.0",
"wpzylos/security": "^1.0",
"wpzylos/routing": "^1.0",
"wpzylos/views": "^1.0"
},
"require-dev": {
"phpunit/phpunit": "^10.0",
"phpstan/phpstan": "^1.10"
},
"autoload": {
"psr-4": {
"Vendor\\MyPlugin\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"Vendor\\MyPlugin\\Tests\\": "tests/"
}
}
}
PSR-4 Autoloading
WPZylos uses PSR-4 autoloading. Your classes should follow this structure:
src/
+-- Http/
| +-- Controllers/
| +-- AdminController.php → Vendor\MyPlugin\Http\Controllers\AdminController
+-- Models/
| +-- User.php → Vendor\MyPlugin\Models\User
+-- Providers/
+-- AppServiceProvider.php → Vendor\MyPlugin\Providers\AppServiceProvider
Development Dependencies
For development, add these packages:
composer require --dev phpunit/phpunit
composer require --dev phpstan/phpstan
composer require --dev squizlabs/php_codesniffer
WordPress Multisite
WPZylos works on multisite installations. Each site shares the same plugin code but maintains isolated data through prefixed options and transients.
// Options are automatically prefixed per-plugin
$context->option('settings'); // Returns: map_settings
// On multisite, WordPress handles site-specific options natively
get_option('map_settings'); // Site-specific
get_site_option('map_network_settings'); // Network-wide
Verifying Installation
After installation, verify the framework is loaded:
// In your plugin's main file
add_action('admin_notices', function () {
if (!class_exists(\WPZylos\Framework\Core\Application::class)) {
echo '<div class="notice notice-error"><p>WPZylos not loaded!</p></div>';
}
});
Troubleshooting Installation
Composer Memory Limit
COMPOSER_MEMORY_LIMIT=-1 composer require wpzylos/core
Autoload Not Found
composer dump-autoload -o
Version Conflicts
composer why-not wpzylos/core 1.0.0
composer update --with-all-dependencies
Next Steps
- Configuration — Configure your plugin
- Quick Start — Create your first plugin