トップページphp
995コメント290KB

【PHP】フレームワーク CakePHP 13ホール目【v2.0】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2011/11/09(水) 01:05:10.60ID:???
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
http://github.com/cakephp

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja

前スレ
【PHP】フレームワーク CakePHP 12ホール目【笑】
http://hibari.2ch.net/test/read.cgi/php/1309505626/
0452nobodyさん2012/01/09(月) 08:58:56.35ID:???
その部分にってのは紛らわしいなごめん
Router::connect()の第3引数で指定するってこと。
0453nobodyさん2012/01/09(月) 09:04:31.25ID:???
調べ中ですがまだうまくいっていません
ちなみに$paramは文字列で、複数ある場合もありますが大丈夫でしょうか
0454nobodyさん2012/01/09(月) 09:46:49.44ID:???
数値ならってわざわざ書いたのはなんでだと思う?
0455nobodyさん2012/01/09(月) 23:29:06.48ID:???
cakephpのサイトだけ紹介してるサイトないかな
0456nobodyさん2012/01/09(月) 23:34:27.49ID:SU3KFcHv
2になって、AuthComponentがかなり洗練されたね
0457nobodyさん2012/01/09(月) 23:37:13.69ID:???
CakePHPでページを表示すると下の方にsqlを200件だしているような表示になります
これは実際に200件実行してるということでしょうか
すると問題ありますかね
0458nobodyさん2012/01/09(月) 23:43:44.32ID:???
件数取得してるだけじゃないのか?
sqlを200回実行してるわけねーだろ
0459nobodyさん2012/01/09(月) 23:49:11.21ID:???
>>458
ありがとうございます。
(default) 262 queries took 46 ms こう表示されてました。
0460nobodyさん2012/01/09(月) 23:55:34.73ID:???
>>459
262回クエリ投げてるな
どんなページだか知らないがさすがに多すぎると思う
っていうか、自分で実装したコードなんだろうからクエリ回数くらい検討つくだろう
アソシエーションで勝手にいっぱい持ってきているのならcontainableで引っ張ってくるデータを厳選すればいいぞ
0461nobodyさん2012/01/09(月) 23:58:51.05ID:???
>>460
ありがとうございます。
containable調べてみます
0462nobodyさん2012/01/10(火) 01:48:35.15ID:???
containつかったら88 queriesまで減らせませした
0463nobodyさん2012/01/10(火) 03:05:48.92ID:Rzgwr3Tg
CakePHP2.1alpha を早速いれて試してみたが、エラーメッセージ(スタックトレース)がかなり見やすくなってる
0464nobodyさん2012/01/10(火) 05:46:55.61ID:???
Cakeって気付くとめちゃめちゃクエリ投げてるよね
遅い原因の一つはこれか?
0465nobodyさん2012/01/10(火) 10:19:59.29ID:???
今頃気づいたのか
Yiiにしとけ
CakePHPはオワコン
0466nobodyさん2012/01/10(火) 12:07:44.08ID:+4VQFJJn
v1.2の話なんだけど
aテーブル
bテーブル
a_bテーブル
があるとして
a にhasAndBelongsToManyを設定して
a_b にbelongsToを設定したら、このbelongsToがスルーされる。なぜだかわかる?
削除用に設定したいんだけど、毎回bindModelするしかないのかな。
0467nobodyさん2012/01/10(火) 12:11:35.74ID:???
Yiiってほとんどのレンタルサーバーで使えないじゃんw
0468nobodyさん2012/01/10(火) 13:05:20.54ID:???
PDO使うからか?
0469nobodyさん2012/01/10(火) 13:14:52.36ID:???
Yiiっていいの?
0470nobodyさん2012/01/10(火) 13:32:02.30ID:???
>>466
recursive設定するのはどうかな
0471nobodyさん2012/01/10(火) 19:50:56.57ID:???
最近2.0使ってるんだけど、本番環境時に/foos/barとか適当なURLにアクセスすると
表向きは404返してくれるんだけど、error.logにmissing controllerが記録されるようになった気がする
テスト環境時はmissing controllerエラーを表示してくれてOKだけど、本番でそれがerror.logに記録されるのはなんか変じゃないか?
/robots.txtとか/favicon.icoとかにアクセスがあったら、ひたすらerror.logに記録されちゃってるし(ファイルがない場合)
0472nobodyさん2012/01/10(火) 21:31:38.90ID:???
それ、php.iniの設定では?
04734712012/01/10(火) 22:52:12.56ID:???
>>471
説明不足ですまぬ
/app/tmp/error.logに記録されまくって困っている
0474nobodyさん2012/01/11(水) 09:07:32.93ID:???
>>471
.htaccessでなんでもかんでもCakePHPに渡すようになってる事が問題
0475nobodyさん2012/01/11(水) 16:35:42.80ID:???
設定でExceptionHandlerがログを取るかどうかが指定できたような気がする
今再インストール中で確認できないが
04764712012/01/11(水) 19:36:53.02ID:???
>>474
1.3の頃はそんなことなかったんだけどなあ

>>475
サンクス
ちょいと調べてみる
0477nobodyさん2012/01/12(木) 06:51:34.68ID:???
2.0ではController::cakeError()の代わりにどうやってエラー画面出すの?
0478nobodyさん2012/01/12(木) 13:41:50.62ID:???
>>477
http://c-brains.jp/blog/wsg/11/12/08-114554.php
0479nobodyさん2012/01/12(木) 20:06:56.05ID:srRhUW1K
>>470
返信サンクス
解決方法探し当てた。
http://d.hatena.ne.jp/cakephper/20100826/1282798441
0480nobodyさん2012/01/13(金) 01:39:04.98ID:ayVGOPQu
通常セッションの有効期限はcore.phpで設定すると思いますが、
コントローラーの中で動的に変更したい場合どうすればいいですか?
0481nobodyさん2012/01/13(金) 17:22:59.89ID:???
Cakeで作られたサイトのフォーム見ると、

<input name="data[Post][title]"
じゃなくて
<input name="title"

になっている場合があるのですが、
これって単にフォームヘルパーを使ってないだけですかね?
それともフォームヘルパーでnameを配列にしない方法があるのでしょうか?
0482nobodyさん2012/01/13(金) 18:28:21.82ID:???
Cakeのヘルパーは使えないことで有名だからな
0483nobodyさん2012/01/14(土) 21:18:17.06ID:???
関数で帰ってきた配列を代入せずに、
そのまま添字付けることって可能?

test()['test']

みたいな
0484nobodyさん2012/01/14(土) 21:28:07.86ID:???
やってみりゃいいじゃん
0485nobodyさん2012/01/14(土) 21:47:35.89ID:???
できなかったから他の方法ないかなぁと思って
内部的に戻ってきた配列に添字つけて参照するだけだし、
難しそうではないんだけどなぁ
0486nobodyさん2012/01/14(土) 21:55:23.06ID:???
あーよく俺もそれできたらいいなと思う
つーかCake関係ないやんそれ
0487nobodyさん2012/01/15(日) 00:09:42.08ID:???
function getValueFromFunc($func,$key) {
$a = $func();
return $a[$key];
}
0488nobodyさん2012/01/15(日) 15:39:15.61ID:???
http://blog.s21g.com/articles/20
こんな感じでURLを丸ごとパラメータとして渡したいんですが
Cakeでやる方法があったら教えてほしいです
0489nobodyさん2012/01/15(日) 16:40:34.32ID:???
cakeってパラメータにメタ文字使えないんじゃ
0490nobodyさん2012/01/16(月) 17:55:18.55ID:l7Fd5fgU
.NET interoperability overview of Phalanger 3.0
http://www.php-compiler.net/blog/2012/net-interoperability-overview-of-phalanger-3-0
0491nobodyさん2012/01/16(月) 19:49:38.62ID:???
>>485
PHPの公式コミュニティ行って頼んでこいよハゲ
0492nobodyさん2012/01/17(火) 00:47:37.68ID:???
1.3.10使ってるんだけど、cccが3のレコードのaaaとbbbを更新したくて

$this->updateAll(array('aaa' => 1, 'bbb' => 2), array('ccc' => 3));

だと失敗して

$data = $this->find('first', array('conditions' => array('ccc' => 3), 'field' => array('id')));
$data['ModelName']['aaa'] = 1;
$data['ModelName']['bbb'] = 2;
$this->save($data);

だと成功する。今まで2年ぐらいCake使っててこういうの初めてで、何故だかわからないんだけど
わかる人いる?
0493nobodyさん2012/01/17(火) 01:07:49.33ID:???
>>492
1個目の例で失敗しそうにないけど、何て出て失敗するの?
0494nobodyさん2012/01/17(火) 01:37:40.29ID:???
事故解決。これでした
http://stackoverflow.com/questions/4488945/cakephp-updateall-not-working
0495nobodyさん2012/01/17(火) 02:50:02.37ID:???
Cake2.0を使ってます。モデル内でコンポーネントを使っていて
PHPUnitでそのモデルをテストすると
Fatal error: Class 'Component' not found in /path/to/Controller/Component/HogeComponent.php on line xx
と怒られる。

ちなみにモデル内でのコンポーネントの呼出はこんな感じ。
App::uses('HogeComponent', 'Controller/Component');
$hoge = new HogeComponent(new ComponentCollection());

Call Stackの最後にはinclude( '/path/to/Controller/Component/HogeComponent.php' )とあるんだけど
これはコンポーネントのインクルードでなにか問題があったということかな?

コンポーネントが見つかりませんというエラーメッセージについて分かる人いたら教えてください。
0496nobodyさん2012/01/17(火) 02:58:24.75ID:7jQnUKTc
斜め読みだけど、その HugeComponent の冒頭に
App::uses('Component', 'Controller');
と付け加えればよいのでは?
0497nobodyさん2012/01/17(火) 04:10:42.74ID:???
それならテストコードにつけるべきだな。
モデルでコンポーネント使う設計についてはもはや何も言うまい
0498nobodyさん2012/01/17(火) 08:53:23.17ID:???
>>496
斜め読みすげえ!
エラーが消えてテストできるようになったよ。サンクス!
0499nobodyさん2012/01/17(火) 11:04:16.23ID:7jQnUKTc
>>498
CakePHPは、2になってクラス階層を意識する場面が多くなったと思う。
2.1ではさらにその傾向が強くなっている。
2で開発しているのだったら、今のうちに2.1にアップグレードしておくのをおすすめする。
0500nobodyさん2012/01/17(火) 15:19:00.74ID:???
2.1ってそんなに変わるのか?
リリースによれば2.0と完全後方互換があるらしいけど
0501nobodyさん2012/01/17(火) 16:07:54.57ID:???
1.3で開発してるけど、後々問題になりますか?
0502nobodyさん2012/01/17(火) 17:59:13.26ID:???
>>501
1.3→2系の移行は結構な手間になるから
新しく作るなら2にしといた方がいいんじゃないすかね。
0503nobodyさん2012/01/17(火) 20:03:02.72ID:???
フレームワークのほうが面倒になるとか本末転倒だな
0504nobodyさん2012/01/17(火) 20:24:27.94ID:???
Phalanger 3.0 (2012年1月) をリリースしました。
http://awabi.2ch.net/test/read.cgi/poverty/1326781620/
0505nobodyさん2012/01/17(火) 20:36:02.54ID:???
>>501
ディレクトリ階層がかなり変わったので、別物と考えた方がいい。
0506nobodyさん2012/01/17(火) 21:29:13.39ID:???
みんなはもう2系で開発してるの?情報少なくないか?
0507nobodyさん2012/01/17(火) 23:25:43.99ID:???
ゼロから始める人には入門情報が少なくて厳しい状況かも知れないね
でも1.x系の開発経験あれば、マイグレーションガイドを見つつ書いていけば何とかなる
何とかならなかったときにはこのスレがある
0508nobodyさん2012/01/18(水) 11:54:09.09ID:1MLy4CWB
v2のメリットは、実行速度の向上につきると思う。
問題は、既存の資産が直接使えなくなったこと。
特にAuthまわりは、完全に変わってしまっている。
これまで、直接 Auth コンポーネントをオーバーライドして機能拡張していたんだけど、すべて書き直して、プラグイン化した。
*機能拡張の内容は、「ユーザ登録確認メールの送信」「オートログイン」「SSL対応」「権限チェック」。
しんどかったけど、今後のプロジェクト間での使い回しと拡張性が確保できた点では、それなりのメリットが見込めそう。
メール送信も大きく変更された部分だが、これはすばらしい出来。
0509nobodyさん2012/01/18(水) 14:59:56.52ID:???
Authが異なるのは辛いな・・。
メール送信や画像アップロードはライブラリ作ってるけど、
Authはフレームワーク全体に関わることだからな
0510nobodyさん2012/01/22(日) 17:25:08.97ID:MxKFDdQF
1.3系での話しですが、日本語メールを送る場合
EmailComponent::templateで指定したファイルの文字コードは
UTF-8もしくはShift-JIS、どちらが正しいのでしょうか?
0511nobodyさん2012/01/22(日) 22:16:15.47ID:???
文字コードで迷ったらutf-8がいいですよ。
あとあと楽です。
0512nobodyさん2012/01/23(月) 00:38:44.40ID:???
全角含まないで保存すると元に戻るのが煩わしい
0513nobodyさん2012/01/23(月) 06:06:15.69ID:???
function add() {} // 保存アクション
function edit() {} // 編集アクション
↑8割方同じ処理をしているアクションがあるときどうしてる?
俺はaddに同一処理かいて、
エラーや編集のときの個別処理だけeditに書いてるんだけど、
アクションのURLが違うからエラーでの書き込みフォームに戻る処理などが難しい
editでreturn;するとeditビューが呼ばれてしまう
0514nobodyさん2012/01/23(月) 11:36:23.68ID:Vo1w/brb
echo $form->select('Order.prefectures', array(
'北海道' => '北海道',
'青森県' => '青森県',
'岩手県' => '岩手県',
'宮城県' => '宮城県',
'秋田県' => '秋田県',
'山形県' => '山形県',
'福島県' => '福島県',
'茨城県' => '茨城県',
(中略)
'鹿児島県' => '鹿児島県',
'沖縄県' => '沖縄県'
), 1, array('empty' => null, 'class' => 'orderform')) . PHP_EOL;
と書いたんですが、出力をみると一つ目の北海道にselectedがついてなくて、

<option value="福島県">福島県</option>
option value="茨城県">茨城県</option>

と茨城県だけ頭の<が出ないです
茨城の項目を削除すると、次の栃木の頭の<が消えるので福島が原因かと思ったんですが
福島を消しても栃木が消えるので8個目が消えるという感じかも知れないんですが
解消する方法ご存知でしたらお教えくださいますようよろしくお願いいたします

0515nobodyさん2012/01/23(月) 12:43:46.65ID:???
日本語文字コードじゃね?
0516nobodyさん2012/01/23(月) 15:21:45.11ID:???
>>515
ありがとうございました
google chrome の問題だったみたいです
0517nobodyさん2012/01/23(月) 16:49:13.48ID:???
>>513
俺はaddとeditは一緒にaddの中に書いて、idがあるかどうかで条件分岐してるわ
アクション分けたいならfunction _addOrEdit()みたいなのをつくって、共通処理はそこに突っ込めば?
0518nobodyさん2012/01/24(火) 16:24:41.34ID:???
cake2.0でdatetimeのフォームから送信した年月日が,配列のままDBに格納されようとしてエラーが出ます。
deconstructが効いていない理由がわかりません…助けて。

view:
echo $this->Form->label('birthday', '生年月日');
$minY = date('Y')-100;
$maxY = date('Y')-18;
echo $this->Form->datetime('birthday', 'YMD', null, array('monthNames' => false, 'minYear' => $minY, 'maxYear' => $maxY, 'separator' => array('年', '月', '日')));

コントローラ:
if(!$this->Hoge->save($this->request->data)) {
$this->Session->setFlash('データの登録に失敗しました。');
}

Formヘルパー(separatorの配列対応):
//$opt = implode($separator, $selects);
$opt = "";
$i = 0;
if (is_array($separator)) {
foreach($selects as $select) {
$opt .= $select.$separator[$i];
$i++;
}
} else {
$opt = implode($separator, $selects);
}
0519nobodyさん2012/01/24(火) 22:58:24.14ID:???
>>518

手元で検証してみたら、確かにModel::deconstruct()が仕事しなかった。
んで、最新版落っことしてきて、コアの部分をすげ替えたら動いたよ。
cake2最初期版はなんか問題があったんかもしれんね。

ついでにもうひとつ。
FormHelper::dateTime()だけど、引数の取り方変わってるよ。
その書き方でほんとにプルダウン生成されてるかい?

http://book.cakephp.org/2.0/ja/appendices/2-0-migration-guide.html#formhelper
05205192012/01/24(火) 23:16:35.15ID:???
連投すまんぬ。もうひとつ捕捉。
DBにdate型とかでbirthdayフィールドが存在しなければ
Model::deconstruct()はきっと何もしてくれない。
Model::deconstruct()のメソッド内にある
$type = $this->getColumnType($field);
で有効な値が取れて初めて機能する模様。

なんともはや。。。
0521nobodyさん2012/01/25(水) 16:31:52.13ID:???
2.1でAppControllerとかのファイルが無くなっているんだけど、
これは今後のバージョンで無くすということ?使うなということ?
05225212012/01/25(水) 16:40:31.53ID:???
すまん、libの中から消えただけで、appの下に標準で含まれるようになったのか。
0523nobodyさん2012/01/26(木) 22:25:16.80ID:???
2月中に2.1正式版出るかなー
今2.0でリリースすると中途半端な気がして、2.1のリリースを待機している・・・
0524nobodyさん2012/01/27(金) 13:11:04.23ID:???
Cakeからの移行先って何か考えてますか?
そろそろPHP5.3仕様のフレームワークに移りたい・・・
あと、データが配列なのももう嫌。

今のところ、正式版でてるのはSymfony2かFuelPHPかな?
Yiiも次期バージョンでは5.3を使うらしい。
0525nobodyさん2012/01/27(金) 13:56:20.77ID:???
なんで配列は嫌なの?
0526nobodyさん2012/01/27(金) 14:58:32.50ID:???
配列嫌ならRoR行こうぜ
0527nobodyさん2012/01/27(金) 15:19:00.44ID:???
>>525
たとえば、ビューがifだらけになっちゃうことなどです。
バーチャルフィールドである程度は対処できますが、
限界がありますし・・・
0528nobodyさん2012/01/27(金) 19:36:57.17ID:???
PHPUnit3.6インストールしたら、debug()とか出力されなくて
マニュアルを確認すると
「TipAll output is swallowed when using PHPUnit 3.6+. Add the --debug modifier if using the CLI or add &debug=1 to the url if using the web runner to display output.」
test.phpで走らせてるので、URLに&debug=1をつけたのですが
何も出力されません。わかる人いたら教えてください。

環境
CakePHP 2.0.5
PHPUnit 3.6.9
0529nobodyさん2012/01/27(金) 20:38:59.59ID:???
>>527
そんなこと無いけど。
どういう場面でviewがifだらけになるのか、想像つかん
0530nobodyさん2012/01/27(金) 21:51:47.71ID:???
1.3.14ですが、webrootの中にフォルダを作り、
同名のコントローラにアクセスすると、そのフォルダを読みに行ってしまいます。


/webroot
└/test
└index.php

の場合、http://example.com/test/
でアクセスすると、/webroot/test/フォルダ内のindexファイルを探す

同名のフォルダがあった場合、コントローラーを読み出すようにするには
どうすればいいのでしょうか?
0531nobodyさん2012/01/27(金) 22:30:54.56ID:???
>>524
配列が嫌って、PHP全否定じゃないですかw
0532nobodyさん2012/01/27(金) 23:47:52.29ID:???
>>530
仕様
別名にするか.htaccessを書き換えるしかない
0533nobodyさん2012/01/28(土) 16:14:55.65ID:???
sqliteってすごく便利だったのね
0534nobodyさん2012/01/29(日) 02:29:16.25ID:???
ページネーションのソートの際に、対象フィールドのリンクには
<a class="desc" のようなclass名が付くと思うのですが、
1.3.14では付きません。なにか設定方法が変わったのでしょうか?
0535nobodyさん2012/01/29(日) 20:34:45.68ID:???
1 -> 2 -> 3
と遷移する画面があるとして、1でPOSTされたdataをそのまま3で使いたい時
どうすればいいかね?
2でinput hiddenで埋め込むしかないの?
0536nobodyさん2012/01/30(月) 01:35:56.87ID:???
>>535
これどうだい?
https://github.com/jaredhoyt/cakephp-wizard/
0537nobodyさん2012/01/31(火) 20:54:05.78ID:???
なんで2.0になってから404 Not Foundもapp/tmp/error.logに記録されるようになったん?
ボットの適当なアクセスでerror.logが更新されまくって困るんだが
0538nobodyさん2012/01/31(火) 21:27:48.91ID:???
>>523
今、2.0系で開発してるんだが、2.1系とどれくらい互換性あるのかね
2.1まで待てばよかったかなぁ・・・
0539nobodyさん2012/02/01(水) 14:03:22.66ID:???
find("all")で全レコードをviewで一覧出力したあとで,
リンクをクリックすると絞り込み検索して,結果を一覧表示させる方法がわからないです。

全レコードの出力はindexアクションなんだけど,
絞込検索の方は,また別にアクションを書く必要があるの?
それともindexアクションの中で絞り込むことってできるの?
0540nobodyさん2012/02/01(水) 14:31:02.84ID:???
最初の一覧表示を「全部が含まれる絞り込み」と考えればコードは一つ。
0541nobodyさん2012/02/01(水) 18:11:27.88ID:???
>>538
2.1は2.0完全互換なので問題なく動くはず
ただ2.1でも重要な部分のアップデートがあるから、その辺はどちらにせよそのうち直すことになりそうだけど
0542sage2012/02/03(金) 01:46:58.38ID:???
Roadmaを読むと3.0でネームスペースの導入とオブジェクトを返す仕様にするとあるな。
0543sage2012/02/03(金) 01:48:56.31ID:???
RoadmaでなくてRoadmapな!
0544nobodyさん2012/02/03(金) 03:11:07.37ID:???
× Roadma
○ Readme

スペルは正しく書きましょう
0545nobodyさん2012/02/06(月) 21:53:18.73ID:???
CakePHPつかえば彼女できるの
0546nobodyさん2012/02/07(火) 02:09:02.39ID:???
ちいたん Yiiつかってまた戻ってきた
やっぱり人口が多いのが一番だね英語知らないから
0547nobodyさん2012/02/07(火) 14:09:10.01ID:???
ちいたんもYiiもcodeIgniterも
俺的にはオレオレと変わらないと思ってる。

多少動作が重くても、扱える人口が多いことに意味がある。
0548nobodyさん2012/02/07(火) 19:26:51.77ID:???
>>547
明らかにYiiはCakePHPより優れてるよ
日本人の使用者人口が増えれば日本語のリソースも増えてくると思うし
英語がダメな人はもう少し待つほうがいいかもな
0549nobodyさん2012/02/07(火) 19:36:59.22ID:???
>>548
本当にYiiが優れてるのなら、もっとブログで情報発信したりスレに書き込んだりしてくれよ
軽く触った感じではCakePHPに次いでいい感じだったけど、ユーザー少なそうで本腰入れる気になれない
ユーザーいないから情報出なくて、情報出ないからユーザー増えないという悪循環にはまってる感じがする
0550nobodyさん2012/02/07(火) 20:08:39.28ID:???
で、自分しか使ってないなら=オレオレと変わらないんじゃね?
って考えになるんだよな。
0551nobodyさん2012/02/07(火) 22:20:42.14ID:???
>>549
>ユーザーいないから情報出なくて、
日本語で情報探すとそう感じるけど、
英語で探すとけっこう出てくるよ。
てかドキュメントがしっかりしてるからあんま必要ないけどね。

まぁ世界全体でだけど、こんな感じの伸び率
http://www.google.co.jp/trends/?q=cakephp,codeigniter,yii&ctab=0&geo=all&date=all&sort=0
YiiがCakePHPやCodeigniterと差を縮めていってる
CakePHPに関しては減ってる

日本でもだんだん増えるよ、確実に
ブログはたまに書いてる
■ このスレッドは過去ログ倉庫に格納されています