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

私的良スレ書庫

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

元スレ【PHP】フレームワーク CakePHP 11ホール目【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
1 : nobodyさん - 2011/02/16(水) 21:52:35 ID:zCTGjUMq (+125,-30,-275)
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※sage推奨
※質問時もsageること
※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
http://github.com/cakephp

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
2 : nobodyさん - 2011/02/16(水) 22:01:14 ID:??? (-1,+7,+0)
終了
3 : nobodyさん - 2011/02/16(水) 23:30:29 ID:??? (-7,+0,-1)
CGI厨さん遅いよ
4 : nobodyさん - 2011/02/17(木) 00:27:39 ID:??? (-29,-30,-148)
Userというモデルから $this->User->find("all");
とすると、Userという配列の下に情報が入っている配列を取得するのですが、
Userの部分をなくしたものを取得することはできないでしょうか?

一つ一つデータ取る時、$item['User']['api']ではなく、$item['api']だけ書くほうが楽なもので。

[0] => Array
(
[User] => Array
(
[id] => 1
[api] => google
[coupon_id] => 6113
)
)
[1] => Array
(
[User] => Array
(
[id] => 2
[api] => agi
[coupon_id] => 5982

5 : nobodyさん - 2011/02/17(木) 00:36:34 ID:??? (+27,+29,-12)
http://cakephp.1045679.n5.nabble.com/Find-Output-Thoughts-why-the-not-remove-ModelName-td1334722.html

同じような質問をしているのを見つけました。
しかし、回避方法みたいなものはないっぽいので、仕様と諦めるしかないのかな。
8 : nobodyさん - 2011/02/17(木) 08:07:45 ID:??? (-29,-30,-89)
複数のフィールドを一度に更新することはできないでしょうか?

マニュアルやcake辞典を読んだところ、

$this->Model->set('id',4);
$this->Model->saveField('buy_count', 3);
$this->Model->saveField('sold_out', 1);

このようにすれば、複数のフィールドを更新できるのですが、いくつものフィールドを
更新した場合、何行も繰り返さないといけない。。

こんなまどろっこしいことせずに、saveとconditionで一気に上書きするのがスマート
なやり方なのでしょうか。
10 : nobodyさん - 2011/02/17(木) 11:12:59 ID:??? (+25,+29,-55)
最近、フレームワーク無しのPHPプログラムを書いてるんだけど、
いつの間にかCake風の構成にしてた。

多重配列って長くなって面倒だけど、わかりやすいよね。
11 : nobodyさん - 2011/02/17(木) 18:35:10 ID:??? (-29,-29,-62)
生成されたpotを弄ってviewの中のctpファイルはローカライゼーション出来るようになったんだけど、
バリデーション(モデル)とか
プログラム上での(コントローラー)表記を
ローカライゼーションしたい場合は
どうしたらいいの?
12 : nobodyさん - 2011/02/17(木) 18:39:45 ID:??? (-27,-30,-145)
cakephpで質問です。

idを主キーにしていて

データの取り出しで
this->model->
findAllByName($hoge)
として
this->model->save($this->data)

した場合、上書き更新ではなく新レコード挿入になりますよね?
主キーでモデルのデータを取り出さない限り新レコード挿入になるのは分かるのですが、CakePHP仕様だと主キーを一つしか扱えないのでupdateAll()を使うしかないのでしょうか?

主キー以外のフィールドでの検索対象の
レコードを更新したい場合、
スマートなやり方だと、どういうやり方が一般的でしょうか?
16 : nobodyさん - 2011/02/17(木) 22:02:41 ID:??? (-28,-30,-44)
テーブル名をつけるときに

users_codesのようにアンダーバーをつけてもいいですか?
その場合は外部からアソシエーションするときはusers_codes_idでok?


またフィールドにもbirth_dateのようにアンダーバーを使ってもいいですか?
18 : nobodyさん - 2011/02/17(木) 23:48:53 ID:??? (-29,-30,-80)
>>17
絞り込む際のフィールドが主キーでなくても、それに合わせて上書き更新できるんですね!

ということは

$res=this->model->findAllByName($hoge);
this->model->save($result);
でいけるということですね!


普通、this->model->hoge
みたいにデータを取得しにいったら
自動的に$this->dataに結果が格納されるもんじゃなかったでしたか?
20 : nobodyさん - 2011/02/18(金) 01:11:29 ID:??? (-21,-29,-108)
CakePHPだと仮に10万レコード(10フィールド)あるようなテーブルへのアクセスでもサクサク動きますか?

レコードが膨大な数になったときの工夫とかあるのかな?

それとユーザー写真をアップロードさせたら、どういうふうに管理すればいいですか?
データベース側はあくまでファイル名を記録しておいて、画像はwebroot/image/フォルダ内に一括して10万ファイルとかですか?
21 : nobodyさん - 2011/02/18(金) 05:55:46 ID:??? (+27,+29,-190)
>>18
普通といわれても、やってみた結果がそうだっただけだからなぁ。
一応もっともらしい事を書くと、とあるModelのクラスのメソッドを呼んだだけで、
別のクラスであるControllerのメンバ変数に勝手に値を代入ってのは、
普通はしないと思うぞ。越権行為すぎる。

>>19
http://book.cakephp.org/ja/view/903/%E3%83%A2%E3%83%87%E3%83%AB%E3%81%A8%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E8%A6%8F%E7%B4%84
一応、peopleテーブルはPersonモデルなのは、変な変換が入ったとかじゃなくって、
ほんとにそういう規約。

>>20
10万レコードも扱ったこと無いからわからん。
アップロード系のプラグインが英語圏製だけど一杯あるから探したらいいんじゃないかな。
プラグインが、10万レコード考慮してるかはしらんが。
最近のファイルフォーマットだと違うかもだけど、1ディレクトリ5000ファイルくらいにしといたほうがI/O的に良いんじゃない?
22 : nobodyさん - 2011/02/18(金) 21:20:08 ID:??? (+3,-1,-14)
>>20
レコード数の多さはmysqlのチューニングの問題じゃないの?
ファイル管理はDB+非公開ディレクトリに小分けにすんのがいいんじゃないかね
23 : nobodyさん - 2011/02/18(金) 22:31:57 ID:??? (+19,+21,-36)
ユーザー写真なら公開ディレクトで良いんでない?
非公開エリアにおいて、画像データ取得してGDで画像生成
する処理が発生するから負荷がかかるだろ。
25 : 22 - 2011/02/18(金) 23:50:40 ID:??? (+4,+20,+0)
>>24
んだ
26 : nobodyさん - 2011/02/19(土) 01:07:14 ID:??? (-27,-30,-27)
フォルダに格納するときは下2桁ごとにフォルダわけたほうがいいですか?

10058.jpgは

pic/58/ フォルダの中に

17434.jpgは

pic/34/ フォルダの中にといった具合で
27 : nobodyさん - 2011/02/19(土) 01:23:37 ID:??? (+28,+29,-115)
>>26
どうしたほうが良いかは要件と仕様しだいなんじゃないの?
ユーザーアップロードしたファイルの置き方は、CakePHPは特に関与しないし。
正解が無い部類の問題だから、
要件を満たす仕様を、見合った経験を持つアプリケーション設計者が考えるべき。
>>26>>20 だと思うんだけど、
この質問をするくらいのスキルなら、10万レコード・10万ファイルを扱うシステムを、
試行錯誤無しに設計するのは無理だと思うよ。
28 : nobodyさん - 2011/02/19(土) 01:56:06 ID:??? (+24,+29,-7)
フォルダ分けるメリットって、ファイルを視認しやすい以外にない気がする。
30 : nobodyさん - 2011/02/19(土) 03:08:31 ID:??? (+27,+29,-36)
俺のサイトが一日数ヒットから10万ヒットに増えたらと思うとcakephp使うのが心配
31 : nobodyさん - 2011/02/19(土) 06:06:42 ID:??? (-28,-29,-3)
>>28
1ディレクトリにあまりに多いファイルが入ってると、
ディスクI/Oが遅くなるって聞いたことがあるんだけど
32 : nobodyさん - 2011/02/19(土) 07:28:08 ID:??? (+40,+29,-164)
質問です。
ブログでいうブログタイトルなどの、編集する可能性はあるけど複数のレコードは存在し得ない情報ってどの様にして管理すればいいのでしょうか?
単一レコードしか存在し得ないのにRDBMSで管理するのはどうなのかなぁと思い、悩んでいます。

ネイティブPHP使ってたときは、そういった設定項目を纏めたSettingsクラスというものを作り、そのインスタンスをシリアライズしてたんですが…

Cakeだとみなさんどうしていますか?
33 : nobodyさん - 2011/02/19(土) 09:15:09 ID:??? (-19,-30,-113)
>>32
>ネイティブPHP使ってたときは、そういった設定項目を纏めたSettingsクラスというものを作り、そのインスタンスをシリアライズしてたんですが…
Configure::write('setting.title', 'ブログタイトル'); とかできるんで、
Settingsクラスというものになれているなら、bootstrapに設定を記述するのがいいのでは
34 : nobodyさん - 2011/02/19(土) 13:48:40 ID:??? (-18,-29,-15)
WordPressだとsettingsテーブル的なのが存在してて、ブログ全体に関する設定はそこに突っ込まれてた気がする
setting_nameとvalueみたいな感じで
36 : nobodyさん - 2011/02/19(土) 15:19:39 ID:??? (+32,+29,-108)
パスワードを暗号化にして入力フォームでエラーで弾かれたとき、
パスワードが自動的に暗号化後の文字長になって再入力されています。

これってエラーがあった時は常にパスワードのところだけを空にしてリセットするってのが正しいのかな?
大手サイトとかも、空リセットしてますよね?
37 : nobodyさん - 2011/02/19(土) 15:42:41 ID:??? (+22,+29,-2)
普通そうするだろ
38 : nobodyさん - 2011/02/19(土) 15:45:56 ID:??? (+36,+29,-91)
ということは大手サイトも
個人ユーザーの暗号化前のパスワードは保持していないのかな?
それって普通?

結構同じパスワードをいろんなネットサービスにおいて使ってるんだけど、
サービスの運営はユーザーのパスワードは把握できない仕組み!?
39 : nobodyさん - 2011/02/19(土) 15:52:20 ID:??? (+27,+29,-21)
パスワードを平文で保存してたら
漏れた時しゃれにならんぞ
40 : nobodyさん - 2011/02/19(土) 15:59:40 ID:??? (+31,+29,-24)
でもメアドとかも平文で保存してるでしょ?本名も
41 : nobodyさん - 2011/02/19(土) 16:09:05 ID:??? (+30,+29,-5)
何を言ってるの?Cake以前の話だろ。
43 : nobodyさん - 2011/02/19(土) 16:19:05 ID:??? (+32,+29,-48)
>>41
まぁ、そういうな

>>40
通常は可逆式の暗号化をしておいて、
メール送信などで利用する時だけ
元のメアドに戻してメールするのが普通だよ。
44 : nobodyさん - 2011/02/19(土) 16:59:48 ID:??? (+38,+30,-241)
>>35
JsHelperってjQueryなどの一部のメソッドをphpから呼べるみたいだけど、
正直jQuery書いたほうが書きやすいし、使う気にはなれないな。
普通にjQueryが書ける人ほど、あまり意味の無いヘルパーだと思ってる。

>>38
サイト運営者がユーザーのパスワード見れたらまずいだろう。
自分で運営してるほぼ個人サイトならともかく、
あまり信用できないバイトとかもスタッフに居るケースもあるんだぞ。
バイトが何かやらかしても、自分(自社)に責任が来るんだから、
パスワードの平文はやめとけ。

だから、パスワードはハッシュしか残さないのが普通だな。
非可逆なものだから、パスワードリマインダーは、
ユーザー登録と同様に、短時間有効なトークン付きの
パスワード再設定URLを、登録時のメールアドレスに送るのが良くある実装。
45 : nobodyさん - 2011/02/19(土) 17:09:31 ID:??? (+37,+29,-23)
>>44
なるほど。勉強になるよ。
メアドとかはハッシュにするもんなの?
46 : nobodyさん - 2011/02/19(土) 17:42:55 ID:??? (+38,+29,-48)
パスワードを完全ハッシュ化(難読化)する事って常識だと思うんだけどな・・・
会員制サイト作るならまずそこから勉強するだろ。
>>45は完全独学かよ。知識なさ過ぎる。
47 : nobodyさん - 2011/02/19(土) 18:17:19 ID:??? (-7,-10,-2)
>>45
ヒント:ハッシュは非可逆暗号で作られている
48 : nobodyさん - 2011/02/19(土) 18:21:28 ID:??? (+33,+29,-12)
>>46
会員制サイト作る際の、そういう細かい点まで教えてくれるサイトあったら教えて
49 : nobodyさん - 2011/02/19(土) 18:25:35 ID:??? (+21,+28,-2)
cake使っていて知らないとは・・・?
50 : nobodyさん - 2011/02/19(土) 19:55:20.04 ID:??? (-26,-24,-45)
CakePHPのctpを使いたくないです
テンプレートと入れ替える方法どこかに載ってないでしょうか
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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