Prefix routingæ¯ã«ã»ãã·ã§ã³Cookieã®ã»ãã·ã§ã³åãåãæ¿ãããCakePHP1.3
CakePHP 1.3.0ããå°ãå¤ãã£ã Prefix Routing ã§ã管çç»é¢ãæºå¸¯ãµã¤ããªã©ããã£ã¬ã¯ããªã§åããå¥ãµã¤ãã£ã½ãåºæ¥ã¾ãã
ãã ãåãController/Modelã¯ã©ã¹ã使ãããconfigç³»ãå
±æãã¦ãã¾ãã
å®æ
ã¨ãã¦ã¯åããµã¤ãã®ä¸é¨ã¨ããæãã§ãã
ããã§æ°ã«ãªãã®ã¯ãã»ãã·ã§ã³Cookieãã©ããªããã¨è¨ãäºã§ãã
ä½ãã®ééãã§*1PCãµã¤ãã«ãã°ã¤ã³ããã»ãã·ã§ã³ã§ã管çç»é¢ã«ãã°ã¤ã³æ¸ã¿æ±ãã«ãªãã¿ãããªäºã¯é¿ãããã
ãªã®ã§ãã»ãã·ã§ã³åãéããã®ã«ãã¦ãæ··ãããªãããã«ãããã§ãã
Prefix routingè¨å®ä¾
<?php Configure::write('Routing.prefixes', array('admin', 'mobile', 'dev'));APP/config/core.php
- http://www.example.com/
- ã¡ã¤ã³ã®PCãµã¤ã
- http://www.example.com/admin/
- 管çç»é¢
- http://www.example.com/mobile/
- ã¢ãã¤ã«ãµã¤ã
- http://www.example.com/dev/
- éçºä¸ã®ãã¼ã«ãªã©
ä¾ãã°ãããªå½¢ã«åºæ¥ãããã¾ãã
ãµã³ãã«ã³ã¼ã
<?php class AppController extends Controller { public function beforeFilter(){ if(isset($this->params['prefix'])){ switch($this->params['prefix']){ case 'admin': Configure::write('Session.cookie', 'ADMIN'); break; case 'mobile': Configure::write('Session.cookie', 'MOBILE'); break; case 'dev': Configure::write('Session.cookie', 'DEV'); break; } } } }APP/app_controller.php
Prefix routingã«åè´ããã¢ã¯ã»ã¹ã®å ´åã$this->params['prefix'] ã«prefixåãå
¥ã£ã¦ã¾ãã
ãªã®ã§ããã§å¤å¥ã§ãã
ã³ã³ã¹ãã©ã¯ã¿ã§ã¯ãªãbeforeFilter()
ããããã®ã¯ã³ã³ã¹ãã©ã¯ã¿ã«æ¸ãã¤ã¡ã¼ã¸ããããã©ãããã¯ã³ã³ã¹ãã©ã¯ã¿ã§ã¯ãã¾ãè¡ãã¾ããã
CakePHPæ¬ä½ã® Dispatcher->dispatch() ã§ã³ã³ããã¼ã©ã¼ãnewããã¦ã¾ãã
newã®å¾ãã params がセットãããã®ã§ãã³ã³ã¹ãã©ã¯ã¿ã®æ®µéã§ã¯ã¾ã $this->params['prefix'] ã空ã£ã½ã§ãã
ã¡ãªã¿ã« Controller->beforeFilter() ã¯ãDispatcher->dispatch() ãã Dispatcher->_invoke() ãçµã¦ã$controller->startupProcess() ã®ä¸ããå¼ã°ãã¾ãã
*1:ä¾ãã°ãªãªã¼ã¹ãã¦ãããããªãã«çµã£ãå¾ã«ãå½æéçºãã人以å¤ãä¿å®éçºãæ å½ãããã©ã°ãç«ã¦ééãã¨ãã