Вы можете расширить AbstractActionController и добавить свои собственные методы или переопределить существующие в соответствии с вашими потребностями.
use Zend\Mvc\Controller\AbstractActionController;
abstract class AbstractCustomController extends AbstractActionController
{
//custom methods
}
как только это будет сделано, вы затем просто получить доступ к пользовательскому контроллеру корыта пространства имен и расширить его с новыми контроллерами.
<?php
namespace Custom\Controller;
use Zend\View\Model\ViewModel;
use Custom\Controller\AbstractCustomController;
class NewController extends AbstractUserController {
//new controller which has access to methods from extented AbstractController
}
Вы не указали, на что именно вы проверяете. Но использование MVC Event может быть более простым и простым в использовании. Вы просто добавить некоторые функции к module.php
, например:
public function onBootstrap(MvcEvent $e) {
//check request
}
Это просто пример и может не работать, хотя. В зависимости от порядка событий запрос не может быть заполнен в данном месте, и вы будете вынуждены использовать другой.
Я однажды использовал onDispatch(\Zend\Mvc\MvcEvent $e)
, предоставленный AbstractActionController
, для задачи, которая была немного похожа на вашу. Но опять же, если бы вы были более конкретными, мы, вероятно, могли бы дать вам более конкретный ответ.
с наилучшими пожеланиями и удачи!
Редактировать: Что касается вашего вопроса в комментарии, вы можете прослушать событие маршрутизации и получить свои параметры там.
//Module.php within your onBootstrap Method
$application = $e->getApplication();
$eventManager = $application->getEventManager();
$eventManager->attach('route', function(MvcEvent $mvcEvent) {
$params = $mvcEvent->getRouteMatch()->getParams();
echo '<pre>'; print_r($params); exit;
}
Благодарим за это. Это событие onBootstrap, в котором я нуждался. Еще один вопрос, хотя, если вы не возражаете - как я могу проверить конкретный параметр запроса из этой функции? Это довольно легко, когда мой код был в AbstractActionController, я просто вызвал: $ this-> params() -> fromQuery ('param_name'); Как добиться того же результата из функции onBootstrap? С помощью параметра $ e event каким-то образом? – eebsie
@eebsie Я обновил свой ответ, это то, что вы ищете? – cptnk
спасибо за ваш ответ, и это может сработать. Но я действительно получил этот бит, работающий с этой строкой кода: '$ e-> getParams() [" request "] -> getQuery() -> offsetGet ('parameter-name');' – eebsie