Download the PHP package dotkernel/dot-controller without Composer
On this page you can find all versions of the php package dotkernel/dot-controller. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download dotkernel/dot-controller
More information about dotkernel/dot-controller
Files in dotkernel/dot-controller
Package dot-controller
Short Description DotKernel controller like middleware component with plugin support
License MIT
Homepage https://github.com/dotkernel/dot-controller
Informations about the package dot-controller
dot-controller
This is DotKernel's controller package that can be use like middleware inside DotKernel or Mezzio application. It provides base classes for action based controllers similar to Laminas controller component. It is more lightweight though, but supports controller plugins and event listeners
Installation
Install dot-controller
by executing the following Composer command:
Usage
Middleware controllers act as a handler for multiple routes. Some conventions were made:
- register controllers in the routes array just like any mezzio middleware. The requirement is that you should define an
action
route parameter(possibly optional) anywhere inside the route(e.g/user[/{action}]
) - action parameter value is converted to a method name inside the controller. Underscore, dot and line characters are removed and the action name is converted to camel-case suffixed by the string
Action
. For example a route and action pair like/user/forgot-password
will be converted to methodforgotPasswordAction
. - the default action value, if not present in the URI is
index
, so you should always define anindexAction
within your controllers for displaying a default page or redirecting.
In order to create your action based controllers, you must extend the abstract class DotKernel\DotController\AbstractActionController
Example
Creating a UserController with default action and a register action. Will handle routes /user
and /user/register
Then register this controller as a routed middleware in file RoutesDelegator.php
just like a regular middleware.
Multiple controllers for the same route
Use case: You have defined a controller inside some package, with default actions. You want to add actions that fall into the same controller name(or route name more exactly). You want to do this without extending the controller provided by the package. In this case you can do the following
- create your own controller, independent of the package's controller which adds more actions
- Mezzio lets you define an array of middleware for a route, so you can register this controller before the package's controller
Now when a request for this route comes in, your controller will run first. DotKernel controllers are designed to ignore requests that cannot be matched to one of its methods, so if no action matches, it will call the next middleware, in our case, the second controller. If this is the last controller, and action does not match here, it will go to the default 404 Not found page(handled by NotFoundDelegate)
All versions of dot-controller with dependencies
psr/http-message Version ^1.0 || ^2.0
laminas/laminas-servicemanager Version ^3.11.2
dotkernel/dot-event Version ^3.2.0
mezzio/mezzio-template Version ^2.4.0
mezzio/mezzio-helpers Version ^5.8.0