W3cubDocs

/CakePHP 4.1

Class BaseApplication

Base class for full-stack applications

This class serves as a base class for applications that are using CakePHP as a full stack framework. If you are only using the Http or Console libraries you should implement the relevant interfaces directly.

The application class is responsible for bootstrapping the application, and ensuring that middleware is attached. It is also invoked as the last piece of middleware, and delegates request/response handling to the correct controller.

Abstract
Namespace: Cake\Http

Properties summary

  • $_eventClass protected
    string

    Default class name for new event objects.

  • $_eventManager protected
    \Cake\Event\EventManagerInterface

    Instance of the Cake\Event\EventManager this object is using to dispatch inner events.

  • $configDir protected
    string
  • $controllerFactory protected
    \Cake\Http\ControllerFactoryInterface|null

    Controller factory

  • $plugins protected
    \Cake\Core\PluginCollection

    Plugin Collection

Method Summary

Method Detail

__construct() public

__construct(string $configDir, ?\Cake\Event\EventManagerInterface $eventManager, ?\Cake\Http\ControllerFactoryInterface $controllerFactory)

Constructor

Parameters

string $configDir

The directory the bootstrap configuration is held in.

\Cake\Event\EventManagerInterface $eventManager optional

Application event manager instance.

\Cake\Http\ControllerFactoryInterface $controllerFactory optional

Controller factory.

addOptionalPlugin() public

addOptionalPlugin(mixed $name, array $config)

Add an optional plugin

If it isn't available, ignore it.

Parameters

string|\Cake\Core\PluginInterface $name

The plugin name or plugin object.

array $config optional

The configuration data for the plugin if using a string for $name

Returns

$this

addPlugin() public

addPlugin(mixed $name, array $config)

Add a plugin to the loaded plugin set.

If the named plugin does not exist, or does not define a Plugin class, an instance of Cake\Core\BasePlugin will be used. This generated class will have all plugin hooks enabled.

Parameters

string|\Cake\Core\PluginInterface $name

The plugin name or plugin object.

array $config optional

The configuration data for the plugin if using a string for $name

Returns

$this

bootstrap() public

bootstrap()

Load all the application configuration and bootstrap logic.

Override this method to add additional bootstrap logic for your application.

console() public

console(\Cake\Console\CommandCollection $commands)

Define the console commands for an application.

By default all commands in CakePHP, plugins and the application will be loaded using conventions based names.

Parameters

\Cake\Console\CommandCollection $commands

The CommandCollection to add commands into.

Returns

\Cake\Console\CommandCollection

The updated collection.

dispatchEvent() public

dispatchEvent(string $name, ?array $data, ?object $subject)

Wrapper for creating and dispatching events.

Returns a dispatched event.

Parameters

string $name

Name of the event.

array|null $data optional

Any value you wish to be transported with this event to it can be read by listeners.

object|null $subject optional

The object that this event applies to ($this by default).

Returns

\Cake\Event\EventInterface

getEventManager() public

getEventManager()

Returns the Cake\Event\EventManager manager instance for this object.

You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.

Returns

\Cake\Event\EventManagerInterface

getPlugins() public

getPlugins()

Get the plugin collection in use.

Returns

\Cake\Core\PluginCollection

handle() public

handle(\Psr\Http\Message\ServerRequestInterface $request)

Invoke the application.

  • Convert the PSR response into CakePHP equivalents.
  • Create the controller that will handle this request.
  • Invoke the controller.

Parameters

\Psr\Http\Message\ServerRequestInterface $request

The request

Returns

\Psr\Http\Message\ResponseInterface

middleware() abstract public

middleware(\Cake\Http\MiddlewareQueue $middlewareQueue)

Parameters

\Cake\Http\MiddlewareQueue $middlewareQueue

The middleware queue to set in your App Class

Returns

\Cake\Http\MiddlewareQueue

pluginBootstrap() public

pluginBootstrap()

Run bootstrap logic for loaded plugins.

pluginConsole() public

pluginConsole(\Cake\Console\CommandCollection $commands)

Run console hooks for plugins

Parameters

\Cake\Console\CommandCollection $commands

The CommandCollection to use.

Returns

\Cake\Console\CommandCollection

pluginMiddleware() public

pluginMiddleware(\Cake\Http\MiddlewareQueue $middleware)

Run middleware hooks for plugins

Parameters

\Cake\Http\MiddlewareQueue $middleware

The MiddlewareQueue to use.

Returns

\Cake\Http\MiddlewareQueue

pluginRoutes() public

pluginRoutes(\Cake\Routing\RouteBuilder $routes)

Run routes hooks for loaded plugins

Parameters

\Cake\Routing\RouteBuilder $routes

The route builder to use.

Returns

\Cake\Routing\RouteBuilder

routes() public

routes(\Cake\Routing\RouteBuilder $routes)

Define the routes for an application.

Use the provided RouteBuilder to define an application's routing.

Parameters

\Cake\Routing\RouteBuilder $routes

A route builder to add routes into.

setEventManager() public

setEventManager(\Cake\Event\EventManagerInterface $eventManager)

Returns the Cake\Event\EventManagerInterface instance for this object.

You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.

Parameters

\Cake\Event\EventManagerInterface $eventManager

the eventManager to set

Returns

$this

Property Detail

$_eventClass protected

Default class name for new event objects.

Type

string

$_eventManager protected

Instance of the Cake\Event\EventManager this object is using to dispatch inner events.

Type

\Cake\Event\EventManagerInterface

$configDir protected

Type

string

$controllerFactory protected

Controller factory

Type

\Cake\Http\ControllerFactoryInterface|null

$plugins protected

Plugin Collection

Type

\Cake\Core\PluginCollection

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.1/class-Cake.Http.BaseApplication.html