Documentation

Application extends Application
in package

Main module class

Tags
category

Pop\Kettle

author

Nick Sagona, III nick@popphp.org

copyright

Copyright (c) 2009-2026 Nick Sagona, III

license

https://www.popphp.org/license New BSD License

version
3.0.0

Table of Contents

Constants

FULL_NAME  = 'Pop Kettle'
Application full name
NAME  = 'pop-kettle'
Application name
VERSION  = '3.0.0'
Application version

Properties

$autoloader  : ClassLoader|null
$config  : mixed
Application config
$events  : Manager|null
$middleware  : Manager|null
$modules  : Manager|null
$router  : Router|null
$services  : Locator|null
$console  : Console|null
Shared console object
$fullName  : string|null
Application full name
$name  : string|null
Application name
$version  : string|null
Version

Methods

__call()  : static
Magic method to register a route for a whitelisted custom HTTP method
__construct()  : mixed
Constructor
__get()  : mixed
Get a pre-designated value from the application object
__isset()  : bool
Determine if a pre-designated value in the application object exists
__set()  : void
Set a pre-designated value in the application object
__unset()  : void
Unset a pre-designated value in the application object
addConfigValue()  : AbstractApplication
Add new value to config
addCustomMethod()  : static
Add a custom HTTP method to the whitelist
addCustomMethods()  : static
Add multiple custom HTTP methods to the whitelist
addMiddleware()  : static
Add a middleware handler
addRoute()  : static
Add a route
addRoutes()  : static
Add routes
autoloader()  : ClassLoader|null
Get the autoloader object
bootstrap()  : static
Bootstrap the application, creating the required objects if they haven't been created yet and registering with the autoloader, adding routes, services and events
check()  : void
Application install check (post-install-cmd for main framework installation)
cliError()  : void
CLI error handler method
config()  : mixed
Access application config
connect()  : static
Add a CONNECT route
delete()  : static
Add a DELETE route
deleteConfigValue()  : AbstractApplication
Replace existing value in config
env()  : mixed
Get environment value
environment()  : string|null|bool
Get application environment
events()  : Manager|null
Get the event manager
get()  : static
Add a GET route
getConsole()  : Console|null
Get the shared console object
getFullName()  : string
Get full name
getMiddleware()  : mixed
Get middleware
getName()  : string
Get name
getService()  : mixed
Get a service
getVersion()  : string
Get version
hasCustomMethod()  : bool
Determine if a custom HTTP method has been whitelisted
hasFullName()  : bool
Determine if the full name is set
hasName()  : bool
Determine if the name is set
hasVersion()  : bool
Determine if version has been set
head()  : static
Add a HEAD route
init()  : static
Initialize the application
initDb()  : void
Initialize database service
isDev()  : bool
Check if application environment is dev
isDown()  : bool
Check if application is in maintenance mode
isLocal()  : bool
Check if application environment is local
isProduction()  : bool
Check if application environment is production
isRegistered()  : bool
Determine whether a module is registered with the application object
isStaging()  : bool
Check if application environment is staging
isTesting()  : bool
Check if application environment is testing
isUp()  : bool
Check if application is in not maintenance mode
load()  : Application
Load application
mergeApplication()  : static
Merge another application's services, middleware, events and config into this application
mergeConfig()  : AbstractApplication
Merge new or altered config values with the existing config values
mergeEvents()  : static
Merge another event manager's listeners into this application's event manager, combining listeners for shared event names instead of replacing them
mergeMiddleware()  : static
Merge another middleware manager's items into this application's middleware manager
mergeServices()  : static
Merge another service locator's items into this application's service locator
middleware()  : Manager|null
Get the middleware manager
module()  : ModuleInterface|null
Access a module object
modules()  : Manager|null
Access all application module configs
name()  : string|null
Get application name (alias method)
off()  : static
Detach an event. Default hook-points are:
offsetExists()  : bool
Determine if a pre-designated value in the application object exists
offsetGet()  : mixed
Get a pre-designated value from the application object
offsetSet()  : void
Set a pre-designated value in the application object
offsetUnset()  : void
Unset a pre-designated value in the application object
on()  : static
Attach an event. Default hook-points are:
options()  : static
Add an OPTIONS route
patch()  : static
Add a PATCH route
post()  : static
Add a POST route
prepare()  : Application
Prepare application - determine if the route is a kettle native route or a custom application route
put()  : static
Add a PUT route
register()  : static
Register a module with the module manager object
registerAutoloader()  : static
Register the autoloader object with the application
registerConfig()  : AbstractApplication
Register a new configuration with the application
registerEvents()  : static
Register a new event manager object with the application
registerMiddleware()  : static
Register a new middleware manager object with the application
registerModules()  : static
Register a new module manager object with the application
registerRouter()  : static
Register a new router object with the application
registerServices()  : static
Register a new service locator object with the application
removeMiddleware()  : static
Remove middleware
removeService()  : static
Remove a service
router()  : Router|null
Access the application router
run()  : void
Run the application
services()  : Locator|null
Get the service locator
setFullName()  : static
Set full name
setName()  : static
Set name
setService()  : static
Set a service
setVersion()  : static
Set version
trace()  : static
Add a TRACE route
trigger()  : static
Trigger an event
unregister()  : static
Unregister a module with the module manager object
updateConfigValue()  : AbstractApplication
Update existing value in config
url()  : string|null
Get application URL
applyConfigEvents()  : void
If events are set in the app config, register them with the application
applyConfigMetadata()  : void
Set the app name and version from config, if present
applyConfigMiddleware()  : void
If middleware is defined in the app config, register them with the application
applyConfigRoutes()  : void
If routes are set in the app config, register them with the application
applyConfigServices()  : void
If services are set in the app config, register them with the application
buildDispatch()  : array<string|int, mixed>
Build the dispatch closure and its params for the given dispatchable - used both as the deferred callable the middleware pipeline invokes once its handler chain completes, and by invokeDispatchable() to call the same logic immediately when there's no middleware to defer to
hasPsr15Middleware()  : bool
Determine whether a PSR-15 middleware adapter is registered in the middleware stack
httpRouter()  : Router
Get the active HTTP router, guarding that the application is routed for HTTP
initializeDefaultManagers()  : void
Instantiate and register any manager objects not already set
invokeDispatchable()  : void
Invoke the dispatchable directly, bypassing the middleware pipeline
loadHelperFunctions()  : void
Load helper functions, unless disabled by config
registerConfiguredAutoloaderPrefix()  : void
If the autoloader is set and the application config has a defined prefix and src, register with the autoloader
renderMaintenanceResponse()  : void
Render a default maintenance-mode response for route targets that aren't a Dispatch\MaintenanceInterface (closures, callables) and so have no custom maintenance action of their own to run
resolveMiddlewareRequest()  : mixed
Resolve the request object to pass into the middleware pipeline

Constants

FULL_NAME

Application full name

public string FULL_NAME = 'Pop Kettle'

NAME

Application name

public string NAME = 'pop-kettle'

VERSION

Application version

public string VERSION = '3.0.0'

Properties

$fullName

Application full name

protected string|null $fullName = self::FULL_NAME

$name

Application name

protected string|null $name = self::NAME

$version

Version

protected string|null $version = self::VERSION

Methods

__call()

Magic method to register a route for a whitelisted custom HTTP method

public __call(string $name, array<string|int, mixed> $arguments) : static
Parameters
$name : string
$arguments : array<string|int, mixed>
Tags
throws
Exception
Return values
static

__construct()

Constructor

public __construct() : mixed

Instantiate an application object

Optional parameters are a service locator instance, a router instance, an event manager instance or a configuration object or array

__get()

Get a pre-designated value from the application object

public __get(string $name) : mixed
Parameters
$name : string

__isset()

Determine if a pre-designated value in the application object exists

public __isset(string $name) : bool
Parameters
$name : string
Return values
bool

__set()

Set a pre-designated value in the application object

public __set(string $name, mixed $value) : void
Parameters
$name : string
$value : mixed
Tags
throws
Exception

__unset()

Unset a pre-designated value in the application object

public __unset(string $name) : void
Parameters
$name : string

addCustomMethod()

Add a custom HTTP method to the whitelist

public addCustomMethod(string $method) : static
Parameters
$method : string
Tags
throws
Exception
Return values
static

addCustomMethods()

Add multiple custom HTTP methods to the whitelist

public addCustomMethods(array<string|int, mixed> $methods) : static
Parameters
$methods : array<string|int, mixed>
Tags
throws
Exception
Return values
static

addMiddleware()

Add a middleware handler

public addMiddleware(mixed $handler[, mixed $name = null ]) : static
Parameters
$handler : mixed
$name : mixed = null
Return values
static

addRoute()

Add a route

public addRoute(string $route, mixed $controller) : static
Parameters
$route : string
$controller : mixed
Return values
static

addRoutes()

Add routes

public addRoutes(array<string|int, mixed> $routes) : static
Parameters
$routes : array<string|int, mixed>
Return values
static

autoloader()

Get the autoloader object

public autoloader() : ClassLoader|null
Return values
ClassLoader|null

bootstrap()

Bootstrap the application, creating the required objects if they haven't been created yet and registering with the autoloader, adding routes, services and events

public bootstrap([ClassLoader|null $autoloader = null ]) : static
Parameters
$autoloader : ClassLoader|null = null
Tags
throws
Exception|Exception|Exception
Return values
static

check()

Application install check (post-install-cmd for main framework installation)

public static check() : void

cliError()

CLI error handler method

public cliError(Exception $exception[, bool $exit = true ]) : void
Parameters
$exception : Exception
$exit : bool = true

connect()

Add a CONNECT route

public connect(string $route, mixed $controller) : static
Parameters
$route : string
$controller : mixed
Tags
throws
Exception
Return values
static

delete()

Add a DELETE route

public delete(string $route, mixed $controller) : static
Parameters
$route : string
$controller : mixed
Tags
throws
Exception
Return values
static

env()

Get environment value

public env(string $key[, mixed $default = null ]) : mixed
Parameters
$key : string
$default : mixed = null

environment()

Get application environment

public environment([mixed $env = null ]) : string|null|bool
Parameters
$env : mixed = null
Return values
string|null|bool

get()

Add a GET route

public get(string $route, mixed $controller) : static
Parameters
$route : string
$controller : mixed
Tags
throws
Exception
Return values
static

getMiddleware()

Get middleware

public getMiddleware(mixed $name) : mixed
Parameters
$name : mixed

getService()

Get a service

public getService(string $name) : mixed
Parameters
$name : string
Tags
throws
Exception

hasCustomMethod()

Determine if a custom HTTP method has been whitelisted

public hasCustomMethod(string $method) : bool
Parameters
$method : string
Tags
throws
Exception
Return values
bool

hasFullName()

Determine if the full name is set

public hasFullName() : bool
Return values
bool

hasVersion()

Determine if version has been set

public hasVersion() : bool
Return values
bool

head()

Add a HEAD route

public head(string $route, mixed $controller) : static
Parameters
$route : string
$controller : mixed
Tags
throws
Exception
Return values
static

init()

Initialize the application

public init() : static
Return values
static

initDb()

Initialize database service

public initDb(array<string|int, mixed> $database) : void
Parameters
$database : array<string|int, mixed>
Tags
throws
Exception

isDev()

Check if application environment is dev

public isDev() : bool
Return values
bool

isDown()

Check if application is in maintenance mode

public isDown() : bool
Return values
bool

isLocal()

Check if application environment is local

public isLocal() : bool
Return values
bool

isProduction()

Check if application environment is production

public isProduction() : bool
Return values
bool

isRegistered()

Determine whether a module is registered with the application object

public isRegistered(string $name) : bool
Parameters
$name : string
Return values
bool

isStaging()

Check if application environment is staging

public isStaging() : bool
Return values
bool

isTesting()

Check if application environment is testing

public isTesting() : bool
Return values
bool

isUp()

Check if application is in not maintenance mode

public isUp() : bool
Return values
bool

mergeApplication()

Merge another application's services, middleware, events and config into this application

public mergeApplication(Application $application[, bool $preserveConfig = false ][, array<string|int, mixed> $configExclude = [] ]) : static
Parameters
$application : Application
$preserveConfig : bool = false
$configExclude : array<string|int, mixed> = []
Return values
static

mergeConfig()

Merge new or altered config values with the existing config values

public mergeConfig(mixed $config[, bool $preserve = false ][, array<string|int, mixed> $exclude = [] ]) : AbstractApplication
Parameters
$config : mixed
$preserve : bool = false
$exclude : array<string|int, mixed> = []
Tags
throws
Exception
Return values
AbstractApplication

mergeEvents()

Merge another event manager's listeners into this application's event manager, combining listeners for shared event names instead of replacing them

public mergeEvents(Manager $events) : static
Parameters
$events : Manager
Return values
static

mergeMiddleware()

Merge another middleware manager's items into this application's middleware manager

public mergeMiddleware(Manager $middleware) : static
Parameters
$middleware : Manager
Return values
static

mergeServices()

Merge another service locator's items into this application's service locator

public mergeServices(Locator $services) : static
Parameters
$services : Locator
Return values
static

name()

Get application name (alias method)

public name() : string|null
Return values
string|null

off()

Detach an event. Default hook-points are:

public off(string $name, mixed $action) : static

app.init app.route.pre app.dispatch.pre app.dispatch.post app.error

Parameters
$name : string
$action : mixed
Return values
static

offsetExists()

Determine if a pre-designated value in the application object exists

public offsetExists(mixed $offset) : bool
Parameters
$offset : mixed
Return values
bool

offsetGet()

Get a pre-designated value from the application object

public offsetGet(mixed $offset) : mixed
Parameters
$offset : mixed

offsetSet()

Set a pre-designated value in the application object

public offsetSet(mixed $offset, mixed $value) : void
Parameters
$offset : mixed
$value : mixed
Tags
throws
Exception

offsetUnset()

Unset a pre-designated value in the application object

public offsetUnset(mixed $offset) : void
Parameters
$offset : mixed

on()

Attach an event. Default hook-points are:

public on(string $name, mixed $action[, int $priority = 0 ]) : static

app.init app.route.pre app.dispatch.pre app.dispatch.post app.error

Parameters
$name : string
$action : mixed
$priority : int = 0
Return values
static

options()

Add an OPTIONS route

public options(string $route, mixed $controller) : static
Parameters
$route : string
$controller : mixed
Tags
throws
Exception
Return values
static

patch()

Add a PATCH route

public patch(string $route, mixed $controller) : static
Parameters
$route : string
$controller : mixed
Tags
throws
Exception
Return values
static

post()

Add a POST route

public post(string $route, mixed $controller) : static
Parameters
$route : string
$controller : mixed
Tags
throws
Exception
Return values
static

prepare()

Prepare application - determine if the route is a kettle native route or a custom application route

public prepare() : Application
Return values
Application

put()

Add a PUT route

public put(string $route, mixed $controller) : static
Parameters
$route : string
$controller : mixed
Tags
throws
Exception
Return values
static

register()

Register a module with the module manager object

public register(mixed $module[, string|null $name = null ]) : static
Parameters
$module : mixed
$name : string|null = null
Tags
throws
Exception|Exception
Return values
static

registerAutoloader()

Register the autoloader object with the application

public registerAutoloader(ClassLoader $autoloader) : static
Parameters
$autoloader : ClassLoader
Return values
static

registerEvents()

Register a new event manager object with the application

public registerEvents(Manager $events) : static
Parameters
$events : Manager
Return values
static

registerMiddleware()

Register a new middleware manager object with the application

public registerMiddleware(Manager $middleware) : static
Parameters
$middleware : Manager
Return values
static

registerModules()

Register a new module manager object with the application

public registerModules(Manager $modules) : static
Parameters
$modules : Manager
Return values
static

registerRouter()

Register a new router object with the application

public registerRouter(Router $router) : static
Parameters
$router : Router
Return values
static

registerServices()

Register a new service locator object with the application

public registerServices(Locator $services) : static
Parameters
$services : Locator
Return values
static

removeMiddleware()

Remove middleware

public removeMiddleware(mixed $name) : static
Parameters
$name : mixed
Return values
static

removeService()

Remove a service

public removeService(string $name) : static
Parameters
$name : string
Return values
static

run()

Run the application

public run([bool $exit = true ][, string|array<string|int, mixed>|null $forceRoute = null ]) : void
Parameters
$exit : bool = true
$forceRoute : string|array<string|int, mixed>|null = null
Tags
throws
Throwable

setFullName()

Set full name

public setFullName(string $fullName) : static
Parameters
$fullName : string
Return values
static

setName()

Set name

public setName(string $name) : static
Parameters
$name : string
Return values
static

setService()

Set a service

public setService(string $name, mixed $service) : static
Parameters
$name : string
$service : mixed
Tags
throws
Exception
Return values
static

setVersion()

Set version

public setVersion(string $version) : static
Parameters
$version : string
Return values
static

trace()

Add a TRACE route

public trace(string $route, mixed $controller) : static
Parameters
$route : string
$controller : mixed
Tags
throws
Exception
Return values
static

trigger()

Trigger an event

public trigger(string $name[, array<string|int, mixed> $args = [] ]) : static
Parameters
$name : string
$args : array<string|int, mixed> = []
Return values
static

unregister()

Unregister a module with the module manager object

public unregister(string $name) : static
Parameters
$name : string
Return values
static

url()

Get application URL

public url() : string|null
Return values
string|null

applyConfigEvents()

If events are set in the app config, register them with the application

protected applyConfigEvents() : void

applyConfigMetadata()

Set the app name and version from config, if present

protected applyConfigMetadata() : void

applyConfigMiddleware()

If middleware is defined in the app config, register them with the application

protected applyConfigMiddleware() : void

applyConfigRoutes()

If routes are set in the app config, register them with the application

protected applyConfigRoutes() : void

applyConfigServices()

If services are set in the app config, register them with the application

protected applyConfigServices() : void

buildDispatch()

Build the dispatch closure and its params for the given dispatchable - used both as the deferred callable the middleware pipeline invokes once its handler chain completes, and by invokeDispatchable() to call the same logic immediately when there's no middleware to defer to

protected buildDispatch(mixed $dispatchable) : array<string|int, mixed>
Parameters
$dispatchable : mixed
Return values
array<string|int, mixed>

hasPsr15Middleware()

Determine whether a PSR-15 middleware adapter is registered in the middleware stack

protected hasPsr15Middleware() : bool
Return values
bool

httpRouter()

Get the active HTTP router, guarding that the application is routed for HTTP

protected httpRouter() : Router
Tags
throws
Exception
Return values
Router

initializeDefaultManagers()

Instantiate and register any manager objects not already set

protected initializeDefaultManagers() : void

invokeDispatchable()

Invoke the dispatchable directly, bypassing the middleware pipeline

protected invokeDispatchable(mixed $dispatchable) : void
Parameters
$dispatchable : mixed

loadHelperFunctions()

Load helper functions, unless disabled by config

protected loadHelperFunctions() : void

registerConfiguredAutoloaderPrefix()

If the autoloader is set and the application config has a defined prefix and src, register with the autoloader

protected registerConfiguredAutoloaderPrefix() : void

renderMaintenanceResponse()

Render a default maintenance-mode response for route targets that aren't a Dispatch\MaintenanceInterface (closures, callables) and so have no custom maintenance action of their own to run

protected renderMaintenanceResponse(bool $exit) : void
Parameters
$exit : bool

resolveMiddlewareRequest()

Resolve the request object to pass into the middleware pipeline

protected resolveMiddlewareRequest(mixed $dispatchable) : mixed
Parameters
$dispatchable : mixed

        
On this page

Search results