Bootstrap & Lifecycle
Basic Structure
<?php
namespace Plugins\MyPlugin;
use Psr\Log\LoggerInterface;
class Bootstrap
{
public function __construct(
private readonly LoggerInterface $logger,
) {}
/**
* Called when plugin is enabled
*/
public function initialize(): void
{
$this->logger->info('MyPlugin initialized', [
'plugin' => 'my-plugin',
'version' => '1.0.0'
]);
// Initialization logic here
// DO NOT initialize settings - use migrations instead
}
/**
* Called when plugin is disabled
*/
public function cleanup(): void
{
$this->logger->info('MyPlugin cleanup', [
'plugin' => 'my-plugin'
]);
// Cleanup logic here
// DO NOT delete user data!
// DO NOT drop database tables!
}
}Dependency Injection
What to Do in initialize()
What to Do in cleanup()
Error Handling
Bootstrap Registration
Plugin Lifecycle
Related Guides
Last updated