PHPã«ã³ãã¡ã¬ã³ã¹2013ã«ã¦çºè¡¨
PHPã«ã³ãã¡ã¬ã³ã¹2013ã«ã¦çºè¡¨
ä¸é¨ã®æ¹ã«ã¯äºåã«ã話ãã¦ãã¾ããããããããå ±èã§å·çã«åå ãããCakePHPã§å¦ã¶ç¶ç¶çã¤ã³ãã°ã¬ã¼ã·ã§ã³ãã¨ãããCakePHPã使ã£ã¦ç¶ç¶çã¤ã³ãã°ã¬ã¼ã·ã§ã³ãå®è·µãããªããã解説ããæ¸ç±ã9/19ã«ã¤ã³ãã¬ã¹ããåºçããã¾ãï¼ CakePHPã§å¦ã¶ç¶ç¶çã¤ã³ãã°ã¬ã¼ã·ã§ã³ ä½è : 渡辺ä¸å®,åç¾½é¾å¤ªé,岸ç°å¥ä¸é,穴澤康è£,丸山å¼è©©åºç社/ã¡ã¼ã«ã¼: ã¤ã³ãã¬ã¹çºå£²æ¥: 2014/09/19ã¡ãã£ã¢: åè¡æ¬ï¼ã½ããã«ãã¼ï¼ãã®ååãå«ãããã°ãè¦ã æ¢ã«ã¤ã³ãã¬ã¹ããã®ãµã¤ããAmazonã«ãæ²è¼ããã¦ãã¾ããã¾ã ãæ¸å½±ãåæ ããã¦ãã¾ããããäºç´åä»ä¸ã§ãï¼æ¯éãããã¨ãé¡ããã¾ã(^^ã ä»å¹´é é ã®ãã¼ãã£ã³ã°ããç´9ã¶æãé䏿¬æ¥ãå¿ãããªããªãå·çãããã¾ãªãã£ããããã¾ãããããªãã¨ãæ¸ãä¸ãããã¨ãã§ãã¾ãããä»åãåãã¦åèªèº«ã®ä¼ç»ï¼å·çã®ã¨ãã¾ã¨ãããããã¨ã«
CakePHPã®ã»ãã·ã§ã³ç®¡çã¯ããã©ã«ãã§ã¯ãã¼ã«ã«ã®ãã£ã¬ã¯ããªã«ãã¡ã¤ã«ã§ãã¨ããå½¢ã«ãªã£ã¦ãã¦ã AWSã®EC2ãªã©ã使ã£ã¦ã¹ã±ã¼ã©ãã«ãªãã®ã«ãããã¨ããå ´åãè£å´ã¯ã¹ã±ã¼ã©ãã«ãªKeyValueã¹ãã¢ã«ããã®ãè¯ãæãã§ãã AWSã®å ´åã¯ElastiCacheã®Memcached(Consistent Hashing)ã¨Redis(Master-Slave)ã¨ãã鏿è¢ãããã¾ããã ä»åã¯Memcahedã§æ§ç¯ãã¦ã¿ããã¨æãã¾ãã(次åã¯Redisããã¾ã) â EC2ã¤ã³ã¹ã¿ã³ã¹ã®èµ·å EC2ã®Amazon Linuxã«CakePHPãã¤ã³ã¹ãã¼ã«ãã¦ãã¾ãã å人ã®@yandoãèè ã®CakePHP2å®è·µå ¥éã«ããã¨ã â PHP5.2.8ä»¥ä¸ â Apacheçã®HTTPãµã¼ãã¼(IISãNginxã§ãOK)ã â mod_rewriteã使ããã¨è¯ãæ° â ãã¼ã¿
ã¤ã³ãããã¯ã·ã§ã³ æ¨æºã®findã®ç¨®é¡ï¼first, all, count, threaded, neighbor, listï¼ã ãã§ã¯ããã¸ãã¹ãã¸ãã¯ã«å¯¾å¿ã§ããªããã¨ãããã¾ãã ããã«å¯¾ããã²ã¨ã¤ã®ãã©ã¯ãã£ã¹ã¨ãã¦ã¯ãã«ã¹ã¿ã findã¿ã¤ããå®ç¾©ãããã¨ã§ãã ãã®è¨äºã§ã¯ãå®éã®éçºãæ³å®ãããªãã¡ã¯ã¿ãªã³ã°ã®éç¨ãéãã¦ã«ã¹ã¿ã findã¿ã¤ãã®å®ç¾©ã®ä»æ¹ã¨æ´»ç¨æ¹æ³ããã®æç¾©ããç´¹ä»ãã¾ãã ãæ¬¡ãã®è¨äº ä¾ãã°ãã«ã¬ã³ãã®ã¬ã³ã¼ãã®ã次*1ãã®ã¬ã³ã¼ããåå¾ãããå ´åãããã«çºããè¤éãªå¦çã¯ãåç´ãªqueryã®çºè¡ã ãã§ã¯æ¸ã¾ãªããã¨ãããã¾ãã ãã®ã次ãã®ã¬ã³ã¼ããæ¢ç´¢ãããã¸ãã¯ãä¾ã«ããã*2ããããå®è£ ãã¦ããã話ããã¾ãããã è¦ä»¶ã®å®ç¾© ããã®ä¸å¸ã®ãµã *3ã¯ãã¯ã©ã¤ã¢ã³ãã®ä¼ç¤¾ã®ãµã¤ãã«ããã°ã¢ã¸ã¥ã¼ã«ã追å ããããã¸ã§ã¯ãã®æã¡åããã§ã次ã®è¦ä»¶ãå®ç¾©ã
ã¤ãããï¼å¤§ä½ä¸ãã人æ°ããé ã§ä¸¦ãã§ããã¾ãã 人æ°ãã¡ãã£ã¨ãã£ã¦ãã¡ãã£ã¨å¤ãã®ã¯å²ã¨ä¸ã«ãã¾ãã Croogo cakePHPã§ä½ããã髿©è½ãªCMSãããããããå ¨é¨çµã¿è¾¼ãã ãä¸é¨çµã¿è¾¼ãã ãããã¨ããã°ã¨ãããã«ã¤ããããã http://croogo.org/ CakeDC/utils è²ã è©°ã¾ã£ã¦ã便å©ãªãã¤ããããããã«ãã©ãã¯ããã¯å®è£ ããã¨ãã®pingbackã£ã¦ããã®ãããããã ãªãã¤ãããªãããããªãããè¦ã¦ã¿ããã CakeDC / migrations ããã¯è¯ããããã¼ã¿ãã¼ã¹ããã£ãå±¥æ´ã¨ããã¼ã¿ãã¼ã¹ã®å ±æã¨ããã®è¾ºããªãã便å©ã«ãã¦ãããã£ã½ãã CakeDC / search ããã¯å¤åæåãªãµã¼ããã©ã°ã¤ã³ãã§ã使ã£ããã¨ãªãããµã¼ãã£ã¦ãããªé£ãããªãããã§ããã£ã¨ä¾¿å©ã«ã§ãã¦ããã ãããã調ã¹ã¦ã¿ãã®ã¯ããããã CakeDC / users
CakePHPã§example.com/controller/actionã®æ§ãªå½¢å¼ã®URLããã©ãæ±ããã¦ãã³ã³ããã¼ã©ã¼ã®ã¢ã¯ã·ã§ã³ãå¼ã°ããã®ãæ°ã«ãªã£ãã®ã§ãmod_rewriteããDispatchãããã¾ã§ã®æµãããã½ã¼ã¹ã³ã¼ããèªãã§è¿½ãããã¦ã¿ã¾ããã mod_rewrite cakephp âââ .htaccess #(1) âââ app | âââ .htaccess #(2) â  âââ webroot | âââ index.php â  âââ .htaccess #(3) âââ lib âââ Cake ãã¦ã³ãã¼ãããCakePHPãã.htaccessã®ä½ç½®é¢ä¿ã ãæ¸ãã¨ãããªæ§æã«ãªã£ã¦ã¾ãã.htaccessã¯3åããã¾ãã 1çªç®ã«å¦çããã.htaccess <IfModule mod_rewrite.c> RewriteEngine o
ã¿ãªããããã«ã¡ã¯ã@ryuzeeã§ãã PHPã§æ¸ãããã½ã¼ã¹ã³ã¼ããã³ã¼ãã£ã³ã°è¦ç´ã«æºæ ãã¦ãããã©ãã確èªããã«ã¯ãPHP_CodeSnifferã¨ãããã¼ã«ã使ãã®ã¯ãããåç¥ã ã¨æãã¾ãããä»åã¯CakePHPã使ã£ã¦æ¸ããã½ã¼ã¹ã³ã¼ãã®è¦ç´ããã§ãã¯ããæ¹æ³ãç´¹ä»ãã¾ãã ãªãããã®ãããªè¦ç´ãã§ãã¯ã¯ãã¼ã«ã«ç°å¢ã§æ°ãåããæã«ããã ãã§ã¯ãªããç¶ç¶çã¤ã³ãã°ã¬ã¼ã·ã§ã³ã«ãçµã¿è¾¼ãã§å®æ½ãããã¨ãæã¾ãã¾ãã PHP_CodeSnifferã®ã¤ã³ã¹ãã¼ã«ç¹ã«ãã£ã³ãã«ã®è¿½å ã¯å¿ è¦ããã¾ããã
New CakePHP 5.2 Chiffon. Faster. Simple. Delicious. What's new in 5.2 The migration guide has a complete list of what's new in 5.2. We recommend you give that page a read when upgrading. A few highlights from 5.2 are: New "counter_cache" command New "nativeuuid" database type Error handling customization using methods in "ErrorController" Helper method for generation importmap for JavaScript files
Bakerãªãè¨ããã¨ç¥ããDebugKitã§ãããããç°¡åã«ããã«ã追å ã§ãããã§ããã ã¢ããªã±ã¼ã·ã§ã³ããã©ã°ã¤ã³ã®å¤ã®ç¢ºèªãªããã«ããã¡ããã¡ãã£ã¨è¿½å ãã¡ããã¾ãããã ã§ã¯ãå®çªã®ãHello Worldãããã£ã¦ã¿ã¾ãããã APP/vendors/hello_world_panel.php ã¾ãå¦çã®é¨åã§ãããDebugPanelã¨ããã¯ã©ã¹ãç¶æ¿ãã¦è¡ãã¾ãã ã¾ããããªæãã§ãã DebugPanel::$plugin DebugPanel::$title DebugPanel::startup DebugPanel::beforeRender ä¸è¨ã®ããããã£ã»ã¡ã½ãããç¨æããã¦ããã®ã§ãèªç±ã«ã使ãä¸ããã APP/views/elements/hello_world_panel.ctp ç¶ãã¦è¡¨ç¤ºé¨åã§ãã DebugPanel::beforeRenderå ã§
CakePHPç¨ã®Smartyãã©ã°ã¤ã³ãæ¸ãã¦ã¿ã¾ããã 以åããããã¤ãããã®ã§ããããã¼ã¸ã§ã³ãå¤ãã£ããViewã®å ¨ã¦ã®æ©è½ã使ããªãã£ãããææ°çããè¦ãã¨æ©è½ã¨ãã¦è¶³ãã¦ãªãé¨åãè¦åããããã®ã§ãæ°ãã«ç¨æãã¦ã¿ã¾ãããGitHubã«ããã¦ããã¾ããMITã©ã¤ã»ã³ã¹ã£ãã GitHub - kanshin/CakeSmarty: Smarty 3 plugin for CakePHP 1.3 ãã¤ã³ã㯠1. ThemeViewã«å¯¾å¿ 2. ããã©ã«ãã®ctpã¨å ±åå¯è½ 3. Helperã«å¯¾å¿ããSmartyãã©ã°ã¤ã³ããã³ãã« 4. Smartyã®configã«å¯¾å¿ ï¼çªç®ãçµæ§éè¦ã§ããScaffoldã§ä½ããããã¥ã¼ããããã©ã«ãã®ã¬ã¤ã¢ã¦ãã¯ãã®ã¾ã¾.ctpã®ã¾ã¾ã«ãã¦ããã¦ãã¡ã¤ã³ã³ã³ãã³ãã®ã¿Smartyã§è¨è¿°ã¨ãããã¨ãç°¡åã«ã§ãã¾ãã.ctpã®ã¨ã¬ã¡ã³ãã使
ã³ã³ããã¼ã©ã¼å ã§find()æ¤ç´¢ããã¨ãã対象ã®ãã¼ãã«ã ãã§ã¯ãªããhasManyãªã©ã®ã¢ã½ã·ã¨ã¼ã·ã§ã³ã§ã¤ãªãã£ã¦ããå ã®ãã¼ãã«ã®ãã£ã¼ã«ããæ¤ç´¢ããããã¨ãããã ãã®å ´åãåç´ã« find('all',array('conditions'=>array( '対象ãã¼ãã«.id '=>"%{$this->data['対象ãã¼ãã«']['title']}%", '対象ãã¼ãã«'.'é¢é£ãã¼ãã«'.id like '=>"%{$this->data['対象ãã¼ãã«']['title']"))); ã¨ãã£ã¦ãã§ããããªã¼ã¨æã£ã¦ãæ©è½ããªãï¼><ï¼ãã ã§ããããåé¿ããããã«ãã£ãããã¢ã½ã·ã¨ã¼ã·ã§ã³å ã®ãã¼ãã«ãæ¤ç´¢ãã¦ãã®çµæã®idããfind('list')ã§ä¿æãã¦ããããããæ¤ç´¢çµæã«å«ãããã¨ããæ®µéãã¨ãã $id_list = $this->対象ãã¼ãã«->é¢é£ãã¼ã
æ°ãã¤ããã1å¹´ã¶ã以ä¸ã®Cakeé¢ä¿ã®è¨äºã ãã¦ãæè¿ã¾ãCakePHPã使ã£ã¦WEBã¢ããªãçµãã§ããã®ã§ä¹ ã ã«æ´æ°ãã¾ãã æè¿ãProduct Advertising APIã¨ååãå¤ãã£ãAmazonã®APIã ããã使ãã®ã«ä¾¿å©ãªã©ã¤ãã©ãªã¨ãã¦PEAR Services_Amazonãããã¾ãã ãã®ã©ã¤ãã©ãªã使ç¨ããã¨ãéä¿¡çµæçµæãé åã§åå¾ãAmazonããåå¾ãããã¼ã¿ã®ãã£ãã·ã¥ã®å®è£ ãªã©ãªã©ãç°¡åã«è¡ãã¾ãã ããCakePHPå é¨ã§ããã®ã©ã¤ãã©ãªã®ãã£ãã·ã¥é¢ä¿ã®é¨åãåããããã£ã¦ãã¾ã£ãã®ã§ããã¤åãããã«ããã人ãããããªã®ã§ã¡ã¢ãã¦ããã¾ãã çºçããã¨ã©ã¼ã«ã¤ã㦠CakePHPã®ãããmodelã®ä¸ã§ã次ã®ãããªã³ã¼ããæ¸ãã¾ãã <?php require_once("Services/Amazon.php"); $amazon = new
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ã¡ã³ããã³ã¹
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}