This page applies to Aikeedo 5.x. Class names, paths and signatures match the 5.0 source code.
Anatomy of a plugin
composer.jsondeclares"type": "aikeedo-plugin", requiresheyaikeedo/composer, and names an entry class inextra.entry-class.- The entry class implements
Plugin\Domain\PluginInterface:
src/Plugin.php
boot().
Context is read-only metadata about your package, built from its composer.json. It has no container or event dispatcher on it. Use constructor injection instead.How a plugin is loaded
Key points:- Plugins boot after every core module, so all core registries exist by the time
boot()runs. boot()runs on every request, including console and cron runs. Keep it cheap: register things, don’t do work.- Only plugins whose status is
activeboot. Themes are a special case: a theme is active when it’s the selected theme. - If a plugin crashes while booting, Aikeedo records the failure in
var/plugin-health.jsonand skips the plugin on later requests, so one broken plugin can’t take the site down. WithDEBUGon, the error is raised instead. See Debugging.
What plugins can extend
What plugins cannot do
Where plugins live
Next steps
Build your first plugin
A working plugin with a settings page and a menu item, step by step.
Manifest reference
Every
composer.json field Aikeedo reads.Lifecycle and hooks
Install, activate, deactivate, uninstall and update.
Services you can inject
The core services a plugin reaches through its constructor.
Need Help?
If you need assistance with Aikeedo:Professional Support
Get expert help from our team with a paid support subscription
Troubleshooting Guide
Check common issues and solutions