CakePHPã¯é«˜é€Ÿã«ã‚¢ãƒ—リケーションを開発ã™ã‚‹ãŸã‚ã®PHPフレームワークã§ã™ã€‚
Ruby on Railsã®æ¦‚念をå–り入れã¦ã„ã‚‹ãŸã‚ã€Railsã«ä¼¼ã¦ã„ã¾ã™ã€‚
PHPã§ã¯ã»ã‹ã«ã‚‚ã€ZendFrameworkã€Symfonyã€Fuelã€Yiiã€ã¾ãŸPhalconãªã©ã®æ§˜ã€…ãªãƒ•ãƒ¬ãƒ¼ãƒ ワークãŒã‚ã‚Šã¾ã™ãŒã€ä»Šã®ã¨ã“ã‚ç§ã¯ã“ã®CakePHPãŒä¸€ç•ªã—ã£ãã‚Šãã¦ã„ã¾ã™ã€‚
フレームワークを使ã†ã“ã¨ã§æ§˜ã€…ãªãƒ¡ãƒªãƒƒãƒˆãŒã‚ã‚Šã¾ã™ã€‚
1ã‹ã‚‰é–‹ç™ºã™ã‚‹æ‰‹é–“ãŒçœã‘ã‚‹
他人ãŒè¦‹ã¦ã‚‚コードãŒç†è§£ã—ã‚„ã™ã„
éŽåŽ»ã®ãƒŽã‚¦ãƒã‚¦ã‚’継承ã§ãã‚‹
ãªã©ãªã©è‰¯ã„ã“ã¨ãŒã„ã£ã±ã„ã§ã™ã€‚
ã—ã‹ã—ã€å¿…ãšã—ã‚‚å¿…è¦ã§ã¯ãªã„ã®ã§ã™ã€‚
å対ã«ã€ä½¿ç”¨ã—ãªã„ã“ã¨ã§æ‹¡å¼µæ€§ãŒå‘上ã™ã‚‹ãªã©ã€ä½¿ç”¨ã—ãªã„æ–¹ãŒè‰¯ã„å ´åˆã‚‚ã‚ã‚Šã¾ã™ã€‚
フレームワークを導入ã™ã‚‹ã“ã¨ã§è¦ä»¶ãŒæº€ãŸã›ãªããªã‚‹å ´åˆã‚‚ã‚ã£ãŸã‚Šã—ã¾ã™ã€‚
開発ã™ã‚‹å†…容ã«ã‚ˆã£ã¦éšæ™‚判æ–ã‚’è¡Œã„ã¾ã—ょã†ã€‚
下記公å¼ã‚µã‚¤ãƒˆã‚ˆã‚Šãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã—ã¾ã™ã€‚
http://cakephp.org/
ã“ã¡ã‚‰ã¯æ—¥æœ¬èªžã‚µã‚¤ãƒˆã¨ãªã‚Šã¾ã™ã€‚
http://cakephp.jp/
ダウンãƒãƒ¼ãƒ‰ã—ãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’解å‡ã—ã€ä¸èº«ã‚’一å¼Apacheã®ãƒ«ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå†…ã«ç½®ãã¾ã™ã€‚
タイムゾーンãŒè¨å®šã•ã‚Œã¦ã„ãªã„å ´åˆã¯è¨å®šã‚’è¡Œã„ã¾ã™ã€‚
.htaccess ã«ä»¥ä¸‹ã‚’è¿½åŠ ã—ã¦ãã ã•ã„。
php_value date.timezone "Asia/Tokyo"
パーミッションを変更。
app/tmp を書込ã¿å¯èƒ½ã«ã—ã¾ã™ã€‚
chmod -R a+w app/tmp
core.phpã®å¤‰æ›´ã€‚
app/Config/core.phpã«ã¤ã„ã¦ã€ä¸‹è¨˜äºŒã¤ã®å³å´ã®å€¤ã‚’ä»»æ„ã®æ–‡å—列ã«å¤‰æ›´ã—ã¦ãã ã•ã„。
Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');
Configure::write('Security.cipherSeed', '76859309657453542496749683645');
ãã—ã¦ãƒ–ラウザã‹ã‚‰ãƒ«ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¾ã™ã€‚
下記ã®ã‚ˆã†ã«è¡¨ç¤ºã•ã‚Œã‚Œã°ï¼¯ï¼«ã§ã™ã€‚
èµ¤æž ã§ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒè¡¨ç¤ºã•ã‚Œã‚‹å ´åˆã¯ã€å†…容ã«å¾“ã£ã¦è¨å®šã—ã¦ãã ã•ã„ã€
app/Config/database.php.default ã‚’ database.php ã¨ã„ã†åå‰ã§ã‚³ãƒ”ーã—ã¾ã™ã€‚
cp -p database.php.default database.php
database.php ã®ä»¥ä¸‹ã®ç®‡æ‰€ã‚’è¨å®šã—ã¾ã™ã€‚
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database_name',
'prefix' => '',
//'encoding' => 'utf8',
);
基本的ã«ã¯ã€hostã€loginã€passwordã€database辺りè¨å®šã™ã‚Œã°è‰¯ã„ã§ã—ょã†ã€‚
ã“ã‚Œã§CakePHPã‹ã‚‰DBã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚
/home/user/test/public ãŒãƒ«ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¨ä»®å®šã—ã¦èª¬æ˜Žã—ã¾ã™ã€‚
ã¾ãšã¯ã€/home/user/test/内ã«ä»¥ä¸‹ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’作æˆã—ã¾ã™ã€‚
public
cake
public 内ã«ã€app/webroot/ã®ä¸èº«ã‚’移動ã—ã¾ã™ã€‚
cake 内ã«ã€ãã®ä»–ã®CakePHPã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®ä¸èº«ã‚’å…¨ã¦ç§»å‹•ã—ã¾ã™ã€‚
以下ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯å‰Šé™¤ã—ã¦å•é¡Œã‚ã‚Šã¾ã›ã‚“。
- cake/app/webroot
- cake/index.php
- cake/.htaccess
- cake/app/index.php
- cake/app/.htaccess
public/index.php ã®2ã‹æ‰€ã‚’以下ã®ã‚ˆã†ã«å¤‰æ›´ã—ã¾ã™ã€‚
if (!defined('ROOT')) {
//define('ROOT', dirname(dirname(dirname(__FILE__))));
define('ROOT', dirname(dirname(__FILE__)) . DS . 'cake');
}
/**
* The actual directory name for the "app".
*
*/
if (!defined('APP_DIR')) {
//define('APP_DIR', basename(dirname(dirname(__FILE__))));
define('APP_DIR', 'app');
}
ã“ã‚Œã§ã€ãƒ«ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®å¤–ã«CakePHPモジュールを移動ã§ãã¾ã—ãŸã€‚