のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:126,331,920人
昨日: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
    551 : nobodyさん - 2011/01/06(木) 17:17:19 ID:??? (+62,+29,-91)
    CakePHPでPostgresって怖くて使えない。
    そういう細かいはまり所がちらばってそうな気がしてなぁ。
    海外じゃMySQLが主流だから、目玉の数も十分じゃないだろうし、
    野良プラグイン使う事を考えるとなぁ。
    Postgresのほうが好きなんだけど。
    552 : nobodyさん - 2011/01/07(金) 22:34:13 ID:??? (+0,-28,-23)
    Web屋とかの制作実績見るとPostgresばっかりな気がする
    MySQLのライセンスの問題?
    553 : nobodyさん - 2011/01/08(土) 01:34:02 ID:??? (+3,-29,-41)
    Perlが主流の頃はPostgreSQLが主流だったんだよ
    PHPが流行し始めてMySQLと組み合わせて解説本書かれるようになって10年くらいか?
    今じゃすっかりPHP+MySQLが主流みたいになってるな
    554 : nobodyさん - 2011/01/09(日) 11:14:02 ID:??? (+96,+29,-145)
    CakePHP以前の初歩かもしれないですが・・・、
    たとえば「都道府県」→「市区町村」をフォーム上で両方ドロップダウンにして
    都道府県で選択した値で市区町村を動的に変えようと思ったとき、
    CakePHPならどういう方法をとるのが適切でしょうか?

    ざっくりした処理の流れ程度でいいので、みなさんのやりかたをご教授
    いただければありがたいです。
    555 : nobodyさん - 2011/01/09(日) 12:23:33 ID:??? (+57,+29,-39)
    「CakePHPなら」ってのが良く分からない。
    単にXHRで呼ばれるアクションを別に1個用意しましょう、ってんじゃ足りない?
    それともJavaScriptが分かってない?
    556 : nobodyさん - 2011/01/09(日) 12:56:06 ID:??? (+70,+30,+0)
    557 : nobodyさん - 2011/01/09(日) 20:56:38 ID:??? (+27,-29,-115)
    book.cakephp.orgを見ながらcakephpの勉強をしているのだけど
    バリデーションの定数(やエラーメッセージ)をどこかにまとめたい場合はどこにまとめるのが作法ですか?

    http://book.cakephp.org/ja/view/150/
    この「独自のバリデーションルール」だとマジックナンバーになってるけど、
    実際の開発ではどういう方法があるかを知りたくて。

    app/config/bootstrap.phpにまとめるものですか?
    558 : nobodyさん - 2011/01/10(月) 00:55:02 ID:??? (+5,-29,-48)
    >>557
    自分はvalidation.phpとか作ってConfigure::load()してる。
    bootstrapにゴリゴリ設定詰めてもそりゃ動くけどね。
    559 : 557 - 2011/01/10(月) 02:26:32 ID:??? (+7,-30,-73)
    >>558
    app/config/validation.phpにずらずら定数を書いておいて
    app/models/<使いたいmodel>.phpの先頭でConfigure::load('validation');
    という意味であってます?

    bootstrapだとvalidation.phpが必要ないmodelでも読み込んじゃうから良くないという感じでしょうか?
    560 : nobodyさん - 2011/01/10(月) 04:57:04 ID:??? (+4,-29,-3)
    app_model.phpじゃだめなん
    561 : nobodyさん - 2011/01/10(月) 12:16:49 ID:??? (+5,-29,-49)
    >>559
    bootstrapで常時読み込むよ。モデルごとに分けたりなんかしない。
    配列の階層構造とかデフォルトのメッセージとかは面倒なのでビヘイビアで処理させてる。
    562 : nobodyさん - 2011/01/10(月) 12:31:41 ID:??? (+2,-29,-27)
    bootstrapに全定数とかテーブルとか全部書くと便利だけど
    全体の動作が重くならない?
    563 : nobodyさん - 2011/01/10(月) 13:51:26 ID:??? (+9,-28,-10)
    >>562
    プロファイリングすれば分かるけど250行ぐらいの設定ファイルで0.4msしかかかってないぐらいには軽い
    564 : nobodyさん - 2011/01/10(月) 14:10:59 ID:??? (+0,-27,-1)
    0.4msってだいぶ重いんじゃね・・・?
    565 : 563 - 2011/01/10(月) 15:22:42 ID:??? (+57,+29,-29)
    どんだけシビアな世界に生きてるか知らんが1リクエスト100msかかってる環境でこれなんだ
    がなー
    これが重いと言われるとどうしようもない
    566 : nobodyさん - 2011/01/10(月) 17:30:16 ID:??? (+3,-30,-108)
    CakePHPのApp::import()を1回分や、
    無駄に発行するSQLの処理コストで吹き飛ぶ
    誤差程度だと思うよ。0.4msなんて
    bootstrapにある設定のコスト気にするより、
    recursiveや取得するフィールドをきっちり調整した方がいいと思う。
    567 : nobodyさん - 2011/01/10(月) 17:45:15 ID:??? (+3,-29,-249)
    久々にすごいハマってるんだけど知恵貸してくだしあ

    Session.startは true
    Security.levelは medium

    のときに、
    ログインページがSSLなんだけど、

    非SSLページを遷移してる時は当然セッションIDのCookieは「あらゆる接続・・」で維持され読み取れるんだけど、
    SSLのログインページを開いた時点で「セキュリティーで保護された接続・・」に限定されてしまい、
    非SSLに移るとセッションは消えるという現象が起きまして。。

    Security.levelが medium以下であればSSL・非SSLでのセッションは維持されるとあるのにおかしいなとソースを読みまくり、
    一日かけてやっとたどり着いた原因が
    SSLページでrequestActionしていると、セキュアのみのセッション(セッションID保存Cookie)に変更されてしまうというものでして、

    で、回避するには、
    Coreをいじるか、requestActionを使わないしかないように思うんですが、
    同じような問題にぶち当たって解決された人いませんか?
    568 : 557 - 2011/01/10(月) 20:13:38 ID:??? (+3,-29,-95)
    おぉ。レスが増えてた。
    >>560
    モデルってわけでもないからapp_model.phpじゃないのかな?という疑問もあり質問して聞いてみたくて。
    作法みたいなのがあればそれに倣おうと。
    >>561
    常時読み込んでも対して違わないんですね。参考になります。

    app_model.phpかbootstrap.phpで常時読み込んでみてパフォーマンスが気になるレベルになったら次を考えてみます。
    みなさんありがとうございます。
    569 : nobodyさん - 2011/01/10(月) 20:16:23 ID:??? (+57,+29,-10)
    >recursiveや取得するフィールドをきっちり調整した方がいいと思う。

    実際これってかなり大事だけど忘れがちだよね。
    めんどくさいってのもあるもんな。
    570 : nobodyさん - 2011/01/10(月) 20:38:05 ID:??? (-6,-29,+0)
    Containable使えばいい
    571 : nobodyさん - 2011/01/10(月) 20:39:10 ID:??? (-6,-29,-15)
    LazyModelも忘れずにね。
    572 : nobodyさん - 2011/01/10(月) 21:33:48 ID:??? (+3,-30,-248)
    567です。自己レスです。

    どこかでparams['requested']を調べてSessionを開始しないようにすればいいと思いつつも
    beforeFilterでは時既に遅し、__constructではparams[request]は取得できないとなやんだんですが、

    http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1847&forum=8
    こんなページを見つけて、ConstructClassesってメソッドを初めて知った。

    ここに↓でどうやら意図したとおりに動いてる模様。
    public function constructClasses(){
    if(!empty($this->params['requested'])){
    //Sessionを使わない
    Configure::write('Session.start', false);
    }
    parent::constructClasses();
    }

    汚しましたーさーせん。
    573 : nobodyさん - 2011/01/12(水) 12:17:20 ID:??? (+57,+29,-37)
    結構Cake使っているサイト増えたきたね。
    会員数が数万単位でも違和感なく使える。
    だから、Cakeが重いと感じるのは
    ソースの書き方やキャッシュの使い方が悪いのかな・・。
    574 : nobodyさん - 2011/01/12(水) 16:36:48 ID:??? (+3,-30,-67)
    コントローラからモデル名を取得しようとした時の方法が知りたいです。
    cookbookには$this->ModelNameと書いてありますが実際にやってみるとそれでは取れず。
    http://book.cakephp.org/ja/view/53

    で、thisを覗いた所、
    $this->modelNames[0]
    $this->modelClass
    の2つがあったのでどっちがいいのかなと思って気になりました。
    575 : nobodyさん - 2011/01/12(水) 16:38:52 ID:??? (+26,-29,-1)
    $this->modelClass
    576 : nobodyさん - 2011/01/12(水) 18:08:05 ID:??? (+57,+29,-29)
    Cakeって1モデル1コントローラーを前提としてるの?
    そんな簡単にいくことってほとんどなくね?
    577 : nobodyさん - 2011/01/12(水) 18:29:16 ID:??? (+54,+26,-29)
    そうか?半数以上は1モデル1コントローラーで問題ないよ。経験上。
    複数モデル使うときは明示すればいいだけだし
    578 : nobodyさん - 2011/01/12(水) 22:06:01 ID:??? (+0,-28,-26)
    俺の場合はほとんど、1コントローラー複数モデルだけど、
    配列で複数指定できるんだし、全く問題ないぞ。
    579 : nobodyさん - 2011/01/12(水) 23:23:24 ID:??? (+61,+29,+1)
    >>575
    ありがとう。それでいきます
    580 : nobodyさん - 2011/01/13(木) 00:09:54 ID:??? (+3,-30,+0)
    CakePHP:1.3.6
    DB:Firebird 2.5

    にて、下記を参考にBLOB型のカラムに画像を登録しようとしています。
    http://c-brains.jp/blog/wsg/10/06/05-074544.php

    viewとcontrollerのソースはこのサイトのままにmodelを自分で追加。
    テーブルはcontentsカラムの型をBLOBに変更しています。
    (Firebirdにmediumblob型が無いため)

    この状態でファイルのアップロードをするとimages_controller.phpの33行目
    $this->Image->save($image);
    の実行時に下記エラーがでてしまいます。

    Dynamic SQL Error SQL error code = -104 Unexpected end of command
    SQL:INSERT INTO "image" ("filename","contents") VALUES ("filename.jpg","?????????")

    ※?????????は画像ファイルのバイナリの文字列(と思われる)が入っています。

    contentsの登録部分(30行目)を削除すると成功するため、BLOB型の部分が
    うまくいっていないのは確かだと思うのですが、どなたか解決策をご存知の方はいませんでしょうか。
    581 : nobodyさん - 2011/01/13(木) 01:29:47 ID:??? (+63,+30,-78)
    ひとつ聞きたいんだが、他者のソースやプラグインを例題に出されたら
    回答者がそれを設置してみないと答えられないんじゃないか?

    そしてあんた、自分の中で答え出てるじゃん。BLOB型の部分がおかしいって。
    それなら、元のソースに問題があるんだろ。作者に聞けよ。
    582 : nobodyさん - 2011/01/13(木) 12:11:03 ID:??? (+3,-30,-73)
    その参考にしたサイトで使ってるのはMySQLかな?
    よくわからんがMySQL以外のRDBMSをCakeのDataSourceとして使うには覚悟が必要だな
    あとFirebirdは知らんけど画像はDBに格納するよりファイルとして保存するのが一番だな
    583 : nobodyさん - 2011/01/14(金) 14:38:02 ID:??? (+123,+29,-33)
    ViewのテンプレートをデザイナーやPHPプログラマー以外に
    触らせるのって無茶だと思うけど、どう思う?
    584 : nobodyさん - 2011/01/14(金) 14:39:20 ID:??? (+101,+25,-5)
    >>583
    どういうこと?営業とか?
    585 : nobodyさん - 2011/01/14(金) 14:45:30 ID:??? (+76,+29,-51)
    >>584
    いやそうじゃなくて、テンプレ内に専用コードが入って複雑にならない?
    MVCの考え方から、Viewで処理する物はテンプレート内に書くけど
    CakeのコードやらPHPのコードやら入るこむから
    テンプレが複雑になって、Cakeに詳しくない人間は編集できないと思う。
    586 : nobodyさん - 2011/01/14(金) 14:45:56 ID:??? (+92,+24,-22)
    ctpそのまま使うってこと?ありえないw
    普通何らかのテンプレート使うだろ
    587 : nobodyさん - 2011/01/14(金) 14:47:37 ID:??? (+57,+29,-61)
    そうなのか?Smartyを間に入れるとか?
    あんたの言う「普通」ってはじめて聞いたな。
    みんなctpに処理を書いていると思ってたよ。
    588 : nobodyさん - 2011/01/14(金) 14:51:43 ID:??? (+67,+29,-48)
    ctpよりSmartyがいいときってどういう時?
    Smarty使ってたら逆に複雑になると思うんだけど。
    589 : nobodyさん - 2011/01/14(金) 14:53:46 ID:??? (+94,+29,-21)
    じゃ、「何らかのテンプレート」ってどういう意味?
    590 : nobodyさん - 2011/01/14(金) 15:00:10 ID:??? (+62,+29,-49)
    扱うデータが多すぎて、1つのコントローラにモデル20個ぐらい使うんだけど
    これって設計がおかしいのだろうか
    しかしテーブル最適化するとそのくらいに増えてしまうのだよな…とにかくデータが多すぎて
    1つのテーブルにまとめるとカラム数が凄いことになるし
    591 : nobodyさん - 2011/01/14(金) 15:00:20 ID:??? (+57,+29,-36)
    なんにしても、デザイナーでもプログラマーでもない人間が
    ビューを触るケースというのが想像できない
    592 : nobodyさん - 2011/01/14(金) 15:06:09 ID:??? (+57,+29,-27)
    デザイナーがPHPわからないケースもあるんじゃない?
    知り合いがデザイナーにctpいじらせて不具合起こされまくってた
    593 : nobodyさん - 2011/01/14(金) 15:06:11 ID:??? (+74,+29,-22)
    >>583-589,591

    運用スタッフにコンテンツを更新させるなら何らかのCMS的な仕組み作っとけ
    594 : nobodyさん - 2011/01/14(金) 15:08:37 ID:??? (+100,+29,-15)
    文言変更や画像差し替えぐらいならそれでいけるけど
    html編集まで必要だと厳しくないか?
    595 : nobodyさん - 2011/01/14(金) 15:29:30 ID:??? (+54,+26,-42)
    Wordpressなんかのテンプレートぐらい作れる程度のPHPの知識がある
    デザイナーはいっぱいいるとは思うけど、
    でもcakeのviewファイル自体はプログラマーがいじるもんだと思ってる。
    596 : 588 - 2011/01/14(金) 15:30:13 ID:??? (+112,+29,-76)
    >>589
    だからctpで十分じゃないかなって意味だった。
    ウチで開発した時はコーダの作ったHTMLをテンプレートに当てはめる係がいたな。
    その人はctpもHTMLやCSSやJavaScriptのコーディングもどっちも面倒見れる人
    597 : nobodyさん - 2011/01/14(金) 16:33:54 ID:??? (+80,+30,-60)
    >>596
    ああ、あんたは>>586じゃないんだな。それなら俺も同じ意見だな。
    >>594
    html編集が必要な場面って結構あるからな。
    ページ内に説明文追加する時とか。追加じゃなくても変更とか。
    その時、どうやったってctpを変更しなくちゃいけないけど、
    CakeやPHPの知識がない人間が触るのは厳しい。
    「あれ?そうすると、デザインとプログラムの分業って出来ないんじゃねぇ?」
    って思ったんだよ。
    598 : nobodyさん - 2011/01/14(金) 16:52:49 ID:??? (+91,+29,-10)
    やっぱ業務だと作業進行中にデザインの変更とか入ること多いの?
    599 : nobodyさん - 2011/01/14(金) 17:14:20 ID:??? (+70,+29,-22)
    >>598
    いざデザインを適用してみて動かしてみると色々変えたくなる
    1枚ペラで見てたのとページ遷移した流れで見たデザインのイメージって結構違うものだなって感じる
    600 : nobodyさん - 2011/01/14(金) 17:26:57 ID:??? (+101,+29,-78)
    フレームワーク使ってない時は、

    DBからデータ取得→foreachで該当するデータを処理→ビューに出力

    ってやってた。そうすれば極力、ビューにPHPのコードを書かなくて済むし。
    でも二度手間だし、コントローラーでビューの内容を変更するのも違和感があって止めた。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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