Traits¶
Reusable behaviours that can be composed into any class via PHP traits.
Core lifecycle traits¶
| Trait | Description |
|---|---|
Singleton | get_instance() — creates one instance per class |
Module | Extends Singleton, calls init() once on first instantiation |
Module trait¶
Every feature module uses Module. Implement init() to register hooks:
use Barberklingen\BasePlugin\Traits\Module;
class MyModule {
use Module;
public function init(): void {
add_action('init', [$this, 'setup']);
}
}
MyModule::get_instance(); // init() runs here, once
MyModule::get_instance(); // returns same instance, init() not called again
Endpoint traits¶
| Trait | Description |
|---|---|
Scheduler | Recurring scheduled actions with distributed lock |
AjaxEndpoint | wp_ajax_* / wp_ajax_nopriv_* handler |
WCAPIEndpoint | woocommerce_api_{action} handler |