トップページ⇒php
1001コメント324KB

【PHP】フレームワーク CakePHP 3ホール目【本命】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/03/14(金) 15:16:00ID:HF9x5ODX
http://www.cakephp.org/

10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/

マニュアル日本語化
http://www.cakephp.jp/doc/

日本語フォーラム
http://cakephp.jp/modules/newbb/

あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/

CakePHP入門リンク集
ttp://pub.studio15.jp/2007/11/13/cakephp-links/

【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
0508nobodyさん2008/04/01(火) 01:26:52ID:j0Vrw1hD
>>507
そっちのテストなら、セレニウムだろうと手作業だろうとなんだって良くね?

ユニットテストをするのなら1.2から正式対応したSimpleTestって言うだろうけど。

ていうか、テスト駆動開発って面倒ですよね、時間がかかるけど出来上がり安定するのは確かだけど。
0509nobodyさん2008/04/01(火) 01:34:29ID:???
正確にはテスト駆動じゃないけど、
ある程度の規模になったら、ユニットテストをやらないなんて
考えられないよ。

修正があるたびに同じテストなんてやってられない。
それこそ時間がかかる。
0510nobodyさん2008/04/01(火) 02:09:46ID:???
Selenium IDE これいいね。これだけでも同じテストする必要がないし
なんといってもテストが楽
0511nobodyさん2008/04/01(火) 12:33:08ID:???
Yahooが占いコンテンツ制作にCakePHPを採用
0512nobodyさん2008/04/01(火) 20:20:10ID:???
なにこの寂びれぶり
0513nobodyさん2008/04/02(水) 00:32:30ID:Ldo05SB7
んじゃ、おれがこのスレを潤わせてやるぜ
ビヘイビアって使ってる?
0514nobodyさん2008/04/02(水) 00:38:10ID:???
>>512
荒らしが去ったので落ち着いただけ。

CakePHPを使って、ようやくサイトを公開できた。
思ったより使いやすいね、CakePHP。
0515nobodyさん2008/04/02(水) 03:09:53ID:???
コンポーネント、ビヘイビア、ヘルパーの中では
ビヘイビアを一番使うな。

よくよく考えると、ソフトウェアの中心はモデル。
その中心の共通処理なんだからよく使うのは当たり前か。
0516nobodyさん2008/04/02(水) 11:07:25ID:???
>>515
ソフトウェアの中心はコントローラー
なぜならコントローラーはモデルとビューにも指令を出すが
モデルは、たいていコントローラを介してのやりとりになるから

そういう考えで行けば、よく使うのはコンポーネントじゃないとおかしい
0517nobodyさん2008/04/02(水) 11:18:11ID:Ldo05SB7
>>516
アフォがあらわれた
0518nobodyさん2008/04/02(水) 11:57:50ID:KzinrGTW
findCount()で count(distinct hoge) を指定したいのですが
それは、findAll() でやるべきなのでしょうか?
0519nobodyさん2008/04/02(水) 12:05:53ID:???
うん。アフォだ。ワロタw

コントローラなんて所詮インターフェースに過ぎんよ。
実際の処理じゃなくて、ブラウザから引数を受け取って
それを少々加工してモデルに渡す。
またモデルから受け取ったデータを少々加工してビューに渡す。

流れとしてはこんな感じだね。

「ブラウザ」→「コントローラ(加工)」→「モデル(実際の処理)」→「コントローラ(加工)」→「ビュー(HTML出力)」

っていうか、このように作らないとテストがしづらいったらありゃしない。

SeleniumやCakeWebTestCaseがあるとはいえ、
コントローラを操作してのテストでは範囲が大きすぎる。
もっと小さな範囲でテストできるようにしないといけない。

一番重要な処理を最小限の大きさ(なるべく他に依存しない)で
テストすること考えれば、自然とこうなるはず。
0520nobodyさん2008/04/02(水) 15:46:57ID:???
ガソリン安いな〜
これほど自民党の一党独裁の問題点が分かりやすい現象は無いなw
0521nobodyさん2008/04/02(水) 16:07:32ID:???
>>519
そうなんだ。だから本にもモデルのテストの方法しか書いてなかったんだ。
モデルよりコントローラーをテストしたいんだけど・・・ってずっと思ってた。

ということは、僕のプログラムの組み方がよくないんでしょうか。
05225162008/04/02(水) 16:33:04ID:Ldo05SB7
>>515,>>121
さきほどはアフォと一言で片付けてしまって申し訳ない、2ch流の愛情表現だと思ってくれ

で、>>519のいうとおりアプリケーションの中心となるビジネスロジックについてはコントローラなどでは
なくモデル内で実装するべき。一番大切なテストはビジネスロジックであるわけだし、モデルに集約して
(かつコントローラとのインタフェースも疎結合にして)コアロジックを実装することでコアロジックを別システムに
再利用しやすくなるというメリットも受けられる。

なので、コントローラはある意味、テストをしなくても問題ないくらい「薄い」実装にするべきだし、コントローラ
内で繰り返しよく使う処理についてはコンポーネント化してあげたほうが、ユニットテストで品質を保証できるので
良いかと。

こんな感じで考えていますが、どうでしょう?
0523nobodyさん2008/04/02(水) 16:44:10ID:???
>>519
Seleniumこれだけあれば、全く十分なんだが
これ以外でテストしようとすればコストかかるだけやろ
どんくさい作業してんな、赤字やろ?
0524nobodyさん2008/04/02(水) 16:50:49ID:???
>>522
だから何ってかんじだが、それがどうしたんだよ
リファレンスに書いてあるようなこと、なんで必死に訴えてるのwww

0525nobodyさん2008/04/02(水) 16:52:59ID:???
自演厨きたー。うぜえええ
0526nobodyさん2008/04/02(水) 16:56:38ID:???
Seleniumなんかでテストしたら時間(=コスト)がかかるよ。
ブラウザを起動する為、そもそも動作が遅いってのもあるが、

Seleniumだといくつものモジュールが組み合わさった状態で
テストするしかないから、どこのバグがあるのか見つけにくい。

またデータの初期化などが出来ない。
途中で内部のデータを調べることも出来ない。

CakePHPにはSimpleTestでブラウザをエミュレートした状態の
テストもできるので基本はそれを使ったほうが良い。

Seleniumを使うとしたら、SimpleTestではできない
JavaScriptが絡んだ処理のテストぐらいだな。
0527nobodyさん2008/04/02(水) 16:58:43ID:???
リファレンスに書いてあるようなことなのだから、
間違いではないということだなw
0528nobodyさん2008/04/02(水) 17:01:36ID:???
>>522
アプリケーションの中心となるビジネスロジックて何?
どんなロジック?

一番大切なテストてどんなテスト?

>>モデルに集約して
(かつコントローラとのインタフェースも疎結合にして)コアロジックを実装

プラグインと違うの?

>>なので、コントローラはある意味、テストをしなくても問題ないくらい「薄い」実装にするべき

モデルとビューに命令出すのに薄い実装なんて物理的に無理
モデルはカラッポでOK
0529nobodyさん2008/04/02(水) 17:04:44ID:???
>>526
ブラウザ上でテストするだけなのにモジュールとか関係ないしwww
JavaScriptテストやるなら加工しないと出来ないだろwww
0530nobodyさん2008/04/02(水) 17:05:56ID:???
>>526
Selenium使ったことないやろ?正直にいえ
0531nobodyさん2008/04/02(水) 17:08:00ID:???
SimpleTestの方が時間かかるよ
0532nobodyさん2008/04/02(水) 17:08:48ID:???
内部のデータを調べるようなテスト時間かかるに決まってるやろ
0533nobodyさん2008/04/02(水) 17:09:00ID:???
また、例の嵐だな。
0534nobodyさん2008/04/02(水) 17:09:39ID:???
とりあえず言っておくけど、CIは糞だから、
糞スレでやってねw
0535nobodyさん2008/04/02(水) 17:13:49ID:???
>>532
たしかに!
0536nobodyさん2008/04/02(水) 17:16:18ID:???
>>522
日本語でおk
0537nobodyさん2008/04/02(水) 17:18:56ID:???
なんか、CI普及の為(?)にわざとアフォなことを言っている気がする。
いや、まて、わざと悪い例を出しているのか?

まあ、訂正している俺は考えをまとめられていいけどな。
(そして訂正している文を見て学習する人もいるだろう)

> モデルとビューに命令出すのに薄い実装なんて物理的に無理
> モデルはカラッポでOK

コントローラが出す命令はすごく小さなものだよ。
モデルに対して、「データ取って来い!」「書き込め!」「削除しろ!」
そして、「複雑な一連の処理をしろ!」

前三つは、CakePHPの自動生成コードでも書いてあるから
簡単にわかると思うけど最後の「複雑な一連の処理をしろ!」を
モデルに書くべきってことをわかってない人が多いんだよね。
複雑な一連の処理をコントローラに書いてしまう。悪い例だ。
0538nobodyさん2008/04/02(水) 17:27:44ID:???
>>537
テストのことを考えていってんの?俺はテストはブラウザでしかしないからw
0539nobodyさん2008/04/02(水) 17:29:17ID:???
テスト中心に設計するならモデルに詰め込めるだけ詰め込めばいいんじゃね
0540nobodyさん2008/04/02(水) 17:30:57ID:???
>>537
複雑な一連の処理を具体的に述べよ
はなしはそれからだ
0541nobodyさん2008/04/02(水) 17:32:26ID:???
where が入るような条件文はモデルに書けばいいの?
0542nobodyさん2008/04/02(水) 17:33:42ID:???
>>537
モデルにもっていっていいのは
どこからどこまで?
0543nobodyさん2008/04/02(水) 17:45:27ID:???
>>537
いくら給料もらってんだよ
俺はPHPプログラマで36万円
0544nobodyさん2008/04/02(水) 17:53:38ID:???
 
 
 
モデル上で別のモデルのデータ取得できなくね?
 
 
 
0545nobodyさん2008/04/02(水) 17:55:24ID:???
>>542
どこまでをモデルでやるかは結局設計しだいだけど、

>>541
ユーザーがフォームからの条件入力。URL形式での条件入力
、つまりコントローラのアクション関数の引数に入る場合。

その引数をもとにモデルを呼び出すわけだけど、
このときのモデルの関数は汎用的なfind関数でもいいし、
もっと簡単に扱いたければ、モデルに専用の関数を作って呼び出す。

汎用的なfind関数を使う場合には、array('key' => '= ' . $value)なんて
条件データに加工しないといけないよね? これがコントローラの処理。

モデルに専用の関数を作る場合、もっと簡単に使える関数にするね。
もちろんその場合、モデル内部でfind関数を使うことになるだろうし、
そのための条件の加工もモデルに書く。

ユーザーの入力した条件が、POSTでくる場合は、
$this->dataから条件を作り出す所までもうちょっと
コントローラでやる仕事が増えるだろう。

それでもコントローラの処理(モデルを呼び出すところまで)はこれだけ。
俺ならこのように作るよ。

あとモデルから戻ってきたデータを、ビューで使いやすいように
単純化するのもコントローラの仕事だね。
0546nobodyさん2008/04/02(水) 17:59:00ID:???
>>544

> モデル上で別のモデルのデータ取得できなくね?

モデル上で別のモデルのデータを使用したいと思ったとき、
その二つのモデル間には関連性がある。

つまりアソシエーションを定義している。
アソシエーションを定義しているのなら、
モデル内で、別のモデルを呼び出すことが出来る。

Model1の中から、$this->Model2->findAll(); 感じで呼び出せる。
0547nobodyさん2008/04/02(水) 18:01:31ID:???
>>545
モデルから戻ってきたデータを、ビューで使いやすいように単純化

数字にコンマ付けたりとか?
0548nobodyさん2008/04/02(水) 18:02:43ID:???
>>546
そのやり方はCakePHPで推奨されてる方法なの?
0549nobodyさん2008/04/02(水) 18:05:48ID:???
>>546
わざわざアソシエーションするの?
いつも結合されて重くなるじゃん
0550nobodyさん2008/04/02(水) 18:06:46ID:???
>>547
それは見た目を変えるだけだからビューの仕事だろうね。

モデルから戻ってきたデータとは、汎用的なfind関数の場合、

$data => array(
 モデル名 => array(
  フィールド名1 => 値1,
  フィールド名2 => 値2,
  フィールド名3 => 値3,
 )
)

こんな値が返ってくる。もちろん、これをそのまま
ビューに渡してもいいんだけど、これじゃあビューで使いにくい!
って言う場合加工する。

そんな場合あるのかって? 余り無いだろう。
そう、だからコントローラの仕事は少ない。

モデルから取得した値をビューに渡す$this->set(・・・) は
コントローラの仕事ね。
0551nobodyさん2008/04/02(水) 18:07:42ID:???
>>549
必要なときにつけたりはずしたりする方法は、何度も既出
0552nobodyさん2008/04/02(水) 18:11:37ID:???
>>548

だめなのか?
0553nobodyさん2008/04/02(水) 18:12:12ID:???
>>546
なんでモデルでやるの?そのメリットは?
0554nobodyさん2008/04/02(水) 18:21:49ID:???
>>553
もちろん、直接関係が無いモデルは別々に
アクセスするよ。

モデルというか処理の内容から考えて
一つであるべきと思う場合は一つのモデルでやる。

あと、トランザクションの為のメソッドが
モデルにあることも興味深いよね。

一連関係ある処理は一つのモデル内で完結させるものと
考えると、なるほどと思わない?
0555nobodyさん2008/04/02(水) 18:23:17ID:???
>>546
モデルは複雑にすべきじゃないよ。な中規模設計したとき
アソシエーションで必ず問題起きそう

0556nobodyさん2008/04/02(水) 18:27:56ID:???
>>555
その意見はわからないでもないが、

普通にRDBMSを正規化したとき
そういう関連(リレーション)は出来るもんなんだが・・・

RDMSを正規化すると複雑になってしまう。それがいやだから
それを解決する為に、O/Rがあるんだと思うぞ!
0557nobodyさん2008/04/02(水) 18:28:26ID:???
×RDBMSを正規化したとき
○RDBMSでテーブルを正規化したとき
0558nobodyさん2008/04/02(水) 18:32:44ID:???
>>546
ページ数が増えたとき、コントローラを増やすことができるけど
コントローラが増えた分モデルを増やすこと出来ないよ。
ひとつのモデルに書くコードが恐ろしく増えるね
0559nobodyさん2008/04/02(水) 18:34:17ID:???
また例の馬鹿か?
0560nobodyさん2008/04/02(水) 18:35:56ID:???
> コントローラが増えた分モデルを増やすこと出来ないよ。

言っている意味が、よくわからないんだが・・・

例えコントローラが無くてもモデルは作れるし、
一つのコントローラで複数モデルを扱うことも出来るんだが?
0561nobodyさん2008/04/02(水) 18:43:36ID:???
全てはコントローラに処理を詰め込み過ぎたscaffoldが悪い。
あれがアフォに勘違いを植え込む。
0562nobodyさん2008/04/02(水) 18:49:12ID:???
うーん、自動生成のコードとしては、これしかやりようがない所もあるのだろうけど、
コントローラに処理を詰め込みすぎというか、モデルに処理が何も無いのが
いけないんじゃないかな?

あれじゃ、単にテーブルに直接アクセスするネイティブな関数の
代わりのクラスにしか見えない。

一番、プログラマがいろいろ書くべきなのはモデルなのに。
逆に言えば、いろいろ書かないといけないものだからこそ
自動生成ではモデルに何もないんだろうね。
でもサンプル程度はほしいかも。
0563nobodyさん2008/04/02(水) 18:53:30ID:KzinrGTW
debugを1以上にするとHTMLの一番最後に
<!-- 0.0012s -->
みたいに、生成時間?のコメントがつくんですけど
これを付けないようにするにはどうすれば良いんでしょうか?
debugは1にしておきたいです。
05645632008/04/02(水) 18:58:51ID:???
あ、webroot/index.php にありました。
0565nobodyさん2008/04/02(水) 19:00:37ID:???
cakephpで作られたオープンソースみても
モデルで書かれてる処理はバリデータ関係の関数しかないんだけど

http://code.google.com/p/openflp/
0566nobodyさん2008/04/02(水) 19:00:38ID:???
>>564
Do not changeって書いてあるけどねw
0567516,5222008/04/02(水) 19:01:23ID:Ldo05SB7
ん?なんかいろいろゴチャゴチャしてきたけど、結局俺が主張してたことは正しかったのか・

「複雑な一連の処理」とかビジネスロジックとかって、たとえば俺の場合は
 ・�@日足の株価を取得してRSIを計算する
 ・�A与えられた条件引数に該当する銘柄の証券コード配列を取得(スクリーニング)
 ・�B現在の株価を受け取り、あらかじめ計算しておいた目標価格の条件を満たすか判別
   ⇒・更に条件を満たしていれば、買い/売り注文をWEBサービスに投げる処理も「証券会社モデル」(仮称)というDBと連携しないモデルを作成して、HTTP(S)で注文するメソッドを書いてる。
 ・�C現在の株価を取得する(楽天証券のRSSをDDE接続経由で呼び出すモジュールを別途使用)
みたいなアプリが持つほとんどの主要処理を言ってて、これらをモデル(またはビヘイビア)に記述するべきと思うのです。

逆に言えばコントローラは、
 ・�Cの「現在の株価を取得する」メソッドからの返し値をそのまま�B「株価と目標を評価し、注文する」メソッドに引渡し仲介する
 ・ビューからリクエストがあった�@などの計算処理をモデルメソッド�@に引き渡す
 ・スクリーニング対象銘柄の証券コードリストを取得し、そのまま�Aのスクリーニングメソッドに引き渡す。
くらいのことしかしていない。人間の世界でいうと「仲介人」かと。
0568nobodyさん2008/04/02(水) 19:06:54ID:???
>>565
お前の目は節穴か・・・

ってかこのソースあまりいいとは思えないな
0569nobodyさん2008/04/02(水) 19:08:08ID:???
OpenFLP
Rails 製のオープンソース版 Fastladder

モデル 382steps
コントローラー 910steps

コントローラーに処理書きまくってるんですが。。。
0570nobodyさん2008/04/02(水) 19:09:00ID:???
じゃあ本家railsのソースコードみせてやる
0571nobodyさん2008/04/02(水) 19:11:13ID:???
コントローラに処理を詰め込みが正論か非か
オープンソース見れば、すぐわかることだからな
0572nobodyさん2008/04/02(水) 19:15:29ID:???
オープンソースといってもその質はピンキリだから

> じゃあ本家railsのソースコードみせてやる
おいっ! railsはフレームワークだ。
もともとビジネスロジックは含まれてない!
0573nobodyさん2008/04/02(水) 19:18:52ID:???
>>567
全部コントローラで出来るし
それをCakePHPでやる意味がわからんw
0574516,5222008/04/02(水) 19:46:05ID:Ldo05SB7
>>573
あー、「全部コントローラで出来るし」って言ってる時点でプロフェッショなるじゃないことが確定www
議論しても理解できないんだろうな、「できる/できない」ということと「(プロとして)やるべき/べからず」
といった本質的な点をwww

コントローラでも全部やろうと思えばできることくらいわかっとるわいwww
0575nobodyさん2008/04/02(水) 19:58:32ID:???
>>574
CakePHPでやることじゃないことは確かwww
0576nobodyさん2008/04/02(水) 21:14:45ID:???
ビジネスロジックはモデルに集約すべき
議論としては面白い
俺もその辺気になってた


まあ俺はbakeしたコードの拡張から入ったクチだから全部controllerに書いちゃうけどなwww
0577nobodyさん2008/04/02(水) 21:37:43ID:???
>>576
俺もコントローラに書いてしまったけど、
作り続けていくうちに、なんか無理が出てくるんだよ。

なんでこんなに作りづらいんだ?って思っていたときに
このスレにあった、ケーキの絵。あれで悟りを開けた気がする。
あぁモデル中心でやればいいんだって。
0578nobodyさん2008/04/02(水) 21:58:22ID:???
>>577
その絵ってどれ?
0579nobodyさん2008/04/02(水) 21:58:46ID:???
>>562
モデルに書けって言うけど、何を書くの?
関数で書けばいいの?モデル内のメソッドとして?

>>565
の言うとおり、実例も無いし具体的なメリットが分からない。
今のところテストが楽って事はなんとなく分かった。
0580nobodyさん2008/04/02(水) 22:16:06ID:???
>>578
これの3ページ目
http://cakephp.org/files/OCPHP.pdf
0581nobodyさん2008/04/02(水) 22:19:41ID:???
> 関数で書けばいいの?モデル内のメソッドとして?

モデル = ビジネスロジック用のクラス
なんだから、言うまでも無くメソッドだろ
0582nobodyさん2008/04/02(水) 22:22:03ID:???
>>580
ありがとう,でもコントローラーよりモデルに重点おけよという一言で済む話かw
0583nobodyさん2008/04/02(水) 22:26:19ID:???
>>581
そうすると、どう幸せになれるわけ?
0584nobodyさん2008/04/02(水) 22:27:49ID:???
>>583
どう幸せになるかではなく、
どう幸せになりたいか。

貴方はプログラミングする上で、どうなったら幸せだと感じる?
0585nobodyさん2008/04/02(水) 22:57:59ID:???
railsはコントローラーに重点を置くようになってるのではなぜ?
0586nobodyさん2008/04/02(水) 23:14:04ID:???
>>574
自分の安価間違ってね?516と522で筋が通ってない
0587nobodyさん2008/04/02(水) 23:53:19ID:???
>>585
railsでもモデルが一番重要なものですよ。
0588nobodyさん2008/04/03(木) 00:17:09ID:???
モデルが一番重要なんてCakePHPだけの話
松本に話したら鼻で笑われたよ
0589nobodyさん2008/04/03(木) 00:38:13ID:???
松本といっても鼻の長いゾウをキャラクターにしている会社の松本だけどなw
0590nobodyさん2008/04/03(木) 00:48:42ID:???
でもキリンさんも好きなんだろ?
0591nobodyさん2008/04/03(木) 10:10:52ID:Z1Ohe4yI
ビヘイバ話はおわったのか?
0592nobodyさん2008/04/03(木) 11:26:08ID:???
Model は特定の環境に依存しない処理を行う部分である。
0593nobodyさん2008/04/03(木) 12:10:16ID:???
たとえばの話なんですが、
1.フォームから画像ファイルをアップロード
2.アップロード結果・画像ファイルの不正検知
3.2が成功時、元画像名をmd5したものをuploadsフォルダに保存
4.3のファイル名をimage_fileカラムに格納
という一連の処理があったばあい、
今現在はコントロールとコンポーネントに書いてますが、
モデルとビヘイビアに書くとしたら、
2->バリデータに記述
3->ビヘイビア
4->モデル
という感じなんでしょうか?
0594nobodyさん2008/04/03(木) 12:26:23ID:???
ビヘイビアて1.2からだろ、
最初から無いってことは必要性が薄いてことだよな
0595nobodyさん2008/04/03(木) 12:32:04ID:???
ソースが読みやすければコントローラーで全部書いてもいいし
モデルに書いて読みにくくなるなら、書かない方がいい
結局はソースを読みやすくするために分けてるだけの話
0596nobodyさん2008/04/03(木) 12:32:23ID:???
画像アップロードできるビヘイビアあるよ。
正確には画像を保存できるビヘイビアだけどね
http://bakery.cakephp.org/articles/view/actas-image-column-behavior
0597nobodyさん2008/04/03(木) 12:50:28ID:???
結局はソースを見やすくする為にある。
一番見やすいソースとは、なるべく何も書かないこと。

画像をアップロードして保存というのは、本質的には
テーブルに画像フィールドを作ってそこに格納することと変わらない。

だからフィールド追加作業以外は、一切処理を変更しないで
作れるというのが一番理想的。

ビヘイビアを使えば、>>596のようにActsAsにわずかなフィールド情報を
設定して終わりだけど、その他の方法でここまでスマートに作れるかな?
05985932008/04/03(木) 13:32:44ID:???
>>596-597
ありがとうございます。
こりゃ1.2にチャレンジしなきゃだな
0599nobodyさん2008/04/03(木) 13:49:15ID:Z1Ohe4yI
>ビヘイビアて1.2からだろ、
>最初から無いってことは必要性が薄いてことだよな

正確には1.1の頃からビヘイビアのディレクトリは用意されてたんだよな。
おそらく必要性はあったのだけど、1.1.xのステイブル版までに実装できなかっただけなのでは?
0600nobodyさん2008/04/03(木) 14:22:02ID:???
railsにはビヘイビア相当になるものが無いんだが、どうして
0601nobodyさん2008/04/03(木) 15:14:18ID:???
ビヘイビアてベネズエラにいる俺の愛人と同じ名前だ
0602nobodyさん2008/04/03(木) 15:38:42ID:???
>>600
Rubyではmixinという言語機能でビヘイビア相当のことが出来るから。
0603nobodyさん2008/04/03(木) 17:41:48ID:???
マニュアル»CakePHPによる開発»Models»Introduction
http://book.cakephp.org/ja/view/67/introduction

> Model behaviors provide a way to mix in functionality

へぇ、behaviorsはmix-in的な機能を提供するものだったんだ。なるほど。
0604nobodyさん2008/04/03(木) 18:10:28ID:???
>>603
きちんとした日本語訳サイトあるのに。。。
0605nobodyさん2008/04/03(木) 18:23:11ID:???
>>604
どこに?

0606nobodyさん2008/04/04(金) 20:03:22ID:GG6uDHIa
わっふるわっふる
0607nobodyさん2008/04/05(土) 04:54:50ID:???
cakeでのMC棲み分け例としては以下がありますよね。
個人的にはいい感じだと思いましたが、どうでしょう?

CakePHPを使ったMVC設計のベストプラクティス
ttp://www.sooey.com/journal/2008/03/26/717/
■ このスレッドは過去ログ倉庫に格納されています