Abstract RESTful controller

Convenience methods for pre-built plugins (@see __call):

 Methods

Method overloading: return/call plugins

__call(string $method, array $params) : mixed
Inherited

If the plugin is a functor, call it, passing the parameters provided. Otherwise, return the plugin instance.

inherited_from \Zend\Mvc\Controller\AbstractController::__call()

Parameters

$method

string

$params

array

Returns

mixed

Register a handler for a custom HTTP method

addHttpMethodHandler(string $method, \Zend\Mvc\Controller\Callable $handler) : \Zend\Mvc\Controller\AbstractRestfulController

This method allows you to handle arbitrary HTTP method types, mapping them to callables. Typically, these will be methods of the controller instance: e.g., array($this, 'foobar'). The typical place to register these is in your constructor.

Additionally, as this map is checked prior to testing the standard HTTP methods, this is a way to override what methods will handle the standard HTTP methods. However, if you do this, you will have to retrieve the identifier and any request content manually.

Callbacks will be passed the current MvcEvent instance.

To retrieve the identifier, you can use "$id = $this->getIdentifier($routeMatch, $request)", passing the appropriate objects.

To retrieve the body content data, use "$data = $this->processBodyContent($request)"; that method will return a string, array, or, in the case of JSON, an object.

Parameters

$method

string

$handler

\Zend\Mvc\Controller\Callable

Returns

Create a new resource

create(mixed $data) : mixed

Parameters

$data

mixed

Returns

mixed

Delete an existing resource

delete(mixed $id) : mixed

Parameters

$id

mixed

Returns

mixed

Delete the entire resource collection

deleteList() : mixed

Not marked as abstract, as that would introduce a BC break (introduced in 2.1.0); instead, raises an exception if not implemented.

Returns

mixed

Dispatch a request

dispatch(\Zend\Stdlib\RequestInterface $request, \Zend\Stdlib\ResponseInterface $response) : mixed | \Zend\Stdlib\ResponseInterface

If the route match includes an "action" key, then this acts basically like a standard action controller. Otherwise, it introspects the HTTP method to determine how to handle the request, and which method to delegate to.

events dispatch.pre, dispatch.post

Parameters

Exceptions

\Zend\Mvc\Exception\InvalidArgumentException

Returns

Return single resource

get(mixed $id) : mixed

Parameters

$id

mixed

Returns

mixed

Get the attached event

getEvent() : \Zend\Mvc\MvcEvent
Inherited

Will create a new MvcEvent if none provided.

inherited_from \Zend\Mvc\Controller\AbstractController::getEvent()

Returns

Retrieve the event manager

getEventManager() : \Zend\EventManager\EventManagerInterface
Inherited

Lazy-loads an EventManager instance if none registered.

inherited_from \Zend\Mvc\Controller\AbstractController::getEventManager()

Returns

Retrieve the route match/query parameter name containing the identifier

getIdentifierName() : string

Returns

string

Return list of resources

getList() : mixed

Returns

mixed

Transform an "action" token into a method name

getMethodFromAction(string $action) : string
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::getMethodFromAction()

Parameters

$action

string

Returns

string

Get plugin manager

getPluginManager() : \Zend\Mvc\Controller\PluginManager
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::getPluginManager()

Returns

Get request object

getRequest() : \Zend\Stdlib\RequestInterface
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::getRequest()

Returns

Get response object

getResponse() : \Zend\Stdlib\ResponseInterface
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::getResponse()

Returns

Retrieve serviceManager instance

getServiceLocator() : \Zend\ServiceManager\ServiceLocatorInterface
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::getServiceLocator()

Returns

Retrieve HEAD metadata for the resource

head(null | mixed $id) : mixed

Not marked as abstract, as that would introduce a BC break (introduced in 2.1.0); instead, raises an exception if not implemented.

Parameters

$id

nullmixed

Returns

mixed

Basic functionality for when a page is not available

notFoundAction() : array

Returns

array

Handle the request

onDispatch(\Zend\Mvc\MvcEvent $e) : mixed

todo try-catch in "patch" for patchList should be removed in the future

Parameters

Exceptions

\Zend\Mvc\Exception\DomainException if no route matches in event or invalid HTTP method

Returns

mixed

Respond to the OPTIONS method

options() : mixed

Typically, set the Allow header with allowed HTTP methods, and return the response.

Not marked as abstract, as that would introduce a BC break (introduced in 2.1.0); instead, raises an exception if not implemented.

Returns

mixed

Respond to the PATCH method

patch($id, $data) 

Not marked as abstract, as that would introduce a BC break (introduced in 2.1.0); instead, raises an exception if not implemented.

Parameters

$id

$data

Modify a resource collection withou completely replacing it

patchList(mixed $data) : mixed

Not marked as abstract, as that would introduce a BC break (introduced in 2.2.0); instead, raises an exception if not implemented.

Parameters

$data

mixed

Returns

mixed

Get plugin instance

plugin(string $name, array $options) : mixed
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::plugin()

Parameters

$name

string

Name of plugin to return

$options

nullarray

Options to pass to plugin constructor (if not already instantiated)

Returns

mixed

Process post data and call create

processPostData(\Zend\Stdlib\RequestInterface $request) : mixed

Parameters

Returns

mixed

Replace an entire resource collection

replaceList(mixed $data) : mixed

Not marked as abstract, as that would introduce a BC break (introduced in 2.1.0); instead, raises an exception if not implemented.

Parameters

$data

mixed

Returns

mixed

Check if request has certain content type

requestHasContentType(\Zend\Stdlib\RequestInterface $request, string | null $contentType) : bool

Parameters

$contentType

stringnull

Returns

bool

Set an event to use during dispatch

setEvent(\Zend\EventManager\EventInterface $e) : void
Inherited

By default, will re-cast to MvcEvent if another event type is provided.

inherited_from \Zend\Mvc\Controller\AbstractController::setEvent()

Parameters

Set the event manager instance used by this context

setEventManager(\Zend\EventManager\EventManagerInterface $events) : \Zend\Mvc\Controller\AbstractController
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::setEventManager()

Parameters

Returns

Set the route match/query parameter name containing the identifier

setIdentifierName(string $name) : \Zend\Mvc\Controller\self

Parameters

$name

string

Returns

\Zend\Mvc\Controller\self

Set plugin manager

setPluginManager(\Zend\Mvc\Controller\PluginManager $plugins) : \Zend\Mvc\Controller\AbstractController
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::setPluginManager()

Parameters

Returns

Set serviceManager instance

setServiceLocator(\Zend\ServiceManager\ServiceLocatorInterface $serviceLocator) : void
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::setServiceLocator()

Parameters

Update an existing resource

update(mixed $id, mixed $data) : mixed

Parameters

$id

mixed

$data

mixed

Returns

mixed

Register the default events for this controller

attachDefaultListeners() : void
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::attachDefaultListeners()

Retrieve the identifier, if any

getIdentifier(\Zend\Mvc\Router\RouteMatch $routeMatch, \Zend\Stdlib\RequestInterface $request) : false | mixed

Attempts to see if an identifier was passed in either the URI or the query string, returning it if found. Otherwise, returns a boolean false.

Parameters

Returns

falsemixed

Process the raw body content

processBodyContent(mixed $request) : object | string | array

If the content-type indicates a JSON payload, the payload is immediately decoded and the data returned. Otherwise, the data is passed to parse_str(). If that function returns a single-member array with a key of "0", the method assumes that we have non-urlencoded content and returns the raw content; otherwise, the array created is returned.

Parameters

$request

mixed

Returns

objectstringarray

 Properties

 

$contentTypes

$contentTypes : array

 

Map of custom HTTP methods and their handlers

$customHttpMethodsMap : array

 

$event

$event : \Zend\EventManager\EventInterface
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::$$event
 

$eventIdentifier

$eventIdentifier : string

 

$events

$events : \Zend\EventManager\EventManagerInterface
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::$$events
 

Name of request or query parameter containing identifier

$identifierName : string

 

<p>From Zend\Json\Json</p>

$jsonDecodeType : int

 

$plugins

$plugins : \Zend\Mvc\Controller\PluginManager
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::$$plugins
 

$request

$request : \Zend\Stdlib\RequestInterface
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::$$request
 

$response

$response : \Zend\Stdlib\ResponseInterface
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::$$response
 

$serviceLocator

$serviceLocator : \Zend\ServiceManager\ServiceLocatorInterface
Inherited

inherited_from \Zend\Mvc\Controller\AbstractController::$$serviceLocator

 Constants

 

CONTENT_TYPE_JSON

CONTENT_TYPE_JSON