PHPフレームワーク本命(CodeIgniter)

またまたPHPのフレームワーク。とにかく軽い(=機能が絞られている)らしい。インスコは、はっきり書いてないのでメモ。
環境は、WindowsXPでxampp(PHP5.3)で稼動させます。(xamppはc:xamppにインスコし、apacheのドキュメントルートはc:xampphtdocs/です)

  1. ここ「日本CodeIgniterユーザ会」を訪れ、ダウンロードから「All in One 日本語化パッケージ」をダウンロードする。
  2. 解凍し、パッケージを修正してシステムを作るので、オリジナルを保存するか、コピーを好きなプロジェクト名にする。
  3. それからやおら、ここに書いてあることを始める
  4. systemディレクトリをウェブから触れないようにする。すなわち、c:xampp以下に置く。
  5. systemapplicationconfigconfig.phpを修正。

    $config[‘base_url’] = “http://localhost/”;
    $config[‘index_page’] = “”; /* mod_rewrite使うならブランク。(apacheでmod_rewriteを使うこと) */
    $config[‘language’] = “japanese”;
    $config[‘log_threshold’] = 4; /* デバッグレベル */

  6. systemフォルダーの位置をindex.phpに反映

    $system_folder = “../system”;

さくらインターネットで使う場合

Config.sysは次に変更

$confi[‘uri_protocol’] = “QUERY_STRING”

.htaccessは次に変更

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /<サブディレクトリ>/index.php?/$1 [L]

さくらインターネットのサーバーが相当にひねているらしく、多くの人がこのノウハウを伝えている。

CodeIgniterのウリのひとつが、きちんとしたドキュメント。IBMによる入門ページもあります。これによると、USでは流行しているらしい。

個人的にはCakePHPに疲れた。データベースの命名規則、複数のテーブルがあった場合の扱いなどDBレベルの問題がPHPレベルに持ち越されていることを理解するのに、とても時間がかかる。たとえばテーブルをジョインして使うのはSQL文レベルの話であって、プログラムではレコードセットの扱いこそが重要だと思う。
MVCフレームワークは現時点では、コードのメンテナンス性においてベストエフォート(最善の方法)だと思うけれども、そのために生産性が犠牲になっては意味がないと思う。
CodeIgniterのような軽いフレームワークは生産性とメンテナンス性のバランスが大事なのではないだろうか。

コメント