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

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

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

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    451 : nobodyさん - 2010/12/20(月) 17:14:59 ID:??? (+51,+28,+0)
    450です。
    ごめんかぶった
    452 : nobodyさん - 2010/12/20(月) 18:06:14 ID:??? (+68,+29,-20)
    >>449 >>450

    どうもありがとうございます。

    cakePHP独自のやり方があるのかなとも思ったのですが、
    特にそんなことはないのですね。
    453 : nobodyさん - 2010/12/21(火) 00:26:27 ID:??? (+57,+29,-3)
    お前らさぁ
    いつまでORMとかキモいことやってんだよ。
    454 : nobodyさん - 2010/12/21(火) 00:47:24 ID:??? (+51,+28,-1)
    そこにデータがある限り
    455 : nobodyさん - 2010/12/21(火) 02:43:02 ID:??? (+1,-26,-25)
    OOPとRDBを採用するのをやめるまで
    456 : nobodyさん - 2010/12/21(火) 15:24:33 ID:??? (-1,-29,-73)
    actionを自動で作るって無理ですよね?

    やりたいことはビューのテンプレート(アクション)をプログラムで作成して
    それにアクセスしたいんです。Pagesを使うとURLが変わるし・・。
    457 : nobodyさん - 2010/12/21(火) 15:30:28 ID:??? (+52,+29,+0)
    本気で何言ってっかわかんね
    458 : nobodyさん - 2010/12/21(火) 15:43:01 ID:??? (+3,-30,-152)
    等質の発言を俺がエスパーしてみる
    Pages -> = PagesController
    URLが変わるし・・・ -> 同一のURL内で複数の内容を表示させたい
    テンプレート(アクション) -> View TemplateなのかController Actionなのかわからん
    actionを自動で作る -> ????????

    CakePHPにエスパーしてもらうって無理ですよね?と等質が言ってると思われます。
    459 : nobodyさん - 2010/12/21(火) 15:48:10 ID:??? (+57,+29,-51)
    データベースにViewテンプレートを格納する
    改造かプラグインか何かを見かけた事あるし、
    出来なくはないんじゃない?
    なにしたいのかよく分からんから、
    勝手に受け取った印象でだけど。
    460 : nobodyさん - 2010/12/21(火) 16:06:49 ID:??? (+57,+29,-11)
    俺も出来ると思う。

    でも何がしたいのかよく分からないし言ってることが分からないので、
    俺も印象でだけど。
    461 : nobodyさん - 2010/12/21(火) 16:49:48 ID:??? (+9,-30,-217)
    /controllers/test_controller.phpのindexアクションはURLだと
    http://example.com/test/index

    になりますよね?対象となるビューは/views/test/index.ctpにあるわけです。
    では、/views/test/aaa.ctpというファイルを作ったとします。
    当然、コントローラーに
    function aaa(){}
    と書かないと、http://example.com/test/aaa でアクセスできませんよね?

    コントローラーにアクションを書かなくてもアクセスできる方法ってないですか?
    と言うのが質問です。本気で何したいかわからないレベルの質問で済みません。
    462 : nobodyさん - 2010/12/21(火) 16:52:01 ID:??? (-1,-29,-22)
    pages_controllerをコピーしてきて
    名前変えればいい。
    それだけだろ
    463 : nobodyさん - 2010/12/21(火) 16:59:47 ID:??? (+4,-30,-178)
    >>461
    いくつかヒントな
    > 対象となるビューは/views/test/index.ctpにあるわけです。
    コントローラアクションとビューは、必ずしも同じ名前である必要はないよ。
    どのビューを使うかはコントローラアクション内で指定できる。だから条件分岐でビューを切り替えることも出来る。
    > 当然、コントローラーに
    > function aaa(){}
    > と書かないと、http://example.com/test/aaa でアクセスできませんよね?
    ConfigのRoutes.php の設定方法(ルーティング)をよく調べれ。
    URLの操作もそこでできる。

    あとはどう実装したいのか次第。
    464 : nobodyさん - 2010/12/21(火) 17:09:24 ID:??? (+54,+26,-5)
    コントローラー通さないならhtmlでも置いとけば?
    465 : nobodyさん - 2010/12/22(水) 01:01:58 ID:??? (+165,+19,-196)
    質問です。
    CakePHP v 1.3.3

    時間のかかる処理(a)のビューかルーティングが、
    後から実行した処理(b)に奪われる現象に遭遇して困っております。
    aのurlにアクセスすると、bのurlで表示されるべき内容が表示されてしまうと言った具合です。
    urlはaのままです。

    開発時には、そのような現象は発生せず、公開後、多くのユーザが訪れて発生しました。
    複数の処理が実行される状況で発生するようです。

    ですので、シングルトンが関わっているのかなと考えておりますが、
    このような経験をした方は他にいらっしゃいますか?
    または、ルーティングの設定ミスでもこのような現象は発生しますでしょうか?

    解決方法をご存知でしたらご教示頂ければありがたいですmm
    466 : nobodyさん - 2010/12/22(水) 03:14:14 ID:??? (+151,+29,-119)
    >>465
    そもそもアプリ側にバグはない前提?
    ログ見ても見当つかないんなら、応急処置でユーザ毎にある情報
    (DBのレコード等)をロックするようにしてからじっくり考えるとか。
    遅くなるのを要件が許せばね。
    Cake側の機構でありえるのは知らず知らずのうちに
    クエリかViewのキャッシュが働いているとかかな。
    それもアプリ側の制御ミスだけど。

    それとCakeを1.3.3で止めてるのは
    最新だとパッチが当たらないくらいにコード改変しまくりなの?
    467 : nobodyさん - 2010/12/22(水) 13:47:23 ID:??? (+147,+29,-146)
    処理というのはアクションと読み替えても良いんだろうか。
    詳しく書いてはあるといえばあるんだけど、
    トラブルが複雑そうなだけに、やっぱりよく分からないな。
    まぁurlとも書いてあるからアクションで良いんだと思うんだけど、
    その場合、routesの処理のところかdispatcherのとこのソースを見るのが良いんじゃないか?
    別アクションが動く可能性のある分岐なのかそうじゃないか。

    あと、このトラブルの場合、aとbの関係性が気になる。
    同じコントローラーの別メソッドなのか、同じメソッド名だけど別コントローラーなのか、
    片方がPrefixルーティングなのか、routesでのaとbの書かれ方などなど。

    まぁ複雑そうだから、最終的にはソース嫁になりそうだけど。
    468 : nobodyさん - 2010/12/22(水) 14:31:24 ID:??? (+127,+29,-94)
    >>465
    requestActionで、コントローラアクションから別のコントローラアクションを呼びまくったりしてると
    もう最悪だな
    それと「時間のかかる処理」がなんなのかだろうけど、
    >>466 で言及してるキャッシュ周り
    >>467 で言及してるルーティング周り
    あたりから見ていく感じかな
    469 : 465 - 2010/12/22(水) 17:59:15 ID:??? (+87,+30,+0)
    皆様ご意見ありがとうございます。

    やはり最初はキャッシュを疑いましたが、
    キャッシュ機能を無効にしても同様の現象が続いたので、
    ルーティングに原因を求めた次第です。
    サーバーの問題も疑いましたが、
    aのページキャッシュにbの内容が保存されていたので、やはりアプリの問題だなと考えています。

    >466
    期待を胸に最新にアップデートしましたがダメでした、、。
    少し説明が足りず申し訳なかったですが、
    一般で言う、フロント,表側での現象なのでユーザ個別の情報をDBに取りに行くという処理はありません。
    セッションやクッキーとは無縁のもっと単純なレベルの問題と考えています。

    >467
    処理と書かせて頂いたのは、リクエストを受けてからレンダリングまでの間で何が原因か不明なのでそう書きました。
    ご指摘の通り、もう少し詳しく確認したところ、
    同一コントローラで発生しているようで、コントローラ間を跨いで発生することは無いようです。
    そして、それらはroutes.php内で独自のルーティング処理を記述しています。
    ですので、やはりこの辺りが怪しいですね、、。

    >468
    "時間のかかる処理"ですが、単にリクエストからレンダリングが少々重たいページなんですよね、、。


    ただやはり現象の発生が100%ではないのが、気持ち悪いです。
    再現性、トラッキングが難しく、少々頭が痛いですが、やはりルーティング周りを確認していきたいと思います。
    でも、ルーティング設定ミスなら100%再現されそうですよね、、。
    470 : nobodyさん - 2010/12/22(水) 18:33:59 ID:??? (+98,+28,-53)
    > キャッシュ機能を無効にしても同様の現象が続いたので、
    > aのページキャッシュにbの内容が保存されていたので、やはりアプリの問題だなと考えています。

    ここ、矛盾して無いか?
    ただ、キャッシュという事でひとつ思い出した。

    http://dxd8.com/archives/209/

    これじゃないか?
    CentOS5でパッケージリポジトリからのPCRE使ってると、
    確かこれにぶち当たるはずだよ。
    471 : 465 - 2010/12/22(水) 19:19:44 ID:??? (+76,+29,-116)
    >470
    あっすみません。キャッシュを無効にする前の事です、、。

    URLありがとうございます。
    ルーティングでも何らかの場面でスラッグ変換処理行っている可能性はありますね。
    ちょっと確認してみます。

    しかし、発生頻度が数%で、アクセス数に比例して頻度が上がるんですよね、、。
    ルーティングが別々のプロセス間で共用されている事を考えています。
    シングルトンと言えども、
    リクエストa,bに対して、プロセスa,bが実行される中、aとbが互いに干渉し合う事ってあるんでしょうか?
    472 : nobodyさん - 2010/12/22(水) 19:42:24 ID:??? (+31,+3,-41)
    phpって1HTTP リクエスト毎に独立してんじゃないっけ?
    473 : 465 - 2010/12/22(水) 21:27:27 ID:??? (+57,+29,-13)
    ですのよね、、。何も信じられない、、。
    今なら新興宗教とか信じられそうです。
    年越さないようにがんばります、、。
    474 : 465 - 2010/12/22(水) 21:28:37 ID:??? (+57,+29,-16)
    ですのよって、、。おねぇか。
    ですよねの間違いでした。
    475 : nobodyさん - 2010/12/22(水) 21:41:28 ID:??? (+57,+29,-69)
    「ルーティングの設定に穴があった」だったら明るく解決だけど、
    そうでない場合、少しイヤなバグだな・・・
    Cake使ってる高負荷サイトってどの辺だろう
    476 : nobodyさん - 2010/12/22(水) 23:51:19 ID:??? (+56,+28,-9)
    もしかして動的にモデルの構造が変更されるようなページ?
    477 : nobodyさん - 2010/12/23(木) 08:10:42 ID:??? (-1,-29,-18)
    つーか、そんな時こそプロファイラじゃないか?
    もしくはステップ実行。
    xdebug使ってみては?
    478 : nobodyさん - 2010/12/23(木) 10:12:06 ID:??? (+17,-29,-126)
    重いと評判のhtmlHelperですが、ローカル環境と本番環境のリンクずれを
    気にしなくてよいので、Linkは積極的に使っています。

    しかし、<base>でURLを切り替えれば、この問題もクリアされ、
    簡潔なhtmlコードを書けばよいだけになる気がします。

    リンクずれ以外にはhtmlヘルパーを使うメリットって何があるでしょうか?
    教えていただければ幸いです。
    479 : nobodyさん - 2010/12/23(木) 10:44:37 ID:??? (+58,+7,+2)
    HTTP→HTTPSの切替がしやすいってのがあった。
    ま、相対パスだから当たり前なんだけど。
    480 : nobodyさん - 2010/12/23(木) 10:58:51 ID:??? (+24,-29,-16)
    >>478
    Routingを使うならURLの記述はarray()でしたほうが良い
    アクション名変えるだけですべてのページ書き直すとか無理
    481 : 478 - 2010/12/23(木) 12:05:15 ID:??? (+43,+8,-21)
    >>479
    hmhm。 そういう利点もあるのですね。


    >>480
    なるほど、自分はRouting使っているので、やはりLinkは引き続き使ったほうがよい
    気がしてきました。
    482 : nobodyさん - 2010/12/23(木) 12:21:57 ID:??? (+62,+29,-41)
    というかHtmlHelper重いから使わないほうがいいとか言ってる奴は、
    CakePHP重いからピュアなPHPで書いたほうがいいって言ってるのと同じなんだけど。
    速度気にするならビューやDBやらをキャッシュすればいいだけだし。
    本末転倒もいいところだわ
    483 : nobodyさん - 2010/12/23(木) 12:47:08 ID:??? (+29,-30,-195)
    こういう、画像に対して、サイト内の画像をリンクするのはヘルパーでどうやるのでしょうか?

    <a href="/test/img/sample_mail.jpg" id="sampleMail">
    <img src="/test/img/new/sample_mail.png">
    </a>


    このスレを参考に、こんな感じで試したけど上手くいかない。。
    echo $html->image(
    "new/sample_mail.png",
    array(
    'url' => 'sample_mail.jpg',
    'id' => 'sampleMail',
    )
    );
    484 : nobodyさん - 2010/12/23(木) 13:04:15 ID:??? (+40,-30,-177)
    IDとか付くときはurlだけ使ったほうがいいよ

    <a href="<?php echo $html->url('/img/sample_mail.jpg');?>" id="sampleMail">
    <?php echo $html->image('sample_mail.jpg');?>
    </a>


    一応こういう方法があるんだけど。
    echo $html->link(
    $html->image("sample_mail.jpg"),
    "/img/sample_mail.jpg",
    array('escape'=>false)
    );


    ID変えて入れなきゃなんないなら>>483みたいなimage()でやるのは無理
    485 : nobodyさん - 2010/12/23(木) 13:07:11 ID:??? (+41,-30,-97)
    あーごめんID入れるの忘れてた

    echo $html->link(
    $html->image("sample_mail.jpg"),
    "/img/sample_mail.jpg",
    array('escape'=>false, 'id'=>'sampleMail')
    );
    486 : 483 - 2010/12/23(木) 15:03:20 ID:??? (+69,+29,-30)
    >>484

    凄い!
    urlだけ使う方法があるとは、考えてみればカンタンだけど盲点でした。

    >>485 のやり方で、上手くいったのですが、
    id変えて入れなきゃとはどういう意味でしょうか?

    なんにせよ、素晴らしいリプライをありがとうございます!
    487 : nobodyさん - 2010/12/23(木) 15:12:54 ID:??? (+36,-29,-18)
    IMEの予測変換が邪魔したみたいだわ

    × ID変えて入れなきゃなんないなら
      ↓
    ○ ID入れてやんなきゃなんないなら


    つまりhtml->image()ではAタグにidやらclassやらを指定できないってことね。
    488 : 483 - 2010/12/23(木) 22:17:18 ID:??? (+60,+28,+1)
    >>487

    納得。ありがとうございます。
    489 : nobodyさん - 2010/12/23(木) 22:53:41 ID:??? (+57,+29,-10)
    俺はむしろurlだけ使う方法を採用してるな。
    その方がソースも綺麗で分かりやすいし。
    490 : nobodyさん - 2010/12/27(月) 11:08:36 ID:??? (+47,-30,-119)
    遅いレスだけど $html->link使わないときは
    こんな書き方もあります
    <?= $html->tag('a',
     $html->image('sample_mail.jpg'),
      array(
       'id' => 'sampleMail',
       'href' => $html->url('/img/sample_mail.jpg')
      )
    ) ?>
    タグ書きたくない病なので$html->tag結構使ってる
    (1.1系だったら$html->contentTagだったかな)
    491 : nobodyさん - 2010/12/27(月) 11:12:50 ID:??? (+15,-7,-1)
    ショートタグ使うなや
    492 : nobodyさん - 2010/12/27(月) 11:25:34 ID:??? (+38,-30,-21)
    493 : nobodyさん - 2010/12/27(月) 11:36:15 ID:??? (+62,+29,-9)
    >>490書くならタグ書いたほうがましだろ
    何のメリットもないww
    494 : nobodyさん - 2010/12/27(月) 11:38:09 ID:??? (+17,-11,-1)
    >>490
    素直にタグ書けよw
    495 : nobodyさん - 2010/12/27(月) 11:48:25 ID:??? (+61,+29,-10)
    >>492
    例外処理がまともになるのかな。予期せぬ例外もきちんとcatchしてくれるならうれしい。
    496 : nobodyさん - 2010/12/27(月) 14:44:58 ID:??? (+36,-30,-209)
    490です メリットなくはないよ
    たとえばこんな感じで繰り返し書くときに見通し考えてタグ書きたくないときとか
    <?
    /* サブメニュー定義(実際はcontrollerからsetしたり) */
    $subMenuList = array(
    'テスト1' => array('image' => 'test1.jpg', 'url' => '/hoge/test1', 'id' => 'test1'),
    'テスト2' => array('image' => 'test2.jpg', 'url' => '/hoge/test2', 'id' => 'test2'),
    );
    /* 繰り返し処理でli要素作成 */
    $subMenu = '';
    foreach($subMenuList as $menuName => $menu) {
    $subMenu .= $html->tag('li', $html->tag('a',
    $html->image($menu['image'], array('alt' => $menuName)),
    array(
    'id' => $menu['id'],
    'href' => $html->url($menu['url'])
    )
    ));
    }
    ?>
    <? /* サブメニュー出力 */
    echo $html->div('submenu', $html->tag('dl', $subMenu));
    ?>
    ビューの中でこんな感じでサブメニューを出力させたりするのに使ったりしてるよ
    自前のヘルパー作ってもいいんだけど
    まあこんなやりようもあるということで
    497 : nobodyさん - 2010/12/27(月) 15:16:21 ID:??? (+50,+29,-12)
    だから誰もとくしねえコードかいてんじゃねーよ
    <li>って書いてたほうが他の人も分かりやすいわ
    一人でオナニーやってろ
    498 : nobodyさん - 2010/12/27(月) 15:57:22 ID:??? (+51,+28,+0)
    へーい すいませんでした
    499 : nobodyさん - 2010/12/27(月) 16:57:32 ID:??? (+57,+29,-4)
    それで慣れちゃったんだろうけど、
    俺はそのコードを触りたくないな
    500 : nobodyさん - 2010/12/27(月) 17:01:43 ID:??? (+62,+29,-13)
    >>496
    >見通し考えてタグ書きたくないときとか
    見通しを悪くしたいとは、変わった方もいらっしゃるんですね
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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