$config The configuration data for the plugin if using a string for $name * @return $this */ public function addPlugin($name, array $config = []); /** * Run bootstrap logic for loaded plugins. * * @return void */ public function pluginBootstrap(): void; /** * Run routes hooks for loaded plugins * * @param \Cake\Routing\RouteBuilder $routes The route builder to use. * @return \Cake\Routing\RouteBuilder */ public function pluginRoutes(RouteBuilder $routes): RouteBuilder; /** * Run middleware hooks for plugins * * @param \Cake\Http\MiddlewareQueue $middleware The MiddlewareQueue to use. * @return \Cake\Http\MiddlewareQueue */ public function pluginMiddleware(MiddlewareQueue $middleware): MiddlewareQueue; /** * Run console hooks for plugins * * @param \Cake\Console\CommandCollection $commands The CommandCollection to use. * @return \Cake\Console\CommandCollection */ public function pluginConsole(CommandCollection $commands): CommandCollection; }