API Reference
Complete class and method reference for WPZylos Requirements.
Contracts
RequirementInterface
namespace WPZylos\Framework\Requirements\Contracts;
interface RequirementInterface
{
/**
* Check if the requirement is satisfied.
*
* @return bool True if satisfied, false otherwise.
*/
public function isSatisfied(): bool;
/**
* Get the human-readable error message.
*
* @return string Error message for display.
*/
public function getErrorMessage(): string;
/**
* Get a unique identifier for this requirement.
*
* @return string Unique name (e.g., 'php_version', 'plugin_woocommerce').
*/
public function getName(): string;
}
RequirementsCheckerInterface
namespace WPZylos\Framework\Requirements\Contracts;
interface RequirementsCheckerInterface
{
public function addRequirement(RequirementInterface $requirement): static;
public function check(): bool;
public function getFailedRequirements(): array;
public function getErrors(): array;
public function hasFailures(): bool;
}
Core Classes
RequirementsChecker
The main class for collecting and validating requirements.
use WPZylos\Framework\Requirements\RequirementsChecker;
$checker = new RequirementsChecker();
Methods
| Method | Returns | Description |
|---|---|---|
addRequirement($req) | static | Add a requirement (fluent) |
check() | bool | Run all checks, returns false if any fail |
hasFailures() | bool | Whether any requirements failed |
getErrors() | array<string> | Get all error messages |
getFailedRequirements() | array<RequirementInterface> | Get failed requirement objects |
getRequirements() | array<RequirementInterface> | Get all registered requirements |
clear() | static | Remove all requirements and reset state |
RequirementsConfig
Factory class for building checkers from config.
use WPZylos\Framework\Requirements\RequirementsConfig;
Static Methods
| Method | Returns | Description |
|---|---|---|
fromFile(string $path, string $textDomain = 'wpzylos') | RequirementsCheckerInterface | Build from PHP config file |
fromArray(array $config, string $textDomain = 'wpzylos') | RequirementsCheckerInterface | Build from array |
Example
// From file
$checker = RequirementsConfig::fromFile(__DIR__ . '/config/requirements.php', 'my-plugin');
// From array
$checker = RequirementsConfig::fromArray([
'min_php_version' => '8.1',
'min_wp_version' => '6.0',
], 'my-plugin');
RequirementsErrorHandler
Handles displaying errors and deactivating plugin.
use WPZylos\Framework\Requirements\RequirementsErrorHandler;
$handler = new RequirementsErrorHandler(
array $errors,
?string $pluginFile = null,
string $pluginName = 'Plugin',
string $textDomain = 'wpzylos'
);
Methods
| Method | Returns | Description |
|---|---|---|
handle(bool $deactivate = true) | void | Process errors (deactivate + notices) |
renderAdminNotice() | void | Output admin notice HTML |
renderErrorPage() | string | Get styled error page HTML |
getErrors() | array<string> | Get error messages |
RequirementsServiceProvider
Service provider for WPZylos application integration.
use WPZylos\Framework\Requirements\RequirementsServiceProvider;
$app->register(RequirementsServiceProvider::class);
Static Methods
| Method | Returns | Description |
|---|---|---|
getStubPath() | string | Path to requirements.php.stub |
publishConfig(string $targetPath, bool $force = false) | bool | Copy stub to target location |
publishes() | array | Get source => target for publishing |
Requirement Classes
PhpVersionRequirement
use WPZylos\Framework\Requirements\Requirements\PhpVersionRequirement;
new PhpVersionRequirement(
string $minVersion, // e.g., '8.1'
string $textDomain = 'wpzylos'
);
WordPressVersionRequirement
use WPZylos\Framework\Requirements\Requirements\WordPressVersionRequirement;
new WordPressVersionRequirement(
string $minVersion, // e.g., '6.0'
string $textDomain = 'wpzylos'
);
PhpExtensionRequirement
use WPZylos\Framework\Requirements\Requirements\PhpExtensionRequirement;
new PhpExtensionRequirement(
string $extension, // e.g., 'mbstring'
string $textDomain = 'wpzylos'
);
PluginRequirement
use WPZylos\Framework\Requirements\Requirements\PluginRequirement;
new PluginRequirement(
string $pluginName, // 'WooCommerce'
string $pluginSlug, // 'woocommerce/woocommerce.php'
?string $minVersion = null, // '8.0.0' or null
string $textDomain = 'wpzylos'
);
MultisiteRequirement
use WPZylos\Framework\Requirements\Requirements\MultisiteRequirement;
new MultisiteRequirement(
bool $isCompatible, // true = works on multisite
string $textDomain = 'wpzylos'
);
Container Bindings
When using the service provider:
| Binding | Type | Description |
|---|---|---|
requirements.checker | RequirementsChecker | Singleton checker instance |
// Access in your code
$checker = $app->make('requirements.checker');