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

私的良スレ書庫

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

元スレ【PHP】フレームワーク CakePHP 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
252 : nobodyさん - 2008/03/20(木) 14:40:57 ID:??? (+27,+29,-20)
痛いCI厨は自分のスレを盛り上げてこいよw
わざわざCakePHPスレを盛り上げて乙
253 : nobodyさん - 2008/03/20(木) 14:46:46 ID:??? (+32,+29,-36)
経験から言うと、どんなものでも「軽い!」という触れ込みでデビューしたものは、
最初は機能が少なくて、バージョンがあがるにつれて機能が追加され最終的には重くなるんだよな。
で、ほかと同等の機能を備えたときには、ほかと同等の重さになっている。
254 : nobodyさん - 2008/03/20(木) 15:00:55 ID:??? (-22,+29,-4)
CIスレですが、今週の日曜以降、書き込みがありません。
使ってる方、どうぞ書き込んで下さい。

http://pc11.2ch.net/test/read.cgi/php/1177683436/l50
256 : nobodyさん - 2008/03/20(木) 15:33:39 ID:??? (-29,-30,-61)
>>251
hasManyアソシエーションでlimitを指定しないと確かに225のクエリになる。
ソース読んだらそのためのif文があった。これは知らなかった。サンクス

limit指定しないのが普通なのか・・・あと、なんでそういう実装にしてるんだろう。
limitでUserの件数絞るとしてもwhere user_id (1,3,5)はできると思うのだが。
257 : nobodyさん - 2008/03/20(木) 15:35:10 ID:??? (-29,-29,-8)
間違えた。
> limitでUserの件数絞るとしても
limitでCommentの件数絞るとしても
258 : nobodyさん - 2008/03/20(木) 15:42:11 ID:??? (+15,+22,-16)
>>256
>>257
面倒ならカスタムsqlでやれば早いじゃん
259 : nobodyさん - 2008/03/20(木) 15:42:19 ID:??? (+25,+29,-43)
んー、Commentに対するlimitがある場合はそう実装するしかないのか。
バカじゃん俺。この振る舞いについてのドキュメントはどっかにあったのかな。
連投スマソ。
260 : nobodyさん - 2008/03/21(金) 01:06:38 ID:??? (-22,-30,-208)
Cakeとは関係ないんですが、複数のモデルの処理(全部更新)を1個のトランザクションにするときってどう書いたらいいですか?
コントローラーにこんな感じで書こうと思うのですがどうでしょうか。

start transaction

$resultA = $modelA ->method();

if($resultA == 'error')
{
rollback
return;
}

$resultB = $modelB ->method();

if($resultB == 'error')
{
rollback
return;
}

$resultC = $modelC ->method();

if($resultC == 'error')
{
rollback
return;
}

commit
261 : nobodyさん - 2008/03/21(金) 04:01:36 ID:??? (+19,+24,-13)
>>260
スレ違いだと思うんだけど・・・
263 : nobodyさん - 2008/03/21(金) 11:28:48 ID:??? (+12,+19,+0)
ぺルパーについてkwsk
266 : nobodyさん - 2008/03/22(土) 03:46:35 ID:??? (+27,+29,-165)
>>265
> コントローラにはあまり詳細な処理は書きたくない
> 具体的な処理はコンポーネントをこさえて、そちらで処理したい

大事なのはこれらの明確な理由が何なのかってことだと思う。
その会員登録処理がシステムの他の部分からも必要になるならコンポーネントにした方がいいと思うよ。
もしくは他のアプリでも(ほぼ)そのまま使用できるなら。
あとはコントローラとモデル(DAO層)を分離することでテスタビリティを向上させたいとかかなぁ
例えばテストの時はモックコンポーネント使うようにすればデータベースがなくてもコントローラのテストができる。
267 : 265 - 2008/03/22(土) 05:08:43 ID:rTbTxKR5 (+4,+29,-177)
>>266
なるほど。コンポーネントで会員登録処理と思いついた理由は指摘のとおり他のアプリで
いつも同様のことを実装してるのでコンポーネント化してしまおうというのが一番の理由。
それにコントローラ内に細かい条件分岐や処理を書き始めるとものすごくコードが肥大して
メンテナンスがし難いし、もし今後会員登録のフローを同アプリケーションの別箇所でも使い
たいって仕様変更があっても対応しやすいかと。

でも、「会員登録(管理)コンポーネント」なんて作っちゃうとモデルやDBテーブルの構造が
かなり固定化&依存してしまうのがいやだなだ、と…(AuthComponentみたいにね)
それならばpluginにしちゃえば?って考えることもあるけど、pluginってあんまり使われてないし。
うーむ。
268 : nobodyさん - 2008/03/22(土) 10:11:22 ID:??? (+27,+29,-29)
>>267
そんな恐ろしいほどにコードが肥大する。かつそれら共通利用する機会が多いなら
コンポーネント化しちゃいなよ
269 : nobodyさん - 2008/03/22(土) 10:19:47 ID:??? (+32,+29,-47)
>>267
DBテーブルの構造がかなり固定化&依存

これ内容が会員登録だったらテーブル構造に依存しちゃうのやばいだろ?
会員認証なら固定依存しても、それほど問題ないけど
コンポーネントてそもそもDBテーブルの構造がかなり固定化&依存してしまうものなんだね
270 : nobodyさん - 2008/03/22(土) 10:52:32 ID:??? (+33,+29,-162)
>>267
コンポーネント設計のポイントは、Plug-and-Playを可能にすることであり、独立性を高めることにある
重要となる設計要素は、インターフェースであり、注目すべきは設計要素間の依存関係だと思う
内部実装に依存しない形でコラボレーションをモデル化できるインターフェースが重要じゃないかな

コンポーネント化するということは、結局クラスをグループ化することだからね
クラス間の関連(集合-部分、汎化-特化)と依存関係を意識して設計しないと
物理的にはコンポーネント化したが、論理的にはひとつのシステム全体
ひとつの再利用単位として使わざるを得ないという状況が現れるから
この点で、依存関係の設計はかなり重要
271 : nobodyさん - 2008/03/22(土) 11:26:27 ID:??? (+33,+26,-9)
>>266
モックコンポーネント

あまり聞かない、組み合わせだけどw
モックとコンポーネント入れ替えするものじゃないの?
272 : nobodyさん - 2008/03/22(土) 11:49:52 ID:??? (+22,+29,-4)
モックンがどうかしたって?
274 : nobodyさん - 2008/03/22(土) 20:52:09 ID:??? (+32,+29,-16)
>>271
そういうこと。テストの時はモックを使うようにする。
「コンポーネントのモック」って意味でモックコンポーネントって言った。
275 : nobodyさん - 2008/03/22(土) 21:01:00 ID:??? (+22,+29,-62)
>>273
会員登録プラグイン

何度も使うような処理でも無いし面倒な処理でもないからなあ

個人的には確認画面やらページ送りやら何度も使う場面のあるプラグインもしくは
コンポーネントが欲しい
276 : nobodyさん - 2008/03/23(日) 01:31:09 ID:??? (-4,-6,-6)
バリデートのyaml化作業完了
yamlの空白に少しはまった
277 : nobodyさん - 2008/03/23(日) 02:03:00 ID:??? (+20,+28,+0)
>>276
おつかれっす
278 : nobodyさん - 2008/03/23(日) 12:24:28 ID:??? (-14,-30,-94)
findのような感じで、IDを指定してDBデータの更新を
ファンクションはありますか? イメージとしてはこんな感じで。
$this->Post->hogehoge($id, 'Address'->'Hokkaido');


Model classのファンクションを一通り眺めてみたのですが、
それらしきファンクションを見つける事ができませんでした。

http://api.cakephp.org/class_model.html#d25735e5d69a1c55c58de6df8c06bd9e
279 : nobodyさん - 2008/03/23(日) 13:03:51 ID:??? (+16,+29,-32)
>>278
ファンクションて何ですか?素人は書き込まないで下さい
281 : nobodyさん - 2008/03/23(日) 14:00:59 ID:??? (+18,+29,-9)
>>280
こんなとこで聞くよりも自分でソース見た方が早くね?
282 : nobodyさん - 2008/03/23(日) 21:00:13 ID:xiSCrZA7 (+29,+26,-15)
>>275
会員登録プラグイン、完成したら俺にくれ
283 : nobodyさん - 2008/03/23(日) 22:20:17 ID:??? (+30,+29,-7)
>>282
いらねー。たぶん需要ない
会員登録なんてすぐ作れるやんwww
284 : nobodyさん - 2008/03/23(日) 23:07:41 ID:??? (-28,-30,-23)
>>278
カラム単位の更新でいいなら、saveField。

$this->Post->id = $id;
$this->Post->saveField('Address', 'Hokkaido');
285 : nobodyさん - 2008/03/23(日) 23:25:30 ID:??? (+27,+29,-33)
いらなきゃ使わなきゃいいじゃん。
小さい車輪だろうが再開発をしなくて済むなら助かる。
286 : nobodyさん - 2008/03/24(月) 00:14:26 ID:??? (+27,+29,-2)
再開発する機会が少ない。激しく無駄
そうじゃなければ、すでに作ってる人たくさんいるよ
287 : nobodyさん - 2008/03/24(月) 00:19:02 ID:??? (-11,-14,-41)
ほんとにいらなければ何もコメントしないので、たぶん荒らし。
スルー推奨。

しばらく前、本やWebを参考にRoRを使っていたが、cakePHPの方が
使いやすい。
ひょっとしたら、RoRでActiveRecordとかに若干慣れたので、
馴染みやすかっただけかもしんないけど。
288 : nobodyさん - 2008/03/24(月) 00:22:17 ID:gAnd/HKb (+24,+29,-28)
Cakeのプラグインって、なにか有名なのってあったっけ
なんのためにプラ銀機能なんて実装されてんの?
289 : nobodyさん - 2008/03/24(月) 03:29:33 ID:??? (-11,-4,-17)
都道府県データどこにいれてる?
290 : nobodyさん - 2008/03/24(月) 03:37:25 ID:??? (-26,-29,-129)
コントローラ全体じゃなくてメソッド単位でヘルパー、コンポーネント呼び出すにはどうすればいい?
会員登録ページのメソッドにアクセスしてるにもかかわらず
コントローラでPaginationコンポーネントを定義していれば
ページ処理の関わるクラスがnewされるんでしょ
291 : nobodyさん - 2008/03/24(月) 13:06:37 ID:??? (+32,+29,-98)
ヘルパーは細かく考えずにコントローラ単位で呼び出すのがCake流
コンポーネントやモデルはヘルパーに比べればメソッド単位で呼び出しやすいけど
こっちも深く考えずにコントローラ単位で呼び出すんだ
多分
292 : nobodyさん - 2008/03/24(月) 13:16:08 ID:??? (-26,-30,-69)
例えばググレカスアクションでほげヘルパーを呼び出す場合

function gugurekasu() {
    App::import('Helper', 'Hoge');
    $ajax = new HogeHelper();
}
293 : nobodyさん - 2008/03/24(月) 20:55:32 ID:??? (+27,+29,-46)
まあ、そんなに特定のアクションでだけ
ヘルパーとか呼び出したいのなら、
そういうコンポーネントを作ればいいんじゃないのかな?

コンストラクタあたりで、url見てごにゃごちゃすれば出来るでしょう?
294 : nobodyさん - 2008/03/25(火) 00:59:47 ID:??? (-11,-5,-5)
>>292
ネーミングが中途半端だな
HogeHelperだけ普通やん
295 : nobodyさん - 2008/03/25(火) 01:51:15 ID:??? (-15,-11,-12)
>>294
むしろ$ajaxに突っ込んで欲しかったな
296 : nobodyさん - 2008/03/25(火) 10:30:40 ID:Qe2AafnS (+35,+29,-72)
モデルってあんまりごちゃごちゃ書きたくないよな、dbdesigner2cakeとか使ってるとメンテナンスの面からとく。
だからといってコントローラにごちゃごちゃとロジックを書き並べたくないので
コンポーネントにすべてモデルを操作するカスタムメソッドを記述してます。

これって俺だけ?
297 : nobodyさん - 2008/03/25(火) 10:37:30 ID:??? (+37,+29,-21)
だからコントローラにいろいろ書くのは
まずいケーキだってケーキ様が言っている。

http://cakephp.org/files/OCPHP.pdf
298 : nobodyさん - 2008/03/25(火) 10:46:51 ID:??? (+35,+29,-42)
>>297
ケーキがどうのこうのいおうが
自分の見やすい書き方が一番

たとえば1万step以下のコードなら
全部コントローラに書いた方がいい、みたいなね!

299 : nobodyさん - 2008/03/25(火) 10:55:58 ID:Qe2AafnS (+35,+29,-55)
>>297 
3ページ目? こんなにモデルに書くもんかね…
俺だったらcとmの間のコンポーネントをずっしり書くな。別のプロジェクトにも使いまわしできるし。
コントローラだとほぼ、使いまわせないしな。
300 : nobodyさん - 2008/03/25(火) 11:02:26 ID:??? (+31,+29,-17)
1万ステップコントローラにべた書きとかすごいね
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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