【Webアプリ】開発環境をイチから作成・その8(CakePHP + Oracle連携)

Web開発環境構築のアイキャッチ画像

今回の目的

今回はWebアプリを作るときに利用すると便利なフレームワークである CakePHP と Oracle 連携を行うまでの手順をまとめます。
前回は Apache + PHP + Oracle 連携まで設定し、ブラウザ上から Oracle のデータを
参照するところまで行いました。

CakePHPの入手

まず、CakePHP 本体をダウンロードします。
日本語版のリリースバージョンは 2.4.10 です。
公式ページ「http://cakephp.jp」 からダウンロードします。

dev_setting_07_cakephp_01

eclipse 上のプロジェクトへの取り込み

ダウンロードした cakephp-2.4.1.zip を解凍し、
cakephp-2.4.1以下のファイルを全て eclipse の workspace のプロジェクト「testphp」にコピーします。

dev_setting_07_cakephp_02

Apacheを立ち上げブラウザからCakePHPに初アクセス!

この状態で、Webサーバの Apache を立ち上げ、ローカルのWebサーバにブラウザ経由でアクセスすると、以下のようなページが表示されます。

※Oracle や PHP、Apache のインストールは以前の記事で実施している前提で書いてます。
dev_setting_07_cakephp_03

とりあえずCakePHP自体は動作しているようです。
いくつかの警告文が出ていますが、とりあえず問題ありません。

CakePHPのデータベース接続用設定ファイルを編集

Eclipse に導入した CakePHP フォルダの/app/Config/database.php.default
というファイルをリネームし、 database.php に変更します。

DB接続用の変数内容をOracle用に書き換えます。

/** Oracle に接続するテスト環境 */
var $default = array(
    'datasource' => 'Database/Oracle',
    'driver' => 'oracle',
    'connect' => 'oci_connect',
    'persistent' => true,
    'host' => '',
    //'port' => '1521', // localなら指定しなくてもつながる。
    'login' => 'testap',
    'password' => 'testpw',
    'database' => '',
    'prefix' => '',
    //'encoding' => 'UTF8', // oracle接続用では見ていない変数だった?
    'charset' => 'AL32UTF8' // こちらの設定が使用されるみたい。
);

しかし、これだけでは Oracle にうまく繋がらず。Datasource に Oracle 用の DBO レイヤーが必要なのに、存在しないと怒られます。
ですので、 CakePHP ver1.2.0.4041 を別途ダウンロードして、zip解凍し、いい感じに記載された Oracle.php (DBOレイヤー)ファイルを持ってきます。

/lib/Cake/Model/Datasource の中に Oracle.php をコピー。

再度、ブラウザからアクセスしてみると、
dev_setting_07_cakephp_04
やりました!接続できたとのこと。
デフォルトでは CakePHP はSQL文と結果を表にして、ページ最下部にくっつけてくれるので、確認してみると、
dev_setting_07_cakephp_05

ALTER SESSION で、日付フォーマットを変更するSQLを Oracle に送信していることがわかります。

とりあえず、CakePHP から Oracle 疎通もできたので、今回はここまでです。

Webアプリの開発環境をイチから作成シリーズ記事

  1. その1(Eclipse&Java SDK7 導入)
  2. その2(Eclipse の Plugin 導入)
  3. その3(Oracle DB 11g XE R2 インストール)
  4. その4(Oracle DB 11g XE R2 疎通確認)
  5. その5(XAMPP インストール)
  6. その6(Apache + PHP + Eclipse連携)
  7. その7(Apache + PHP + Oracle連携)
  8. その8(CakePHP + Oracle連携) ←いまココ
  9. その9(CakePHP + Oracle連携)

ページの更新履歴

更新日 更新内容
2013.10.13 ページ公開
2018.3.17 スマホからレイアウトが崩れて読みにくいので修正。ついでに文章構造と文章本体も自分以外の人が読めるように訂正。