App
extends Router
in package
Leaf PHP Framework -------- The easiest way to build simple but powerful apps and APIs quickly.
Tags
Table of Contents
Properties
- $appRoutes : mixed
- Sorted list of routes and their handlers
- $downHandler : mixed
- Callable to be invoked if app is down
- $errorHandler : Run
- Callable to be invoked on application error
- $groupRoute : mixed
- Current group base path
- $hooks : mixed
- 'Middleware' to run at specific times
- $middleware : mixed
- All middleware that should be run
- $namedMiddleware : mixed
- Named middleware
- $namedRoutes : mixed
- All named routes
- $namespace : mixed
- Default controller namespace
- $notFoundHandler : mixed
- Callable to be invoked if no matching routes are found
- $routeGroupMiddleware : mixed
- Route based middleware
- $routes : mixed
- All added routes and their handlers
- $serverBasePath : mixed
- The Server Base Path for Router Execution
Methods
- __call() : mixed
- __construct() : mixed
- Constructor
- __get() : mixed
- __isset() : mixed
- __set() : mixed
- __unset() : mixed
- all() : mixed
- Add a route with all available HTTP methods
- apiResource() : mixed
- Create a resource route for using controllers without the create and edit actions.
- attach() : mixed
- Run code that can change the behaviour of Leaf *Usually used by library creators*
- attachView() : mixed
- Attach a view engine to Leaf
- config() : mixed
- Configure Leaf Settings
- cors() : mixed
- Evade CORS errors
- csrf() : mixed
- Add CSRF protection to your app
- delete() : mixed
- Add a route with DELETE method
- environment() : mixed
- Run mode-specific code. Unlike script, this runs immediately.
- findRoute() : array<string|int, mixed>
- Find the current route
- get() : mixed
- Add a route with GET method
- getBasePath() : string
- Return server base Path, and define it if isn't defined.
- getCurrentUri() : string
- Define the current relative URI.
- getNamespace() : string
- Get the global handler namespace.
- getRoute() : array<string|int, mixed>
- Get route info of the current route
- group() : mixed
- Alias for mount
- halt() : mixed
- Halt
- handleUrl() : mixed
- Force call the Leaf URL handler
- head() : mixed
- Add a route with HEAD method
- headers() : Headers
- Get the Request Headers
- hook() : mixed
- Add a router hook
- inertia() : mixed
- Add a route that renders an inertia view
- logger() : Log|null|void
- Get application log
- match() : mixed
- Store a route and it's handler
- mount() : mixed
- Mounts a collection of callbacks onto a base route.
- options() : mixed
- Add a route with OPTIONS method
- patch() : mixed
- Add a route with PATCH method
- post() : mixed
- Add a route with POST method
- push() : mixed
- Redirect to another route
- put() : mixed
- Add a route with PUT method
- redirect() : mixed
- Add a route that sends an HTTP redirect
- register() : mixed
- This method adds a method to the global leaf instance Register a method and use it globally on the Leaf Object
- registerMiddleware() : mixed
- Register a middleware in your Leaf application by name
- request() : Request
- Get the Request object
- resource() : mixed
- Create a resource route for using controllers.
- response() : Response
- Get the Response object
- root() : string
- Get the absolute path to this Leaf application's root directory
- route() : string
- Get route url by defined route name
- routes() : array<string|int, mixed>
- Get all routes registered in your leaf app
- run() : mixed
- Dispatch your application routes
- script() : mixed
- Create mode-specific code
- set404() : mixed
- Set the 404 handling function.
- setBasePath() : mixed
- Explicilty sets the server base path. To be used when your entry script path differs from your entry URLs.
- setDown() : mixed
- Set a custom maintenance mode callback.
- setErrorHandler() : mixed
- Set a custom error screen.
- setNamespace() : mixed
- Set a global namespace for your handlers
- use() : mixed
- Add middleware
- view() : mixed
- Add a route that renders a view
- vite() : mixed
- Tune vite to work without Leaf MVC
- ws() : mixed
- Create a route handled by websocket (requires Eien module)
- loadConfig() : mixed
- mapHandler() : array<string|int, mixed>
- Map handler and options
- setupErrorHandler() : mixed
- callHook() : mixed
- Call a router hook
- handle() : int
- Handle a set of routes: if a match is found, execute the relating handling function.
- invoke() : mixed
- setupDefaultContainer() : mixed
Properties
$appRoutes
Sorted list of routes and their handlers
protected
static mixed
$appRoutes
= []
$downHandler
Callable to be invoked if app is down
protected
static mixed
$downHandler
$errorHandler
Callable to be invoked on application error
protected
Run
$errorHandler
$groupRoute
Current group base path
protected
static mixed
$groupRoute
= ''
$hooks
'Middleware' to run at specific times
protected
static mixed
$hooks
= ['router.before' => false, 'router.before.route' => false, 'router.after.route' => false, 'router.after' => false]
$middleware
All middleware that should be run
protected
static mixed
$middleware
= []
$namedMiddleware
Named middleware
protected
static mixed
$namedMiddleware
= []
$namedRoutes
All named routes
protected
static mixed
$namedRoutes
= []
$namespace
Default controller namespace
protected
static mixed
$namespace
= ''
$notFoundHandler
Callable to be invoked if no matching routes are found
protected
static mixed
$notFoundHandler
$routeGroupMiddleware
Route based middleware
protected
static mixed
$routeGroupMiddleware
= []
$routes
All added routes and their handlers
protected
static mixed
$routes
= []
$serverBasePath
The Server Base Path for Router Execution
protected
static mixed
$serverBasePath
= ''
Methods
__call()
public
__call(mixed $method, mixed $args) : mixed
Parameters
- $method : mixed
- $args : mixed
__construct()
Constructor
public
__construct([array<string|int, mixed> $userSettings = [] ]) : mixed
Parameters
- $userSettings : array<string|int, mixed> = []
-
Associative array of application settings
__get()
public
__get(mixed $name) : mixed
Parameters
- $name : mixed
__isset()
public
__isset(mixed $name) : mixed
Parameters
- $name : mixed
__set()
public
__set(mixed $name, mixed $value) : mixed
Parameters
- $name : mixed
- $value : mixed
__unset()
public
__unset(mixed $name) : mixed
Parameters
- $name : mixed
all()
Add a route with all available HTTP methods
public
static all(string $pattern, mixed $handler) : mixed
Parameters
- $pattern : string
-
The route pattern/path to match
- $handler : mixed
apiResource()
Create a resource route for using controllers without the create and edit actions.
public
static apiResource(string $pattern, array<string|int, mixed>|string $controller) : mixed
This creates a routes that implement CRUD functionality in a controller
/posts
creates:
/posts
- GET | HEAD - Controller@index/posts
- POST - Controller@store/posts/{id}
- GET | HEAD - Controller@show/posts/{id}/edit
- POST | PUT | PATCH - Controller@update/posts/{id}/delete
- POST | DELETE - Controller@destroy
Parameters
- $pattern : string
-
The base route to use eg: /post
- $controller : array<string|int, mixed>|string
-
to handle route eg: PostController
attach()
Run code that can change the behaviour of Leaf *Usually used by library creators*
public
attach(callable $code) : mixed
Parameters
- $code : callable
attachView()
Attach a view engine to Leaf
public
attachView(mixed $view[, mixed $name = null ]) : mixed
Parameters
- $view : mixed
-
The view engine to attach
- $name : mixed = null
config()
Configure Leaf Settings
public
config(string|array<string|int, mixed> $name[, mixed $value = null ]) : mixed
This method defines application settings and acts as a setter and a getter.
If only one argument is specified and that argument is a string, the value of the setting identified by the first argument will be returned, or NULL if that setting does not exist.
If only one argument is specified and that argument is an associative array, the array will be merged into the existing application settings.
If two arguments are provided, the first argument is the name of the setting to be created or updated, and the second argument is the setting value.
Parameters
- $name : string|array<string|int, mixed>
-
If a string, the name of the setting to set or retrieve. Else an associated array of setting names and values
- $value : mixed = null
-
If name is a string, the value of the setting identified by $name
Return values
mixed —The value of a setting if only one argument is a string
cors()
Evade CORS errors
public
cors([mixed $options = [] ]) : mixed
Parameters
- $options : mixed = []
-
Config for cors
csrf()
Add CSRF protection to your app
public
csrf([array<string|int, mixed> $options = [] ]) : mixed
Parameters
- $options : array<string|int, mixed> = []
-
Config for csrf
delete()
Add a route with DELETE method
public
static delete(string $pattern, mixed $handler) : mixed
Parameters
- $pattern : string
-
The route pattern/path to match
- $handler : mixed
environment()
Run mode-specific code. Unlike script, this runs immediately.
public
static environment(string $mode, callable $callback) : mixed
Parameters
- $mode : string
-
The mode to run code in
- $callback : callable
-
The code to run in selected mode.
findRoute()
Find the current route
public
static findRoute([array<string|int, mixed>|null $routes = null ][, string|null $uri = null ][, mixed $returnFirst = true ]) : array<string|int, mixed>
Parameters
- $routes : array<string|int, mixed>|null = null
- $uri : string|null = null
- $returnFirst : mixed = true
Return values
array<string|int, mixed>get()
Add a route with GET method
public
static get(string $pattern, mixed $handler) : mixed
Parameters
- $pattern : string
-
The route pattern/path to match
- $handler : mixed
getBasePath()
Return server base Path, and define it if isn't defined.
public
static getBasePath() : string
Return values
stringgetCurrentUri()
Define the current relative URI.
public
static getCurrentUri() : string
Return values
stringgetNamespace()
Get the global handler namespace.
public
static getNamespace() : string
Return values
string —The given namespace if exists
getRoute()
Get route info of the current route
public
static getRoute() : array<string|int, mixed>
Return values
array<string|int, mixed> —The route info array
group()
Alias for mount
public
static group(string $path, callable|array<string|int, mixed> $handler) : mixed
Parameters
- $path : string
-
The route sub pattern/path to mount the callbacks on
- $handler : callable|array<string|int, mixed>
-
The callback method
halt()
Halt
public
static halt(int $status[, string $message = '' ]) : mixed
Stop the application and immediately send the response with a specific status and body to the HTTP client. This may send any type of response: info, success, redirect, client error, or server error.
Parameters
- $status : int
-
The HTTP response status
- $message : string = ''
-
The HTTP response body
handleUrl()
Force call the Leaf URL handler
public
static handleUrl(string $method, string $url) : mixed
Parameters
- $method : string
-
The method to call
- $url : string
-
The uri to force
head()
Add a route with HEAD method
public
static head(string $pattern, mixed $handler) : mixed
Parameters
- $pattern : string
-
The route pattern/path to match
- $handler : mixed
headers()
Get the Request Headers
public
headers() : Headers
Return values
Headershook()
Add a router hook
public
static hook(string $name, callable|null $handler) : mixed
Available hooks
- router.before
- router.before.route
- router.before.dispatch
- router.after.dispatch
- router.after.route
- router.after
Parameters
- $name : string
-
The hook to set
- $handler : callable|null
-
The hook handler
inertia()
Add a route that renders an inertia view
public
static inertia(string $pattern, string $view[, array<string|int, mixed> $data = [] ]) : mixed
Parameters
- $pattern : string
-
The route pattern/path to match
- $view : string
-
The view to render
- $data : array<string|int, mixed> = []
-
The data to pass to the view
logger()
Get application log
public
logger() : Log|null|void
Return values
Log|null|voidmatch()
Store a route and it's handler
public
static match(string $allowedMethods, string $pattern, string|array<string|int, mixed>|callable $handler) : mixed
Parameters
- $allowedMethods : string
- $pattern : string
-
The route pattern/path to match
- $handler : string|array<string|int, mixed>|callable
-
The handler for route when matched
mount()
Mounts a collection of callbacks onto a base route.
public
static mount(string $path, callable|array<string|int, mixed> $handler) : mixed
Parameters
- $path : string
-
The route sub pattern/path to mount the callbacks on
- $handler : callable|array<string|int, mixed>
-
The callback method
options()
Add a route with OPTIONS method
public
static options(string $pattern, mixed $handler) : mixed
Parameters
- $pattern : string
-
The route pattern/path to match
- $handler : mixed
patch()
Add a route with PATCH method
public
static patch(string $pattern, mixed $handler) : mixed
Parameters
- $pattern : string
-
The route pattern/path to match
- $handler : mixed
post()
Add a route with POST method
public
static post(string $pattern, mixed $handler) : mixed
Parameters
- $pattern : string
-
The route pattern/path to match
- $handler : mixed
push()
Redirect to another route
public
static push(string|array<string|int, mixed> $route[, array<string|int, mixed>|null $data = null ]) : mixed
Use Leaf\Http\Response::redirect
instead
Parameters
- $route : string|array<string|int, mixed>
-
The route to redirect to
- $data : array<string|int, mixed>|null = null
-
Data to pass to the next route
put()
Add a route with PUT method
public
static put(string $pattern, mixed $handler) : mixed
Parameters
- $pattern : string
-
The route pattern/path to match
- $handler : mixed
redirect()
Add a route that sends an HTTP redirect
public
static redirect(string $from, string $to[, int $status = 302 ]) : mixed
Parameters
- $from : string
-
The url to redirect from
- $to : string
-
The url to redirect to
- $status : int = 302
-
The http status code for redirect
register()
This method adds a method to the global leaf instance Register a method and use it globally on the Leaf Object
public
register(mixed $name, mixed $value) : mixed
Parameters
- $name : mixed
- $value : mixed
registerMiddleware()
Register a middleware in your Leaf application by name
public
registerMiddleware(string $name, callable $middleware) : mixed
Parameters
- $name : string
-
The name of the middleware
- $middleware : callable
-
The middleware to register
request()
Get the Request object
public
request() : Request
Return values
Requestresource()
Create a resource route for using controllers.
public
static resource(string $pattern, array<string|int, mixed>|string $controller) : mixed
This creates a routes that implement CRUD functionality in a controller
/posts
creates:
/posts
- GET | HEAD - Controller@index/posts
- POST - Controller@store/posts/{id}
- GET | HEAD - Controller@show/posts/create
- GET | HEAD - Controller@create/posts/{id}/edit
- GET | HEAD - Controller@edit/posts/{id}/edit
- POST | PUT | PATCH - Controller@update/posts/{id}/delete
- POST | DELETE - Controller@destroy
Parameters
- $pattern : string
-
The base route to use eg: /post
- $controller : array<string|int, mixed>|string
-
to handle route eg: PostController
response()
Get the Response object
public
response() : Response
Return values
Responseroot()
Get the absolute path to this Leaf application's root directory
public
root() : string
This method returns the absolute path to the Leaf application's directory. If the Leaf application is installed in a public-accessible sub-directory, the sub-directory path will be included. This method will always return an absolute path WITH a trailing slash.
Return values
stringroute()
Get route url by defined route name
public
static route(string $routeName[, array<string|int, mixed>|string|null $params = null ]) : string
Parameters
- $routeName : string
- $params : array<string|int, mixed>|string|null = null
Return values
stringroutes()
Get all routes registered in your leaf app
public
static routes() : array<string|int, mixed>
Return values
array<string|int, mixed>run()
Dispatch your application routes
public
static run([callable|null $callback = null ]) : mixed
Parameters
- $callback : callable|null = null
Tags
script()
Create mode-specific code
public
static script(string $mode, callable $callback) : mixed
Parameters
- $mode : string
-
The mode to run code in
- $callback : callable
-
The code to run in selected mode.
set404()
Set the 404 handling function.
public
static set404([object|callable $handler = null ]) : mixed
Parameters
- $handler : object|callable = null
-
The function to be executed
setBasePath()
Explicilty sets the server base path. To be used when your entry script path differs from your entry URLs.
public
static setBasePath(mixed $serverBasePath) : mixed
Parameters
- $serverBasePath : mixed
Tags
setDown()
Set a custom maintenance mode callback.
public
static setDown([callable|null $handler = null ]) : mixed
Parameters
- $handler : callable|null = null
-
The function to be executed
setErrorHandler()
Set a custom error screen.
public
setErrorHandler(mixed $handler) : mixed
Parameters
- $handler : mixed
-
The function to be executed
setNamespace()
Set a global namespace for your handlers
public
static setNamespace(string $namespace) : mixed
Parameters
- $namespace : string
-
The global namespace to set
use()
Add middleware
public
static use(callable|string $middleware) : mixed
This method prepends new middleware to the application middleware stack. The argument must be an instance that subclasses Leaf_Middleware.
Parameters
- $middleware : callable|string
-
The middleware to set
view()
Add a route that renders a view
public
static view(string $pattern, string $view[, array<string|int, mixed> $data = [] ]) : mixed
Parameters
- $pattern : string
-
The route pattern/path to match
- $view : string
-
The view to render
- $data : array<string|int, mixed> = []
-
The data to pass to the view
vite()
Tune vite to work without Leaf MVC
public
vite([mixed $options = ['assets' => '', 'build' => '', 'hotFile' => 'hot'] ]) : mixed
Parameters
- $options : mixed = ['assets' => '', 'build' => '', 'hotFile' => 'hot']
ws()
Create a route handled by websocket (requires Eien module)
public
ws(string $name, callable $callback) : mixed
Parameters
- $name : string
-
The url of the route
- $callback : callable
-
The callback function
Tags
loadConfig()
protected
loadConfig([array<string|int, mixed> $userSettings = [] ]) : mixed
Parameters
- $userSettings : array<string|int, mixed> = []
mapHandler()
Map handler and options
protected
static mapHandler(mixed $handler[, mixed $options = ['name' => null, 'middleware' => null, 'namespace' => null] ]) : array<string|int, mixed>
Parameters
- $handler : mixed
- $options : mixed = ['name' => null, 'middleware' => null, 'namespace' => null]
Return values
array<string|int, mixed>setupErrorHandler()
protected
setupErrorHandler() : mixed
callHook()
Call a router hook
private
static callHook(string $name) : mixed
Parameters
- $name : string
-
The hook to call
handle()
Handle a set of routes: if a match is found, execute the relating handling function.
private
static handle([array<string|int, mixed> $routes = null ][, bool $quitAfterRun = false ][, string|null $uri = null ]) : int
Parameters
- $routes : array<string|int, mixed> = null
-
Collection of route patterns and their handling functions
- $quitAfterRun : bool = false
-
Does the handle function need to quit after one route was matched?
- $uri : string|null = null
-
The URI to call (automatically set if nothing is passed).
Return values
int —The number of routes handled
invoke()
private
static invoke(mixed $handler[, mixed $params = [] ]) : mixed
Parameters
- $handler : mixed
- $params : mixed = []
setupDefaultContainer()
private
setupDefaultContainer() : mixed