今現在、phpとsmarty、ライブラリとしてPECL,PEAR,Zendを入れて使ってる。モデル要素はLibとしてまとめ、public以下にAppディレクトリ、その中にコントローラーとなるmain.php、ViewとなるSmartyのtemplateを配置し、アプリの開発はPublic以下のアプリと、その動作モデルであるLib以下のAppフォルダに入れる。lib/AppとPublic/App以下を一人が担当し、どちらかというとパフォーマンスと自由度重視でやってきた。でも、XPのように担当を入れ替えようとした時にルールがいい加減過ぎて破綻しそう。。ルールもある程度決めて、常識の範囲で。とやろうとしたのだが、その通りに人は動かない。また、次作ろうと思っているのはそれほどパフォーマンスが必要ないので、フレームワークを使って楽ちんにやろうかと。。
検討したのはCakePHP,CodeIgniter,ZendFramework,FuelPHPである。まずZendはLibraryだけ使ってても重いのでパス。CakePHPは有名(よく聞く)だが遅そうなのでパス。CodeIgniterが良さそうだったら、日本国内ではライセンスの問題が発生しているとかの話をみたので、発展中でちょっと危険だが新しめのFuelPHPを試す。
本家はここ。
fuelphp
現在の最新バージョンは1.4。
解凍すると、
> ls -al 合計 88 drwxr-xr-x 5 fff users 4096 1月 7 11:00 . drwxr-xr-x 3 fff users 4096 1月 7 11:00 .. -rw-rw-r-- 1 fff users 170 9月 9 20:04 .gitignore -rw-rw-r-- 1 fff users 643 9月 9 20:01 .gitmodules -rw-rw-r-- 1 fff users 35655 11月 10 04:07 CHANGELOG.md -rw-rw-r-- 1 fff users 6526 9月 9 20:04 CONTRIBUTING.md -rw-rw-r-- 1 fff users 1817 10月 27 06:37 README.md -rw-rw-r-- 1 fff users 3243 9月 9 20:01 TESTING.md -rwxrwxr-x 1 fff users 2318 9月 9 20:01 build.xml drwxr-xr-x 9 fff users 4096 1月 7 11:00 docs drwxr-xr-x 5 fff users 4096 1月 7 11:00 fuel -rwxrwxr-x 1 fff users 1188 9月 9 20:01 oil drwxr-xr-x 3 fff users 4096 1月 7 11:00 public
こんな感じ。ぱっと見public以下がメインで本体はfuelの中かな?。
Documentを見ると、
> curl get.fuel.com/oil | sh
とやれと。中身を見ると、スクリプトをダウンロードして、起動、そのままgitで落としてくるようになってるっぽい。けど、gitで外部に繋げられる環境限定だよね。そんなわけでマニュアルインストールと。。
なになに?とりあえず、パーミッションをセットしろと。
/fuel/app > chmod 766 cache/ logs/ tmp/ config/
で「app/config/config.phpを好きなように編集しろ?。」だと?。ファイルを見ると、デフォルトをオーバーライトするっぽいので、とりあえず放置で。
一応これでインストール完了。
public/index.phpにアクセスしたら何か出るかな?。と思って繋いでみたけど、落ちるな。。
Fatal error: Exception thrown without a stack frame in Unknown on line 0
php.iniのdate.timezoneを設定してない、もしくはUTCだと落ちるらしい。これを設定してあげれば、うご・・・404かよ。
http://localhost/fuelphp-1.4/public/welcome
welcomeページが動いた。
http://localhost/fuelphp-1.4/public/welcome/hello
こうすると、hello worldが出る。
なるほど。app/controllerが作られてそれが呼ばれるのか。
ruby on railに影響受けてるのか?。
ここでrewriteエンジン使われるのか。まぁいいか。