You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 29, 2020. It is now read-only.
It's not triggering a dispatch error, while all other and similar (!) errors do. If we can't locate the controller, we trigger a dispatch error, if we can't locate the action inside that controller, we do not trigger any error. What is the reason for handling similar errors in different ways? If we don't have notFoundController, then why have we notFoundAction?
Because it doesn't trigger any error, it's hard to bypass it. If a custom error and exception handling is needed, we can do it easily by attaching custom listeners to the dispatch.error event, but this doesn't work for notFoundAction becasue the missing event. We cannot use the dispatch event neither: with priority 1 or lower it's too late, notFoundAction already returned a ViewModel with 404 status code, with priority 2 or higher it's too early, we don't have the controller yet.
(The impossibility of retrieving the error type ERROR_CONTROLLER_CANNOT_DISPATCH from the MvcEvent via the getError method can cause further problems too. Let's say we would like to log them...)
Opinions?
The text was updated successfully, but these errors were encountered:
One small remark: removing notFoundAction would allow us to remove Zend\Mvc\View\Http\RouteNotFoundStrategy listener (prepareNotFoundViewModel) from the dispatch event listeners.
+1 I'm having the same issue with the notFoundAction in Zend 3. I want to catch dispatch errors but they are never thrown when an action that doesn't exist is called on a controller.
This issue has been opened since Oct. 2016 but it hasn't been assigned to anyone and it hasn't been labelled?
This issue has been opened since Oct. 2016 but it hasn't been assigned to anyone and it hasn't been labelled?
The zend-mvc component is subject to some changes which are under development.
An assessment of the current problem did not occur previously. So the issue itself is still open and relevant.
The question is simple: do we really need notFoundAction?
https://github.com/zendframework/zend-mvc/blob/master/src/Controller/AbstractActionController.php#L43
I don't think so...
My problems:
What should be done?
(I think it would be better than the old ERROR_CONTROLLER_CANNOT_DISPATCH, which means nothing for me, it's too general.)
After that we could do small simplifications in RouteNotFoundReason, and remove weird lines (!!!) similar to this one: https://github.com/zendframework/zend-mvc/blob/master/src/View/Http/RouteNotFoundStrategy.php#L231
By the way, that line and this switch case (https://github.com/zendframework/zend-mvc/blob/master/src/View/Http/RouteNotFoundStrategy.php#L135) perfectly shows how illogical the error handling in it's current form is. There are errors (retrieved via getError from MvcEvent) and there is ERROR_CONTROLLER_CANNOT_DISPATCH.
(The impossibility of retrieving the error type ERROR_CONTROLLER_CANNOT_DISPATCH from the MvcEvent via the getError method can cause further problems too. Let's say we would like to log them...)
Opinions?
The text was updated successfully, but these errors were encountered: