arts / base
Framework-agnostic base classes for Arts WordPress plugins
Installs: 69
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/arts/base
Requires
- php: >=8.0
Requires (Dev)
README
Base classes for WordPress plugins using a manager pattern architecture.
Installation
composer require arts/base
Quick Start
use Arts\Base\Plugins\BasePlugin; use Arts\Base\Managers\BaseManager; class MyPlugin extends BasePlugin { protected function get_default_config() { return ['version' => '1.0.0']; } protected function get_default_strings() { return ['name' => 'My Plugin']; } protected function get_managers_classes() { return ['assets' => AssetsManager::class]; } protected function get_default_run_action() { return 'init'; } } class AssetsManager extends BaseManager { // Access config via $this->config, strings via $this->strings // Access other managers via $this->managers->other_manager } // Initialize MyPlugin::instance();
Architecture
- BasePlugin - Abstract singleton handling plugin lifecycle: init → apply filters → add managers → run on WordPress hook
- BaseManager - Abstract base receiving
$args,$config,$stringsfrom plugin with access to peer managers - ManagersContainer - ArrayObject-based container enabling
$this->managers->manager_nameaccess
Manager Communication
Managers can access each other after initialization:
$this->managers->assets->enqueue_scripts();
Type Safety
For IDE autocompletion, extend ManagersContainer and override init_managers_container() in your plugin. See @template TManagers in BasePlugin.
Used By
- Release Deploy for EDD - GitHub release → Easy Digital Downloads automation