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

v1.0.3 2025-12-23 01:28 UTC

This package is auto-updated.

Last update: 2025-12-23 01:29:21 UTC


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, $strings from plugin with access to peer managers
  • ManagersContainer - ArrayObject-based container enabling $this->managers->manager_name access

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