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');
そしてブラウザからルートディレクトリにアクセスします。
下記のように表示されればOKです。
赤枠でメッセージが表示される場合は、内容に従って設定してください、
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モジュールを移動できました。