PHPフレームワーク CakePHPのダウンロード、インストール設定

CakePHPとは

概要

CakePHPは高速にアプリケーションを開発するためのPHPフレームワークです。
Ruby on Railsの概念を取り入れているため、Railsに似ています。

PHPではほかにも、ZendFramework、Symfony、Fuel、Yii、またPhalconなどの様々なフレームワークがありますが、今のところ私はこのCakePHPが一番しっくりきています。

フレームワークの必要性

フレームワークを使うことで様々なメリットがあります。

1から開発する手間が省ける
他人が見てもコードが理解しやすい
過去のノウハウを継承できる

などなど良いことがいっぱいです。
しかし、必ずしも必要ではないのです。
反対に、使用しないことで拡張性が向上するなど、使用しない方が良い場合もあります。

フレームワークを導入することで要件が満たせなくなる場合もあったりします。
開発する内容によって随時判断を行いましょう。

設定手順

ダウンロード

下記公式サイトよりダウンロードします。
http://cakephp.org/
cake公式サイト

こちらは日本語サイトとなります。
http://cakephp.jp/
cake日本語サイト

インストール

ダウンロードしたファイルを解凍し、中身を一式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です。
cakeトップ
赤枠でメッセージが表示される場合は、内容に従って設定してください、

DBの使用

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モジュールを移動できました。

Related

Vagrant+Docker+PHP環境で「session.save_path」指定時に、セッションファイルが空になるエラー

ファイル共有でのフォルダの所有者を設定 結論 PHP5.4.28 からセッションファイルのownerはrootもしくはWebサーバのユーザに限るという制限が...

LINEと連携したテイクアウト事前注文システム徹底比較!

目次 テイクアウト予約・注文受付システムのトレンド LINEと連携したテイクアウト事前注文システムの価格表 L.B.B.Cloud テイクイーツ ...

PHPで動画の撮影日を取得

PHPで動画の撮影日を取得 概要 PHPからffprobeコマンドを実行し、動画の撮影日時を取得します。 コード $posted_at = ...

FullCalendarでGoogleカレンダーのようなUIを実装

jQueryプラグインFullCalendarのサンプル 概要 FullCalendarを使用して、GoogleカレンダーのようなUIを実装する使用例を...

PHP Laravel5.2でmulti-auth(複数テーブルでの認証)を実装

Laravel5.2でマルチ認証 概要 LaravelとはPHPの中で今最も伸びているフレームワークです。 処理速度が遅いなどありますが、かなり使い安く拡...

PHP 正規表現でIPアドレス形式の文字列か判定

正規表現でIPアドレスの入力チェック 概要 フォームで入力されたIPアドレスが正当な文字列か判定するためのバリデーション処理を実装します。 基本的...
トップへ戻る