facebook twitter hatena line email

Php/zend framework/zend router

提供: 初心者エンジニアの簡易メモ
2015年8月10日 (月) 13:59時点におけるAdmin (トーク | 投稿記録)による版 (ルータ(ini編)

移動: 案内検索

ルータ

~/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]+"