sebaks/zend-mvc-controller

There is no license information available for the latest version (0.1.9) of this package.

0.1.9 2017-03-22 10:47 UTC

This package is not auto-updated.

Last update: 2024-11-09 19:52:12 UTC


README

Build Status codecov.io

Zend MVC controller implementation

This is controller implementation for Zend MVC builds on sebaks/controller.

Most controllers must do

  1. Check if that controller\action can be accessed by called method (GET, POST, PUT etc.), if not - rise exception.
  2. Process request (this is responsibility of sebaks/controller).
  3. Validate request criteria.
  4. Validate request data.
  5. Process request (run any domain service).
  6. Collect errors.
  7. Collect result.
  8. Rise exceptions if error exists.
  9. Redirect to next page (if define).
  10. Setup ViewModel.
  11. Setup MVC Event.

That solution allow to customize any flow parameter and increases code reuse.

Installation

  1. Install it via composer by running:

    composer require sebaks/zend-mvc-controller
  2. Copy ./vendor/sebaks/zend-mvc-controller/config/sebaks-zend-mvc-controller.global.php.dist to ./config/autoload/sebaks-zend-mvc-controller.global.php.

Configuration

You can configure that controller with route params:

'router' => [
    'routes' => [
        'user-update-profile' => [
            'type' => 'Segment',
            'options' => [
                'route'    => '/profile/update',
                'defaults' => [
                    'controller' => 'sebaks-zend-mvc-controller',
                    'allowedMethods' => ['POST'],
                    'criteriaValidator' => Users\Action\Profile\CriteriaValidator::class,
                    'changesValidator' => Users\Action\Profile\ChangesValidator::class,
                    'service' => Users\Action\Profile\Updater::class,
                    'request' => Sebaks\Controller\RequestInterface::class,
                    'routeCriteria' => 'id'
                    'response' => Sebaks\Controller\ResponseInterface::class,
                    'redirectTo' => 'admin-user-list',
                    'viewModel' => Users\User\ViewModel::class,
                ],
            ],
        ],
    ],
],

criteriaValidator, changesValidator - if not defined, will be created Sebaks\Controller\EmptyValidator
service - if not defined, will be created Sebaks\Controller\EmptyService
request - if not defined, will be created Sebaks\Controller\Request
response - if not defined, will be created Sebaks\Controller\Response
viewModel - if not defined, will be created Zend\View\Model\ViewModel