元スレ【PHP】フレームワーク CakePHP 10ホール目【v1.3】
php覧 / PC版 /みんなの評価 :
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のコードを書かなくて済むし。
でも二度手間だし、コントローラーでビューの内容を変更するのも違和感があって止めた。
みんなの評価 :
類似してるかもしれないスレッド
- 【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 ○
トップメニューへ / →のくす牧場書庫について