のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,063,120人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    元スレ【PHP】フレームワーク CakePHP 10ホール目【v1.3】

    php覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    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 = :

    コード数行~数十行単位であたりがつくんだったらそれでもいいと思われ
    どのクラスの呼び出しで時間食ってるのか、とかの視点でみたいんだったらプロファイラ


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について