のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,063,110人
昨日: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

    551 = :

    CakePHPでPostgresって怖くて使えない。
    そういう細かいはまり所がちらばってそうな気がしてなぁ。
    海外じゃMySQLが主流だから、目玉の数も十分じゃないだろうし、
    野良プラグイン使う事を考えるとなぁ。
    Postgresのほうが好きなんだけど。

    553 = :

    Perlが主流の頃はPostgreSQLが主流だったんだよ
    PHPが流行し始めてMySQLと組み合わせて解説本書かれるようになって10年くらいか?
    今じゃすっかりPHP+MySQLが主流みたいになってるな

    554 = :

    CakePHP以前の初歩かもしれないですが・・・、
    たとえば「都道府県」→「市区町村」をフォーム上で両方ドロップダウンにして
    都道府県で選択した値で市区町村を動的に変えようと思ったとき、
    CakePHPならどういう方法をとるのが適切でしょうか?

    ざっくりした処理の流れ程度でいいので、みなさんのやりかたをご教授
    いただければありがたいです。

    555 = :

    「CakePHPなら」ってのが良く分からない。
    単にXHRで呼ばれるアクションを別に1個用意しましょう、ってんじゃ足りない?
    それともJavaScriptが分かってない?

    556 = :

    >>554
    http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=443&forum=12

    557 = :

    book.cakephp.orgを見ながらcakephpの勉強をしているのだけど
    バリデーションの定数(やエラーメッセージ)をどこかにまとめたい場合はどこにまとめるのが作法ですか?

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

    app/config/bootstrap.phpにまとめるものですか?

    558 = :

    >>557
    自分はvalidation.phpとか作ってConfigure::load()してる。
    bootstrapにゴリゴリ設定詰めてもそりゃ動くけどね。

    559 = :

    >>558
    app/config/validation.phpにずらずら定数を書いておいて
    app/models/<使いたいmodel>.phpの先頭でConfigure::load('validation');
    という意味であってます?

    bootstrapだとvalidation.phpが必要ないmodelでも読み込んじゃうから良くないという感じでしょうか?

    560 = :

    app_model.phpじゃだめなん

    561 = :

    >>559
    bootstrapで常時読み込むよ。モデルごとに分けたりなんかしない。
    配列の階層構造とかデフォルトのメッセージとかは面倒なのでビヘイビアで処理させてる。

    562 = :

    bootstrapに全定数とかテーブルとか全部書くと便利だけど
    全体の動作が重くならない?

    563 = :

    >>562
    プロファイリングすれば分かるけど250行ぐらいの設定ファイルで0.4msしかかかってないぐらいには軽い

    564 = :

    0.4msってだいぶ重いんじゃね・・・?

    565 = :

    どんだけシビアな世界に生きてるか知らんが1リクエスト100msかかってる環境でこれなんだ
    がなー
    これが重いと言われるとどうしようもない

    566 = :

    CakePHPのApp::import()を1回分や、
    無駄に発行するSQLの処理コストで吹き飛ぶ
    誤差程度だと思うよ。0.4msなんて
    bootstrapにある設定のコスト気にするより、
    recursiveや取得するフィールドをきっちり調整した方がいいと思う。

    567 = :

    久々にすごいハマってるんだけど知恵貸してくだしあ

    Session.startは true
    Security.levelは medium

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

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

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

    で、回避するには、
    Coreをいじるか、requestActionを使わないしかないように思うんですが、
    同じような問題にぶち当たって解決された人いませんか?

    568 = :

    おぉ。レスが増えてた。
    >>560
    モデルってわけでもないからapp_model.phpじゃないのかな?という疑問もあり質問して聞いてみたくて。
    作法みたいなのがあればそれに倣おうと。
    >>561
    常時読み込んでも対して違わないんですね。参考になります。

    app_model.phpかbootstrap.phpで常時読み込んでみてパフォーマンスが気になるレベルになったら次を考えてみます。
    みなさんありがとうございます。

    569 = :

    >recursiveや取得するフィールドをきっちり調整した方がいいと思う。

    実際これってかなり大事だけど忘れがちだよね。
    めんどくさいってのもあるもんな。

    572 = :

    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 = :

    結構Cake使っているサイト増えたきたね。
    会員数が数万単位でも違和感なく使える。
    だから、Cakeが重いと感じるのは
    ソースの書き方やキャッシュの使い方が悪いのかな・・。

    574 = :

    コントローラからモデル名を取得しようとした時の方法が知りたいです。
    cookbookには$this->ModelNameと書いてありますが実際にやってみるとそれでは取れず。
    http://book.cakephp.org/ja/view/53

    で、thisを覗いた所、
    $this->modelNames[0]
    $this->modelClass
    の2つがあったのでどっちがいいのかなと思って気になりました。

    575 = :

    $this->modelClass

    576 = :

    Cakeって1モデル1コントローラーを前提としてるの?
    そんな簡単にいくことってほとんどなくね?

    577 = :

    そうか?半数以上は1モデル1コントローラーで問題ないよ。経験上。
    複数モデル使うときは明示すればいいだけだし

    579 = :

    >>575
    ありがとう。それでいきます

    580 = :

    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 = :

    ひとつ聞きたいんだが、他者のソースやプラグインを例題に出されたら
    回答者がそれを設置してみないと答えられないんじゃないか?

    そしてあんた、自分の中で答え出てるじゃん。BLOB型の部分がおかしいって。
    それなら、元のソースに問題があるんだろ。作者に聞けよ。

    582 = :

    その参考にしたサイトで使ってるのはMySQLかな?
    よくわからんがMySQL以外のRDBMSをCakeのDataSourceとして使うには覚悟が必要だな
    あとFirebirdは知らんけど画像はDBに格納するよりファイルとして保存するのが一番だな

    583 = :

    ViewのテンプレートをデザイナーやPHPプログラマー以外に
    触らせるのって無茶だと思うけど、どう思う?

    584 = :

    >>583
    どういうこと?営業とか?

    585 = :

    >>584
    いやそうじゃなくて、テンプレ内に専用コードが入って複雑にならない?
    MVCの考え方から、Viewで処理する物はテンプレート内に書くけど
    CakeのコードやらPHPのコードやら入るこむから
    テンプレが複雑になって、Cakeに詳しくない人間は編集できないと思う。

    586 = :

    ctpそのまま使うってこと?ありえないw
    普通何らかのテンプレート使うだろ

    587 = :

    そうなのか?Smartyを間に入れるとか?
    あんたの言う「普通」ってはじめて聞いたな。
    みんなctpに処理を書いていると思ってたよ。

    588 = :

    ctpよりSmartyがいいときってどういう時?
    Smarty使ってたら逆に複雑になると思うんだけど。

    589 = :

    じゃ、「何らかのテンプレート」ってどういう意味?

    590 = :

    扱うデータが多すぎて、1つのコントローラにモデル20個ぐらい使うんだけど
    これって設計がおかしいのだろうか
    しかしテーブル最適化するとそのくらいに増えてしまうのだよな…とにかくデータが多すぎて
    1つのテーブルにまとめるとカラム数が凄いことになるし

    591 = :

    なんにしても、デザイナーでもプログラマーでもない人間が
    ビューを触るケースというのが想像できない

    592 = :

    デザイナーがPHPわからないケースもあるんじゃない?
    知り合いがデザイナーにctpいじらせて不具合起こされまくってた

    593 = :

    >>583-589,591

    運用スタッフにコンテンツを更新させるなら何らかのCMS的な仕組み作っとけ

    594 = :

    文言変更や画像差し替えぐらいならそれでいけるけど
    html編集まで必要だと厳しくないか?

    595 = :

    Wordpressなんかのテンプレートぐらい作れる程度のPHPの知識がある
    デザイナーはいっぱいいるとは思うけど、
    でもcakeのviewファイル自体はプログラマーがいじるもんだと思ってる。

    596 = :

    >>589
    だからctpで十分じゃないかなって意味だった。
    ウチで開発した時はコーダの作ったHTMLをテンプレートに当てはめる係がいたな。
    その人はctpもHTMLやCSSやJavaScriptのコーディングもどっちも面倒見れる人

    597 = :

    >>596
    ああ、あんたは>>586じゃないんだな。それなら俺も同じ意見だな。
    >>594
    html編集が必要な場面って結構あるからな。
    ページ内に説明文追加する時とか。追加じゃなくても変更とか。
    その時、どうやったってctpを変更しなくちゃいけないけど、
    CakeやPHPの知識がない人間が触るのは厳しい。
    「あれ?そうすると、デザインとプログラムの分業って出来ないんじゃねぇ?」
    って思ったんだよ。

    598 = :

    やっぱ業務だと作業進行中にデザインの変更とか入ること多いの?

    599 = :

    >>598
    いざデザインを適用してみて動かしてみると色々変えたくなる
    1枚ペラで見てたのとページ遷移した流れで見たデザインのイメージって結構違うものだなって感じる

    600 = :

    フレームワーク使ってない時は、

    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一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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