function applicationStartHandler($params) { $routes =& CSR::get('routes'); $routes['/develop/'] = MODULES_DIR . 'csr/develop/public/index.php'; // Create controller DevelopTools::setContent(array('title' => 'Generate Controller', 'message' => 'フォームからコントローラーとビューの作成を行います。', 'contents' => MODULES_DIR . 'csr/develop/public/generate/index.html', 'path' => 'generate')); $contents =& DevelopTools::contents(); foreach ($contents as $content) { $routes['/develop/' . $content['path']] = $content['contents']; } // routesに追加 $routes['/develop/(.*)'] = MODULES_DIR . 'csr/develop/public/$1'; }
<p>URI Dispatchに失敗しました。</p> <p>意図せずこの画面が表示された場合、このアプリケーションに登録されたURIリストの中から、リクエストURIに該当する物が存在するかどうかを確認してください。存在しない場合に、このエラーが表示されます。</p> <p> あるのに、このエラーが出る場合は、多分バグです。開発者に連絡してください。 http://dev.shamoo.org/ </p> <?php $dispatcher = CSR::get('dispatcher'); $routes = $dispatcher->getRoutes(); $request = $dispatcher->request; ?> <h2>Routes</h2> <ul> <?php foreach ($routes as $uri => $route) { ?> <li><?php echo $uri; ?> => <?php echo $route; ?> </li> <?php } ?> </ul> <h2>RequestURI</h2> <?php echo $request; ?> <h2>解決策</h2>
function mvcActionPhase() { $dispatcher =& CSR::get('dispatcher'); $parsed = $dispatcher->getParsedParams(); list($targetController, $targetAction) = explode('/', $parsed['target']); CSR::set('controllerName', $targetController); CSR::set('actionName', $targetAction); $arguments = isset($parsed['arguments']) ? $parsed['arguments'] : null; if (!($controllerClassName = CSR_Controller::loadController($targetController))) { return CSR_Controller::_missingController(); } // Private action if ($targetAction[0] === '_') { return CSR_Controller::_privateAction(); } $view =& CSR::set('view', new CSR_View()); $controller =& CSR::set('controller', new $controllerClassName()); CSR::addEvent(EVENT_BEFORE_ACTION, array(&$controller, 'beforeAction')); CSR::addEvent(EVENT_AFTER_ACTION, array(&$controller, 'afterAction')); CSR::addEvent(EVENT_BEFORE_RENDER, array(&$controller, 'beforeRender')); CSR::addEvent(EVENT_AFTER_RENDER, array(&$controller, 'afterRender')); $controller->_beforeActionResults = CSR::triggerEvent(EVENT_BEFORE_ACTION); if ($controller->_isExecutable() && !$controller->_executeAction($targetAction, $arguments)) { return CSR_Controller::_undefinedAction(); } CSR::triggerEvent(EVENT_AFTER_ACTION); }