/** * Routes initialization * * @return Zend_Controller_Router */ protected function _initRoutes() { $this->bootstrapOptions(); $router = new \Zend_Controller_Router_Rewrite(); foreach (\NS\Service\AbstractService::getConfig() as $module => $config) { if ($config->routes) { foreach ($config->routes as $r => $routeConfig) { $router->addRoute($module . '_' . $r, \Zend_Controller_Router_Route::getInstance($routeConfig)); } } } \Zend_Controller_Front::getInstance()->setRouter($router); return $router; }
public function getRouter() { $router = new Zend_Controller_Router_Rewrite(); $router->addRoute('foo', new Zend_Controller_Router_Route_Static('/foo/bar', array())); return $router; }
// http://example.com/ // -> controller => index // action => index // params => array() // http://example.com/user // -> controller => user // action => index // params => array() // http://example.com/user/new // -> controller => user // action => new // params => array() // http://example.com/user/show/id/1/name/adam // -> controller => user // action => show // params => array('id'=>1, 'name'=>'adam) // More complicated routing is available through the RewriteRouter $router = new Zend_Controller_Router_Rewrite(); // RewriteRouter automatically provides the following route: // $this->addRoute('default', // new Zend_Controller_Router_Route(':controller/:action/*', // array('controller' => 'index', 'action' => 'index'))); // If want this, comment the following line // $router->removeDefaultRoutes(); $router->addRoute('build', new Zend_Controller_Router_Route('build', array('controller' => 'search', 'action' => 'build'))); $router->addRoute('newSearch', new Zend_Controller_Router_Route('search', array('controller' => 'search', 'action' => 'new'))); $router->addRoute('showSearch', new Zend_Controller_Router_Route('search/:q', array('controller' => 'search', 'action' => 'show'))); $router->addRoute('tagIndex', new Zend_Controller_Router_Route('tag', array('controller' => 'tag', 'action' => 'index'))); $router->addRoute('tagShow', new Zend_Controller_Router_Route('tag/:tag', array('controller' => 'tag', 'action' => 'show'))); $router->addRoute('standard', new Zend_Controller_Router_Route(':controller/:action/:id')); Zend_Registry::set('router', $router);
/** * @throws Zend_Controller_Router_Exception */ public function testMultipleChainsResettingPathInfoInSegmentBlock() { $foo = new Zend_Controller_Router_Route_SubclassTest('notfoo'); $bar = new Zend_Controller_Router_Route_SubclassTest('bar', array('baz' => 'no')); $chain = $foo->chain($bar); $static = new Zend_Controller_Router_Route_SimpleSubclassTest('/foo', array('foo' => 'foo')); $rewrite = new Zend_Controller_Router_Rewrite(); $rewrite->addRoute('static', $static); // First In Last Out, we want this to be matched against second $rewrite->addRoute('chain', $chain); $request = new Zend_Controller_Router_ChainTest_Request('http://www.zend.com/foo'); $res = $rewrite->route($request); $this->assertEquals('foo', $res->getParam('foo'), 'Route did not match'); $this->assertEquals('static', $rewrite->getCurrentRouteName(), 'Routing did not match expected route'); }
require_once 'Zend/Controller/Router/Route.php'; require_once 'Zend/Registry.php'; require_once 'Zend/Config.php'; require_once 'Zend/Db.php'; require_once 'Zend/Db/Adapter/Pdo/Mysql.php'; Zend_Loader::loadClass('Zend_Config_Ini'); Zend_Loader::loadClass('Zend_Db'); Zend_Loader::loadClass('Zend_Db_Table'); // load configuration $config = new Zend_Config_Ini('../application/config.ini', 'general'); $registry = Zend_Registry::getInstance(); $registry->set('config', $config); // setup database $db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray()); Zend_Db_Table::setDefaultAdapter($db); $router = new Zend_Controller_Router_Rewrite(); $route1 = new Zend_Controller_Router_Route('workout/:id', array('controller' => 'workout', 'action' => 'index')); $route2 = new Zend_Controller_Router_Route('workout/:id/:date', array('controller' => 'workout', 'action' => 'index')); $user = new Zend_Controller_Router_Route('users/:id', array('controller' => 'Users', 'action' => 'index')); $router->addRoute('workout', $route1); $router->addRoute('workout2', $route2); $router->addRoute('users', $user); /** * Setup controller */ $controller = Zend_Controller_Front::getInstance(); $controller->setControllerDirectory('../application/default/controllers')->setRouter($router); /*->setBaseUrl('api/');*/ $controller->throwExceptions(false); // should be turned on in development time $controller->dispatch();
<?php $environment = 'development'; // application/bootstrap.php // // Step 1: APPLICATION CONSTANTS - Set the constants to use in this application. // These constants are accessible throughout the application, even in ini // files. We optionally set APPLICATION_PATH here in case our entry point // isn't index.php (e.g., if required from our test suite or a script). defined('APPLICATION_PATH') or define('APPLICATION_PATH', dirname(__FILE__)); defined('APPLICATION_ENVIRONMENT') or define('APPLICATION_ENVIRONMENT', 'development'); $router = new Zend_Controller_Router_Rewrite(); //$route = new Zend_Controller_Router_Route( $route = new Zend_Controller_Router_Route_Regex('([A-Fa-f0-9]+)', array('controller' => 'url', 'action' => 'redirect'), array('urlid' => 1)); $router->addRoute('index', $route); // Step 2: FRONT CONTROLLER - Get the front controller. // The Zend_Front_Controller class implements the Singleton pattern, which is a // design pattern used to ensure there is only one instance of // Zend_Front_Controller created on each request. $frontController = Zend_Controller_Front::getInstance(); // Step 3: CONTROLLER DIRECTORY SETUP - Point the front controller to your action // controller directory. $frontController->setControllerDirectory(APPLICATION_PATH . '/controllers'); // Step 4: APPLICATION ENVIRONMENT - Set the current environment. // Set a variable in the front controller indicating the current environment -- // commonly one of development, staging, testing, production, but wholly // dependent on your organization's and/or site's needs. $frontController->setParam('env', APPLICATION_ENVIRONMENT); $frontController->setRouter($router); // LAYOUT SETUP - Setup the layout component // The Zend_Layout component implements a composite (or two-step-view) pattern
<?php $router = new Zend_Controller_Router_Rewrite(); //$router->removeDefaultRoutes(); $cnf = Zend_Registry::get('cnf'); $db = Zend_Db::factory($cnf->db); $select = $db->query("\r\n\tselect\r\n\t\tsu.Name AS Name,\r\n\t\tsm.Controller AS Controller,\r\n\t\tCONCAT(sm.Module,'\\/',sm.Controller,'\\/?',su.URL_regexp) AS URL_regexp,\r\n\t\tsu.URL_vars AS URL_vars,\r\n\t\tsu.Action AS Action,\r\n\t\tsm.Module AS Module\r\n\tfrom\r\n\t\tadmin_menu sm,\r\n\t\tadmin_urls su\r\n\twhere\r\n\t\tsm.ID=su.Menu_id\r\n\t\tand sm.Hidden=0\r\n"); $menu = $select->fetchAll(); for ($i = 0; $i < count($menu); $i++) { $vars = array(); $d = explode(",", $menu[$i]['URL_vars']); for ($j = 0; $j < count($d); $j += 2) { $vars[$d[$j]] = (int) $d[$j + 1]; } $router->addRoute($menu[$i]['Name'], new Zend_Controller_Router_Route_Regex("^" . $menu[$i]['URL_regexp'] . "\$", array('module' => $menu[$i]['Module'], 'controller' => $menu[$i]['Controller'], 'action' => $menu[$i]['Action']), $vars)); }
/** * Adds a redirect route for the homepage. * * A redirect is required to make a "homepage" that is an external URL, an * admin URL, or a URL with a query string. * * @param string $uri The absolute uri to redirect to the default route to * @param Zend_Controller_Router_Rewrite $router The router * @return boolean True if the route was successfully added, else false. */ protected function _addHomepageRedirect($uri, $router) { // Handle possible internal links by stripping the base URL $uri = $this->_leftTrim($uri, PUBLIC_BASE_URL); if ($uri == '' || $uri == '/' || strpos($uri, '?') === 0 || strpos($uri, '/?') === 0) { return false; } $router->addRoute(self::HOMEPAGE_ROUTE_NAME, new Zend_Controller_Router_Route('/', array('controller' => 'redirector', 'action' => 'index', 'redirect_uri' => $uri))); return true; }
public static function addAdminRoutes(Zend_Controller_Router_Rewrite $router) { //Dashboard $route = new Zend_Controller_Router_Route('/admin', array('module' => 'admin', 'controller' => 'index', 'action' => 'index')); $router->addRoute('admin_index', $route); //Folder $route = new Zend_Controller_Router_Route('/admin/folder/:folder_id', array('module' => 'admin', 'controller' => 'folder', 'action' => 'view')); $router->addRoute('admin_view_folder', $route); $route = new Zend_Controller_Router_Route('/admin/folder/', array('module' => 'admin', 'controller' => 'folder', 'action' => 'view')); $router->addRoute('admin_view_root_folder', $route); $route = new Zend_Controller_Router_Route('/admin/folder/:folder_id/create', array('module' => 'admin', 'controller' => 'folder', 'action' => 'create')); $router->addRoute('admin_create_folder', $route); $route = new Zend_Controller_Router_Route('/admin/folder/:folder_id/delete', array('module' => 'admin', 'controller' => 'folder', 'action' => 'delete')); $router->addRoute('admin_delete_folder', $route); //Template $route = new Zend_Controller_Router_Route('/admin/template', array('module' => 'admin', 'controller' => 'template', 'action' => 'viewAll')); $router->addRoute('admin_view_templates', $route); $route = new Zend_Controller_Router_Route('/admin/template/create', array('module' => 'admin', 'controller' => 'template', 'action' => 'create')); $router->addRoute('admin_create_template', $route); $route = new Zend_Controller_Router_Route('/admin/template/:template_id/delete', array('module' => 'admin', 'controller' => 'template', 'action' => 'delete')); $router->addRoute('admin_delete_template', $route); //File $route = new Zend_Controller_Router_Route('/admin/foler/:folder_id/file/create', array('module' => 'admin', 'controller' => 'file', 'action' => 'create')); $router->addRoute('admin_create_file', $route); $route = new Zend_Controller_Router_Route('/admin/file/:file_id/delete', array('module' => 'admin', 'controller' => 'file', 'action' => 'delete')); $router->addRoute('admin_delete_file', $route); //Page $route = new Zend_Controller_Router_Route('/admin/folder/:folder_id/page/create', array('module' => 'admin', 'controller' => 'page', 'action' => 'create')); $router->addRoute('admin_create_page', $route); $route = new Zend_Controller_Router_Route('/admin/page/:page_id/delete', array('module' => 'admin', 'controller' => 'page', 'action' => 'delete')); $router->addRoute('admin_delete_page', $route); $route = new Zend_Controller_Router_Route('/admin/page/:page_id/edit', array('module' => 'admin', 'controller' => 'page', 'action' => 'edit')); $router->addRoute('admin_edit_page', $route); $route = new Zend_Controller_Router_Route('/admin/page/:page_id/render-for-edit', array('module' => 'admin', 'controller' => 'page', 'action' => 'renderForEdit')); $router->addRoute('admin_render_for_edit_page', $route); $route = new Zend_Controller_Router_Route('/admin/page/:page_id/save-sections', array('module' => 'admin', 'controller' => 'page', 'action' => 'saveSections')); $router->addRoute('admin_save_page_sections', $route); //Setup $route = new Zend_Controller_Router_Route('/setup/site-config', array('module' => 'admin', 'controller' => 'setup', 'action' => 'siteConfig')); $router->addRoute('admin_setup_site_config', $route); //User $route = new Zend_Controller_Router_Route('/admin/user', array('module' => 'admin', 'controller' => 'user', 'action' => 'viewAll')); $router->addRoute('admin_view_users', $route); $route = new Zend_Controller_Router_Route('/admin/user/create', array('module' => 'admin', 'controller' => 'user', 'action' => 'create')); $router->addRoute('admin_create_user', $route); $route = new Zend_Controller_Router_Route('/admin/user/edit/:user_id', array('module' => 'admin', 'controller' => 'user', 'action' => 'edit')); $router->addRoute('admin_edit_user', $route); $route = new Zend_Controller_Router_Route('/admin/user/:user_id/delete', array('module' => 'admin', 'controller' => 'user', 'action' => 'delete')); $router->addRoute('admin_delete_user', $route); $route = new Zend_Controller_Router_Route('/admin/user/login', array('module' => 'admin', 'controller' => 'user', 'action' => 'login')); $router->addRoute('admin_login_user', $route); $route = new Zend_Controller_Router_Route('/admin/user/logout', array('module' => 'admin', 'controller' => 'user', 'action' => 'logout')); $router->addRoute('admin_logout_user', $route); }
// Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array(realpath(APPLICATION_PATH . '/../library'), get_include_path()))); /** Zend_Application */ require_once 'Zend/Application.php'; // Create application, bootstrap, and run $application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini'); //**************** 自定义部分 Start *********************// require_once APPLICATION_PATH . '/modules/admin/controllers/BaseController.php'; require_once APPLICATION_PATH . '/modules/home/controllers/BaseController.php'; //定义当前 public 所在的路径 defined("PUBLIC_PATH") || define("PUBLIC_PATH", realpath(dirname(__FILE__))); $front = Zend_Controller_Front::getInstance(); //设定后台模块 $front->addModuleDirectory(APPLICATION_PATH . '/modules'); $front->setDefaultModule("home"); $router = new Zend_Controller_Router_Rewrite(); $route = new Zend_Controller_Router_Route('home/:id', array('controller' => 'Index', 'action' => 'index')); // 使用路由器装载路由协议 $router->addRoute('home', $route); $front->setRouter($router); defined("BASE_URL") or define("BASE_URL", $_SERVER['REQUEST_SCHEME'] . "://" . $_SERVER['SERVER_NAME']); $front->throwExceptions(true); //引入测试所需文件 require_once PUBLIC_PATH . '/FirePHPCore/fb.php'; FB::info(get_include_path()); //**************** 自定义部分 End *********************// try { $application->bootstrap()->run(); } catch (Zend_Exception $se) { echo $se->getTrace(); }