元スレ【PHP】フレームワーク CakePHP 10ホール目【v1.3】
php覧 / PC版 /みんなの評価 :
402 = :
1.3と1.2 初学者におすすめなのは?
403 = :
RDBMS + ORMはとてもキモくて使う気になれなかったが、
MongoDBとやら + CakePHPは面白そうだな。
405 = :
DataSourceを拡張したものでmemcachedとかTokyo Tyrantとか用のが
公開されてるね(試してない)。JOINがないなら、わざわざActiveRecord通すことも
ないとは思うけど・・・。セッションの保存用としての利用にはMemcachedは
デフォで使えるみたいだね(やっぱり試してない)
>>402
どうせバージョン乗り換え時に相応の学習コストがかかるし、どっちもStableなんだから1.3
>>403
ORM ってRDBの取り回しのために使うもんだと思ってた
406 = :
CakePHPとMongoDBでやろうとしたけど、色々ハマってやめた。
CakeはRDBを前提としすぎてると思った。
俺の思った一番のネックはHelper->setEntity()だな。
407 = :
>>406
レスどうもです。ちょっとわからなかったので自分なりに考えてみた。
・MongoDBはスキーマレス
・CakeのMongoDBデータソースを使う場合、モデル内にスキーマらしきものを記述する(らしい)
・Cake本体が"Describe"とか発行してテーブル(コレクション)の構造を把握することが出来ないので、
Helper側でModelName.FieldNameを自動設定する時にはまり所が出来る
・フィールドの中にさらにArrayが入ってたりするともう大変
こういう理解でいいのかな・・・cakephp-mongodbのサンプル見る限りはなんとかなりそうな気がしたが、
いろいろでてくるのか~。
気力と実力と時間が出来ない限りは、CakePHP + MySQL をおとなしく使い続けるしかないのかな・・
そのへんLithiumはイケてるのかと思うと迷う。
408 = :
>>407
FormHelperで配列をPOSTするようなのが、
type=select multiple=trueじゃないと作れないからね。
同じモデルへの送信を複数に出来るから、
[{'name':'foo'},{'name':'bar'},{'name':'buz'}]見たいなのは出来ても、
['foo','bar','baz']みたいなのは出来なかったよ。
でもcakephp-mongodbのコミッタも増えてるし、
そのうち使えるようになるんじゃないのかな。
409 = :
コンポーネントを動的にロードする方法ありませんか
今作ってるあるコントローラが、コンポーネント50個ぐらい使ってて、var componentsが長すぎる
デカいアプリ作るのに向かないのかなCakeって
410 = :
>>409
http://book.cakephp.org/ja/view/933/The-App-Class
Cookbookくらいぜんぶ読んどいて損ないから。
というか、もしチーム開発してたら迷惑だから。
411 = :
質問者じゃないけど、ちょっとやってみたけど、
App::import('Component', 'Foo');
しても、initialize()やstartup()を上手い事呼んでくれる訳じゃないのね。
public function index(){
$Foo = App::import('Component', 'Foo');
$Foo->initialize($this);
$Foo->startup($this);
}
こう書けばいいのかとも思ったけど、
beforeRender()やshutdown()も呼ばれないし、これ使えないんじゃないかな?
なんか勘違いしてるんだろうか。
http://book.cakephp.org/ja/view/933/The-App-Class#コンポーネントの読み込み-939
うわ、ChromeがURLコピーした時URLエンコードしてくれなくなってる・・・
412 = :
そりゃ当然コールバックは呼ばれないよ
414 = :
App::import('Component', 'Foo');
$foo = new Foo();
$foo->initialize($this);
$foo->startup($this);
こんな感じかね
自前でこういう関数作っとけばいいんじゃね
416 = :
>>414
ベターだろうけど色々ふぐあいの原因になる。
そもそも設計し直したほうがいい。確実に
417 = :
どっちにせよコールバックが動かないならなんの意味も無い気がする
419 = :
>>416
なんで?
Cakeも中で同じような処理やってんじゃないの?
設計し直しても作らなければならない機能は減らない
420 = :
コンポーネント50個ってなんでもかんでもコンポーネントにしてるだけだろ
421 = :
411だが、変数名は試した時は$FooComponentだったんだ。
貼る時長いなと思って削っちゃった。
で、結局コールバックが呼ばれないなら、
コンポーネントよりもlibsに置いて素のクラスとして呼んだほうがいい気がする。
コールバックが呼ばれるからこそのコンポーネントだと思うし。
>>409 は50個あるコンポーネント、全部AppControllerで設定してるの?
そんだけコンポーネントあれば、部分的に使うやつもあるんじゃないの?
あと10日ほど前に同じ話題出てたよ。
>>331-333
422 = :
modelのdeleteAllのコンディションで、
dateフィールドの日付が一週間以上前のデータを全て消すということはできるでしょうか?
例えば、
bookテーブル (id, name, date)
ここのdateが 2010-11-30 とか 2010-12-10 とかバラバラになり、一週間以上前の
データを全て消したいです。
マニュアルを読んでいると、特定の日付を指定して消すことはできるみたいなのですが、
こういう複雑なことはMySQLで直接書くしかないでしょうか?
423 = :
ネットを参考に試してみたコードはこんな感じです。
でも動かなかった。。
$aWeekBefore = strtotime('-1 week');
$my_datetime = date("Y-m-d",$aWeekBefore);
$conditions = array('created' => '< ' . $my_datetime);
$this->deleteAll($conditions);
424 = :
お騒がせしました。以下のコードで出来ました。
$aWeekBefore = strtotime('-1 week');
$aWeekBefore = date("Y-m-d",$aWeekBefore);
$conditions = array("created < '$aWeekBefore'");
$this->deleteAll($conditions);
425 = :
$conditions = array('created <' => $aWeekBefore);
じゃなかったっけ
426 = :
>>425
むむ、一応動いたんですけど、そっちのほうが正しいやり方なんですかね。
マニュアルが見つからないもので。。
427 = :
http://book.cakephp.org/ja/view/74/Complex-Find-Conditions
「見つからない」って、Cookbookぐらい一通り読んでおけよマジで
428 = :
すいません、すいません。deleteの項目しか見てませんでした。
そして、ありがとうございます。
430 = :
bookって言うぐらいだから全部通して読んでおくしかないと思うよ
セクションごとに「全てを1ページで読む」で
431 = :
てか、リンク先がおかしい
432 = :
わかりにくいと言うより、情報が足りないよね
細かいことが全然わからない
433 = :
cookbook全部読んで情報足りないとおもうなら、
http://api.cakephp.org/classes
これでそれぞれの挙動確認したらいいよ。
あと、もっと深くAPIしるには
coreの中に入ってるtestCase読むのがマジオススメ
こんな昨日あるんだって発見が多い
434 = :
>>433
testCaseは読んでなかったな。
APIリファレンスは必読っていうか、
最近じゃ疑問が出たらCookbookは読まずにAPIリファレンスに直行だ。
435 = :
結局、Cakeにしろ手のフレームワークにしろ
Webアプリを作る奴らの絶対数って減ってるのかな
436 = :
>>431
英語版読んだ方がいいよ。
まあ日本語リソースが充実してるのがcakeの利点の一つでもあるから残念な点だけどね。
437 = :
>>435
Cakeにしろ手のフレ このあたりの意味がよく分からないけど、
webアプリを作る人数は増えてるんじゃないか?
なんとなくだけど。
何で減ってるっておもうん?
438 = :
「オレオレFWを作る人間の数が減っている」と言いたいのだろうと等質の発言をエスパーしてみる
439 = :
Zendしか使ったことないけどCakeどう?
使いやすい?
441 = :
>>439
オレオレ → Ethnaをちょっとだけ使ってがっかり → オレオレ → CakePHP
な俺としては、CakePHPは嫌いです。
2回目のオレオレのとき、php4切りしたから、php4を引きずってるしね。
Cookbookも情報不足だし間違いもあるし、引数が連想配列なのに、
使われるキーがCookbookにもAPIリファレンスにも書いて無いから、
結局ソースを見ることになる。
慣れて覚えるまでは結構イライラするよ。
でも、人口は多いから、ユーザーベースの情報量は多いし、
やっぱりオレオレフレームワークを作るコストや、そこで間違えるリスクを考えると、全然あり。
でもZendとか、他のフレームワーク使ってるなら、あえて乗り換える程良いとこ無い気がする。
442 = :
すまん。確かに統質っぽい書き方だw
Cakeの情報が少ない・古くなったと言うレスを見て
「Cakeやこの手のフレームワークを使う人数も少なくなったのかな?」
ってのが言いたかった。
443 = :
つっても実際1.3になってからの情報はすくないし
444 = :
ModelのafterFind()の第2引数の$primaryって、
どういう場合にtrueになって、どういう場合はfalseなんだろ?
APIリファレンス見ても、いまいち意図がわからない。
http://api13.cakephp.org/class/model#method-ModelafterFind
Whether this model is being queried directly (vs. being queried as an association)
445 = :
上にも書いてたけど、情報多いといっても古いものばかり。
新しい情報ほど少ないってことは実は使ってる人減ってたりして?
446 = :
無いわけじゃないんだけどね。
ただ、検索結果には古いエントリばっかりって感じだと思う。
俺も、単にこれどうやっていいかわかんねぇってのから、
一応Tipsみたいなのまで、ちょいちょい書いてるけど、
CakePHPで検索されてくるのはかなり少ないよ。
447 = :
プログラムの重いところを探すのは、みなさんどうやっていますか?
自分はこんな感じで、もっといい方法あるんじゃないかなあと妄想しています。
$time_start = microtime(true);
for( $i=0; $i<1000; $i++ ){
$str .="$i回";
}
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "$time秒掛かりました。";
448 = :
スレチ
449 = :
まぁ業界的にはxDebugを使ったプロファイリングだろうな。
俺はそんな要件が厳しくないので、めんどくさくてめったに使わないから、
あんま説明はしてやれんが。
xdebugがphp拡張モジュールだから結構準備が面倒だけど、興味があるなら下記でググってくれ。
xdebug プロファイリング
スレに合わせるためにじゃないが、たまたまさっき見かけたのはこれ。
http://blog.restartr.com/2010/10/10/the-xhprofpanel-debugkit-custom-panel-cakephp/
XHProfの出力をDebugKitで見せてくれる、DebugKitのカスタマイズみたいだ。
俺は使ったことは無いから、別にオススメしてるわけじゃないぞ。
XHProfもphp拡張モジュールだから、導入が面倒なのは同じかね。
450 = :
コード数行~数十行単位であたりがつくんだったらそれでもいいと思われ
どのクラスの呼び出しで時間食ってるのか、とかの視点でみたいんだったらプロファイラ
みんなの評価 :
類似してるかもしれないスレッド
- 【PHP】フレームワーク CakePHP 11ホール目【v1.3】 (1001) - [98%] - 2011/6/30 22:32
- 【PHP】フレームワーク CakePHP 19ホール目【v3.3】 (844) - [96%] - 2023/2/2 14:30
- 【PHP】フレームワーク CakePHP 9ホール目【v1.3】 (1001) - [96%] - 2010/11/1 2:53
- 【PHP】フレームワーク CakePHP 15ホール目【v2.2】 (985) - [95%] - 2013/9/7 8:30
- 【PHP】フレームワーク CakePHP 13ホール目【v2.0】 (995) - [95%] - 2012/4/23 21:16 ○
- 【PHP】フレームワーク CakePHP 17ホール目【v2.4】 (984) - [95%] - 2015/1/10 2:45
- 【PHP】フレームワーク CakePHP 16ホール目【v2.4】 (1001) - [95%] - 2014/3/3 3:00
- 【PHP】フレームワーク CakePHP 14ホール目【v2.1】 (1001) - [95%] - 2012/12/3 19:16
- 【PHP】フレームワーク CakePHP 8ホール目【1.3】 (1001) - [95%] - 2010/7/22 22:16
- 【PHP】フレームワーク CakePHP 17ホール目【v3α】 (955) - [93%] - 2016/11/15 20:45
- 【PHP】フレームワーク CakePHP 5ホール目【v1.2】 (985) - [92%] - 2009/3/7 4:53 ☆
- 【PHP】フレームワーク CakePHP 6ホール目【v1.2】 (933) - [92%] - 2009/8/19 2:06 ○
- 【PHP】フレームワーク CakePHP 7ホール目【v1.2】 (1001) - [92%] - 2010/3/18 1:18 ○
- 【PHP】フレームワーク CakePHP 4ホール目【v1.2】 (1001) - [92%] - 2008/12/19 21:06 ○
- 【PHP】フレームワーク CakePHP 12ホール目【笑】 (1001) - [92%] - 2011/11/8 7:01
- 【PHP】フレームワーク CakePHP 3ホール目【本命】 (1001) - [84%] - 2008/6/19 7:19 ○
トップメニューへ / →のくす牧場書庫について