Php/zend framework/zend router
提供: 初心者エンジニアの簡易メモ
目次
ルータ
~/test/3にアクセスした場合、controller => index, action => index, page => 3にアクセスされるスクリプト
index.php(フロントコントローラー)
require_once 'Zend/Controller/Front.php';
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$router->addRoute('router1',
new Zend_Controller_Router_Route(
'test/:id',
array(
'controller' => 'index',
'action' => 'index'
),
array('id' => '\d+')
));
$front->setControllerDirectory('../application/controllers');
$front->dispatch();
ルータ(ini編
index.php(フロントコントローラー)
define('APPLICATION_ENV', 'production');
require_once 'Zend/Config/Ini.php'
$ini = new Zend_Config_Ini('../configs/route.ini',
APPLICATION_ENV);
$router = new Zend_Controller_Router_Rewrite();
$router->addConfig($ini, 'routes');
route.ini
[production] routes.router1.route = "test/:id" routes.router1.defaults.controller = "index" routes.router1.defaults.action = "index" routes.router1.reqs.id = "\d+"
zend_applicationでrouterを使う
application.iniに以下を設定
resources.router.routes.route_id.route = "/login" resources.router.routes.route_id.defaults.module = "user" resources.router.routes.route_id.defaults.controller = "login" resources.router.routes.route_id.defaults.action = "index"
日本語をrouterする場合
resources.router.routes.rss_new.route = "list/:word" resources.router.routes.rss_new.defaults.module = "default" resources.router.routes.rss_new.defaults.controller = "list" resources.router.routes.rss_new.defaults.action = "index" var_dump($this->_request->word);
ドット混じりの英語、英語のみ、数字のみをrouteする場合
resources.router.routes.route_id.route = "/bbs/:domain/test/read.cgi/:ita_id/:sure_id" resources.router.routes.route_id.defaults.module = "bbs" resources.router.routes.route_id.defaults.controller = "index" resources.router.routes.route_id.defaults.action = "index" resources.router.routes.route_id.reqs.domain = "[\w\.]+" resources.router.routes.route_id.reqs.ita_id = "[\w]+" resources.router.routes.route_id.reqs.sure_id = "[\d]+"
ドメインでmoduleを切り替えるroute設定方法
mobile.example.jpとmobile-test.localhostをmobileモジュールへ
resources.router.routes.route_mobile.type = "Zend_Controller_Router_Route_Hostname" resources.router.routes.route_mobile.route = ":subdomain.:domain"; resources.router.routes.route_mobile.reqs.domain = "(example.jp|localhost)" resources.router.routes.route_mobile.reqs.subdomain = "(mobile|mobile-test)" resources.router.routes.route_mobile.defaults.module = "mobile" resources.router.routes.route_mobile.defaults.controller = "index" resources.router.routes.route_mobile.defaults.action = "index" resources.router.routes.route_mobile.chains.user.type = "Zend_Controller_Router_Route" resources.router.routes.route_mobile.chains.user.route = "/user/:id" resources.router.routes.route_mobile.chains.user.defaults.controller = "user" resources.router.routes.route_mobile.chains.user.defaults.action = "index" resources.router.routes.route_mobile.chains.user.reqs.id = "\d+"
