cakePHPのインストール

2007/02/23 | cakePHP

ようやく重い腰を上げてcakePHPを触り始めた。今まで使い慣れたmojaviから乗り換えるのはやはり気が重い。フレームワークとはいっても今まで自分が使っていたものとまったく違うわけだから、ぜんぜんやり方がわからない。きっとそういう人も多いと思うのでメモしていくことにした(ある程度までいったら別サイトで取りまとめします)。
ちなみに今回はPHP5に慣れ親しむためにFedoraCore4を使用した。デフォルトでインストールされているのはPHP5.0.4(だったかな?)。利用するソフトは適宜yum等でアップロードするのがいいだろう。

■cakePHPのインストール
以下のサイトからリンクをたどって最新の安定板をダウンロードして使用した(執筆時点の最新安定板は1.1.13.4500)。ダウンロードしたファイルを解凍し、その中にあるファイルを丸ごとウェブサーバのドキュメントルートにアップロードする。

■パーミッションの設定
以下のディレクトリ以下をすべて777に設定した。
(DocumentRoot)/app/tmp
具体的には以下のコマンドを実行した。
chmod -R 777 /var/www/html/app/tmp
ここにはキャッシュやらログやらセッションやらのファイルが格納されるため、書き込み権限と実行権限が必要になるからだ。

■データベースのセットアップ
cakePHPは他のライブラリを導入することなく、データベースを操作できる。そのためにデータベースを操作するための設定情報をcakePHPに保存しておく必要がある。設定ファイルは以下のとおり。
(DocumentRoot)/app/config/database.php.default
上記のファイルをコピーしてdatabase.phpとし、そこに設定情報(データベース名やユーザ名等)を記述する。設定に際してdriverに何を使用するか、記述する部分があり、「mysql」「postgrs」などを記述する。サンプル中には「pear-drivername」との記述もあるがmdb2が使えるかどうかは不明(おいおい調べていかなくてはいけない)。
もちろん使用するデータベースは別途用意しておく必要がある。

■mod_rewriteの設定
cakePHPではシンプルなURLを使用するために、mod_rewriteを使う。これはhtaccessファイルに記述されているのだが、当然htaccessファイルが利用できるように設定しておかなくてはいけない。よってapacheの設定でドキュメントルートについて、以下のように設定をしておかなくてはいけない。AllowOverride All

ここまでで準備はOK。ドキュメントルートにアクセスすると「CakePHP Rapid Development」なるメッセージと諸々情報が表示される。

ここまでで一段落。とりあえずcakePHPのインストールは完了だ。たしかにインストールは簡単。しかしここから何をどうしてよいかはまだまったくわからない。これからマニュアル&サンプルと格闘していかなくてはいけないのだが、メモをかねてここで書いていこうと思う。

mojavi3をあきらめる

今回諸々mojavi3を勉強するにあたり、いったんmojavi3に関しては検討からはずすことにした。mojaviのサイトもほとんど動かなくなって結構時間がたつし、サイトリニューアル後もまだ動きがない。このまま消えゆく可能性も否定できないからだ。
あとmojavi3から派生したagaviやsymfonyを使うという手もあるからだ。しかしこちらも慎重にならざるをえない。agaviはmojavi4に統合されるという話がある(ていうかその前にmojaviプロジェクトが動いてない)。symfonyや、他のフレームワークethnaは、コマンドラインからフレームを準備して作っていく、という手順が好きになれない。きっと別のやり方もあると思うのだけど、コマンドラインが使えない環境だと不便になりそう。
もっとも・・・コマンドラインが使えない(サーバにログインできない)ような環境での開発でフレームワークは必要ないのかもしれないけれど、やはり一つ作ったものはできるだけ使いまわしたい。

その他のPHPフレームワークとしては大本命と目されるZend Frameworkと、あとはcakePHPといったところか。Zendが早くstableなバージョンが出てくれればとは思うのだが、まだしばらく時間がかかりそう。少しcakePHPを触ってみようと思う。

PEARはPHP5対応ではない

2007/02/17 | mojavi3

自分的には、mojaviのキーポイントは、如何に必要なPEARライブラリを使って効率よいプログラミングをするか、というところにある。
mojavi3は標準でデータベースを管理できるようになっているようだが、実際にコーディングする段階では、PEAR::DBやPEAR::MDB2を使うほうが何かと便利になるので別途組み込むことにした。
いざ組み込んでみると大量にエラーが吐かれる。どうもこれはPEARがまだ完全にPHP5に対応していないことに起因するようだ。MDB2でさえこの状態なのだから、他のパッケージならなおさらのことだろう。
完全な解決策ではないが、こんなふうにしてエラーを回避することにした。

ini_set(“display_errors”, 0);
ini_set(“error_reporting”, false);
require_once(‘MDB2.php’);
ini_restore(“error_reporting”);
ini_restore(“display_errors”);

美しくはないけれど、PEARライブラリをすべて自前で書き直すわけにはいかないので、これが精一杯だろう。ここまでやって、無事データベースに接続できることも確認できた。
まぁ、及第点といったところだろうか。

オートローダ

2007/02/16 | mojavi3

mojavi3(PHP5?)で採用されているオートローダ。ちょっと調べてみた。
プログラム中でクラスを使用する際に、あらかじめそのクラスがどのファイルに書かれているか設定しておいて、実際にそのクラスが呼び出されたら、自動的に設定ファイルから、必要なファイルを読み込むということのようだ。つまり、今まではたいていスクリプトの頭でrequire文を記述したけれど、これだと実際にクラスを使用しなくてもコンパイルしてしまうのでオーバーヘッドが大きい。ということで実際にクラスが呼ばれたら、勝手に元ファイルを読み込むということのようだ。
確かにプログラムが大きくなる傾向があるから、こういう処理は大切なのだとは思う。でも所詮PHPじゃん、そんなこと気にせずやりたい。だって大規模な開発はJavaでやればいいんだから。
PHPはJavaに近づこうとしているようにしか見えないけれど・・・。PHPって手軽に使える言語だからいいのに。
ま、使い方はわかった。あとはMDB2とQuickFormだな。

mojavi3とmdb2

2007/02/15 | mojavi3

mojavi3になってデータベースも標準で扱えるようになった。「すばらしい」と思ったのもつかの間、それを使おうとすると、また低級言語にもどらないといけない。つまりライブラリが使えないということで、直接mysql_queryなんて関数を使わないといけないようだ。んでちょっと調べて、行き当たったのがこちらのページ

対象はPEAR::DBだけど、これならMDB2に応用可能だろう。このサイトは諸々かなり詳しくmojavi3について書かれているので、mojavi2のことがある程度理解できていれば、ここを読みさえすれば習得するのは容易だと思う。しかも都合のいいことにQuickFormやSmartyの組み込み方もある。

来週クライアントとの打ち合わせがあるので、少しくらいmojavi3を使えるようにしておきたい。データベースが使えてQuickFormが大丈夫になれば、あとはいくつかライブラリをそろえれば何の問題もない。この数日が山だなぁ。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net