使用Zend應用程序我需要驗證一個URI是否存在(在我的應用程序的內部),然後將用戶重定向到該頁面。我怎樣才能執行這個控制?如何使用Zend Framework檢查內部URI是否存在?
0
A
回答
0
有幾種方法可以做到這一點...見下文。
我認爲最好的方法是使用ACL MVC規則 - 爲您的應用程序增加安全性,並可用於檢查資源(模型/控制器/操作)是否存在。
選項1
建設類名,並得到它的方法,看看您的行爲存在。無論是使用get_class_methods
或ReflectionClass::getMethods
/**
* @param string $controller name of controller e.g. "index"
* @param string $action name of action e.g. "index", "myAction"
* @param string $module (optional) name of the current module
* @return boolean
*/
protected function _isControllerAction($controller, $action, $module = '')
{
$module = ($module == 'default') ? '' : $module;
$class = ucfirst($module) . ucfirst($controller) . 'Controller';
$methods = get_class_methods($class);
return in_array("{$action}Action", $methods);
}
選項2
您可以檢查模塊/控制器的分派。這不會檢查請求中的操作和混亂情況!如果你這樣做,然後添加額外的代碼來恢復請求狀態。
protected function isDispatchableController()
{
$this->getRequest()
->setModuleName('default')
->setControllerName('index');
$dispatcher = Zend_Controller_Front::getInstance()->getDispatcher();
/* @var $dispatcher Zend_Controller_Dispatcher_Standard */
return $dispatcher->isDispatchable($this->getRequest());
}
選項3
技術上你可以跳過這一切的檢查和落實默認ErrorHandler
,讓它重定向到ErrorController ......然後添加特殊處理404
選項4
如果您使用ACL,您可以檢查資源是否存在,並且用戶是否有權訪問它。 這裏是好文章Zend ACL MVC Integration
0
如果你使用的是Zend Framework 2,這很簡單。
假設我們要檢查URI是否與註冊路由器相匹配,並重定向用戶,如果這與當前url不同。
$goto = 'http://www.mysite.tld/admin';
$request = $this->getRequest();
$request->setUri($goto);
if ($routeToBeMatched = $this->getServiceLocator()->get('Router')->match($request)) {
$currentRouteMatchName = $this->getEvent()->getRouteMatch()->getMatchedRouteName();
if ($routeToBeMatched->getMatchedRouteName() != $currentRouteMatchName) {
return $this->redirect()->toRoute($goto);
}
}
相關問題
- 1. 如何使用Zend Framework檢查控制器是否存在
- 2. 如何檢查headTitle是否已在Zend Framework中使用?
- 3. 檢查一個URI是否存在?
- 4. Zend Framework:檢查路由是否存在於代碼
- 5. Zend Framework和Jquery :: Ajax - 檢查id是否可用 - 如何?
- 6. 檢查是否存在相對URI
- 7. 如何使用zend驗證器檢查文件是否存在 - zend框架2.0
- 8. Zend Framework:檢查Zend View佔位符是否已設置
- 9. 如何使用Zend Framework檢查登錄在線用戶
- 10. 如何檢查TAG是否存在於PHP內部的XML中?
- 11. 如何檢測URI是否是從URI
- 12. 在zend中,如何通過ID檢查會話是否存在?
- 13. 如何檢查變量是否在內存中使用javascript
- 14. Zend Framework 2 - 如何使用外部庫
- 15. 如何檢查.dll是否是.net 2.0 Framework的一部分?
- 16. 使用Zend郵件檢查郵件文件夾是否存在
- 17. Zend Framework內存使用與ZfDebug
- 18. 檢查內存是否低
- 19. zend表單如何檢查是否存在選擇
- 20. 如何使用Robot Framework檢查'Result'對象中是否存在子字符串?
- 21. 如何使用Robot Framework檢查數據庫中是否存在表
- 22. 如何使用PyOpenCL檢查GPU內存是否可用
- 23. Zend Framework - DisplayGroup內部的DisplayGroup
- 24. 試圖檢查內部存儲器中是否存在文件
- 25. 檢查共享內存是否存在,以及是否存在共享內存
- 26. Zend Framework在內存中緩存
- 27. 檢查小部件是否存在(Tkinter)
- 28. 檢查DIV內是否存在元素
- 29. 如何檢查內存是否使用malloc或新分配
- 30. 如何使用jQuery檢查元素ID是否存在如果是外部源?