CMS Framework - v1.0.0
Hooks and Events
The CMS Framework exposes a small set of WordPress‑style hooks and events to allow packages and applications to extend behavior without tightly coupling code.
This guide documents the available hooks grouped by module.
Core: Assets
Filters for modifying enqueued assets before retrieval:
- ap.admin.enqueuedAssets
- ap.public.enqueuedAssets
- ap.auth.enqueuedAssets
Each filter receives the current associative array of assets and should return the modified array.
addFilter('ap.admin.enqueuedAssets', function (array $assets) {
$assets['custom-admin'] = [
'path' => mix('js/custom-admin.js'),
'inFooter' => true,
];
return $assets;
});
Users: Settings UI
- ap.users.settings.sections (filter)
Add or modify sections (tabs) for your user settings UI.
apRegisterUserSettingsSection('profile', 'Profile', 10);
// Internally this uses the following filter:
addFilter('ap.users.settings.sections', function (array $sections) {
$sections['profile'] = ['label' => 'Profile', 'order' => 10];
return $sections;
});
Users: Model Events
Actions fired when roles or permissions are registered via managers:
- ap.roleRegistered (action)
- ap.permissionRegistered (action)
addAction('ap.roleRegistered', function ($role) {
// React to role creation/registration
});
addAction('ap.permissionRegistered', function ($permission) {
// React to permission creation/registration
});
Conventions
- Filters should return the modified value; actions return void.
- Hook names are namespaced with the
ap.prefix. - Prefer kebab‑case segments for readability.
Utilities
The examples above assume the presence of the following global helpers (provided by the Eventy facade in this package's context):
- addFilter(string $hook, callable $callback)
- applyFilters(string $hook, mixed $value): mixed
- addAction(string $hook, callable $callback)
- doAction(string $hook, ...$args): void