facebook twitter hatena line email

Php/zend framework/zend router

提供: 初心者エンジニアの簡易メモ
2015年5月20日 (水) 03:09時点における127.0.0.1 (トーク)による版 (ページの作成:「==ルータ== ~/test/3にアクセスした場合、controller => index, action => index, page => 3にアクセスされるスクリプト index.php(フロントコン...」)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

ルータ

~/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(フロントコントローラー)

require_once 'Zend/Config/Ini.php'
$set = new Zend_Config_Ini('../config/appset.ini',
                             'routeset');
$router = new Zend_Controller_Router_Rewrite();
$router->addConfig($set, 'routes');

appset.ini

[routeset]
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]+"