トップページ⇒php
987コメント299KB

【PHP】フレームワーク CakePHP

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/11/18(土) 20:53:22ID:???
おら、とうとうガマンできなくて立てちまっただ

本家
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/
0711nobodyさん2007/09/14(金) 16:00:59ID:DU5zTfFS
理想的にはそうだが、別に英語できない職業プログラマーなんてゴマンといる現実について。
0712nobodyさん2007/09/14(金) 17:02:29ID:???
自社でノウハウがたっぷりあればいいけど
この界隈でどうやって英語抜き生活するんだ

つーか、技術英語なんて大体パターン決まってるし
サンプルコードもあるんだから割と簡単だよ

英語�_とか抜かしてる奴はただ
ズラーっと並んだ横文字をパッと見て諦めてるだけだろ?
0713nobodyさん2007/09/14(金) 17:09:56ID:???
Cakeに関係ない話はよそでやれ
0714nobodyさん2007/09/14(金) 17:17:51ID:???
そうは言っても、実際いるもんはしょうがないだろうに・・・。終了。
0715nobodyさん2007/09/14(金) 17:30:12ID:???
Cakeに関係ない話はよそでやれ
0716nobodyさん2007/09/14(金) 20:31:41ID:???
703の話題も>>1の一番下のサイトに書いてあるよね。
0717nobodyさん2007/09/14(金) 21:43:55ID:???
まったく、なんで/posts/view/?var1=3&var2=4 が呼ばれたとき、

$this->params['url'] => Array
(
 [url] => posts/view    ←余計なデータ
 [var1] => 3
 [var2] => 4
)

なんだよ。ぼけ。使いにくいじゃないか。
0718nobodyさん2007/09/14(金) 22:26:23ID:???
CakePHP 1.2っていつでるの?
なんか残りチケット200ちょいからぜんぜん減ってないんだけど
0719nobodyさん2007/09/14(金) 22:52:00ID:???
>>717
そういう場合は、Cake的には普通は
URLを /posts/view/3/4 として PostsController で

function view($var1, $var2) {
...
}

というふうに受け取るんだよ。
http://cakephp.jp/doc/controllers.html#id4805355 に書いてるべ。
0720nobodyさん2007/09/14(金) 23:05:16ID:???
>>719
じゃあ聞くが、

検索語[   ]  [検索]

というフォームはどうするんだよ?

/posts/?search=aaa

とかで渡されてくるだろ?
0721nobodyさん2007/09/14(金) 23:36:29ID:???
>720
それは、

$this->params['url'] => Array
(
 [url] => posts/view
 [search] => aaa
)

でいいんじゃないかな。
予約語みたいなものじゃない?urlは。

どういうとき困る?
0722nobodyさん2007/09/14(金) 23:37:36ID:???
paginationと組み合わせるとき。
0723nobodyさん2007/09/14(金) 23:43:50ID:???
ていうか、そんなに'url'があると困るなら$_GETを調べればよくね?
無理してCakePHPの変数を使おうとせんでも
0724nobodyさん2007/09/14(金) 23:55:33ID:???
$_GETにしたところで、urlは入っているだろ。
試してから書いてくれ
0725nobodyさん2007/09/14(金) 23:57:30ID:UPghMBCi
ん?何が困るんだ?

パラメータに何を使ってるかは
自分で分かってるんだからどうとでもなるべ
0726nobodyさん2007/09/15(土) 00:01:24ID:???
> ん?何が困るんだ?
保守性が悪いから困る
0727nobodyさん2007/09/15(土) 00:13:43ID:???
強引な方法でもいいならdispatcher.phpを改造すれば何とかなる
あとは知らん
0728nobodyさん2007/09/15(土) 00:18:09ID:PGlxhB9T
CakePHPは、CakePHPの想定しているレールに従って組むと楽だけど、
そのレールに不満を感じ始めると途端に使いにくくなるよ
後者なら他のFWの方がおすすめ
0729nobodyさん2007/09/15(土) 00:42:08ID:???
>>728
そういうレベルの話じゃなくて、
prams['url']にurlなんかいらないだろ?
他から取得できるのに、何のためにあるんだって言う話。
0730nobodyさん2007/09/15(土) 00:48:32ID:PGlxhB9T
いや、だからそういう話だよ
これだけじゃなくて、CakePHPはそういう意味不明な予約語みたいのが多い
俺だって_GETに'url'を追加する必要なんかないと思う
だからそういう不満を感じるなら向いてないよ、っていう話
0731nobodyさん2007/09/15(土) 00:52:24ID:PGlxhB9T
ま、今どうしても解決したいなら我慢するか727の方法でやるしかないんじゃない?
俺はもう自分からCakePHPを使うことはきっとないよ
わけが分からない制約が多すぎるからね
0732nobodyさん2007/09/15(土) 01:06:19ID:???
>>731
頭固いな。
単にコントローラ継承して、
params['get']を作って終わりだよ。
0733nobodyさん2007/09/15(土) 01:23:03ID:PGlxhB9T
やってることは727と変わらないじゃんw
まあ継承して解決するだけマシだけど手間は変わらない。
ていうか、CakePHPがPHP標準の仕様を勝手に変えてるせいでそういう対応をしないといけないわけで。
頭が固いとかいう問題じゃなくて、意味不明な制約が少ないFWの方がいいってだけ。
0734nobodyさん2007/09/15(土) 01:25:47ID:???
>>733
頭が固いのは、お前のことだよ。
0735nobodyさん2007/09/15(土) 01:28:32ID:PGlxhB9T
へぇ。頭が柔らかいねえ君は。すごいすごい。


これでいい?満足した?ww
0736nobodyさん2007/09/15(土) 01:31:05ID:???
ID:PGlxhB9T 涙目wwww

とっても満足した。
0737nobodyさん2007/09/15(土) 01:32:36ID:PGlxhB9T
それはよかったww
おめでとう。
0738nobodyさん2007/09/15(土) 01:33:30ID:???
さらに涙目www
0739nobodyさん2007/09/15(土) 01:35:26ID:PGlxhB9T
自己紹介乙w
0740nobodyさん2007/09/15(土) 07:07:45ID:???
・javascriptでonsubmit時に/post/aaaに飛ぶようにする
・mod_rewriteで/posts/?search=aaaを/posts/aaaに書き換える
0741nobodyさん2007/09/15(土) 10:12:34ID:???
>>740
rewriteいいね!
0742nobodyさん2007/09/15(土) 11:17:52ID:???
そんなに文句があるならcakePHPを捨てればいいだろ。
SymfonyでもZendでもいいし、なんならRailsでも使えや。
0743nobodyさん2007/09/15(土) 11:39:11ID:???
極論しかいえないアフォスwwww
0744nobodyさん2007/09/15(土) 12:14:57ID:???
>>740
こうですか?わかりません><

$html->formTag('/post','get',array('onsubmit'=>'location.href=\'/post/\'+this.search.value;return false;'));
0745nobodyさん2007/09/15(土) 14:49:02ID:???
まあいくらでもやりようはあるわな
0746nobodyさん2007/09/18(火) 16:54:37ID:Al1Bs6O8
cakephp1.2 の Notice エラーについて教えていただけませんでしょうか。
Noticeエラーを表示させたくないのですが、

ドリームウィーバーで error_reporting の部分に ^ E_NOTICE をつけてもNoticeエラー
が表示されてしまいます。エラーレベルを変更するにはどこを修正すればよいのでしょうか。

cakephp1.1のときは上記方法でうまくいったのですが・・・よろしくお願いします。
0747nobodyさん2007/09/18(火) 18:46:58ID:???
cake本が出るらしい
http://cakephp.seesaa.net/article/53564832.html
0748nobodyさん2007/09/19(水) 16:32:02ID:???
php.iniや.htaccessをいじれないことを考慮して、
mbstring.encoding_translationをonにすることなく、
phpコードで文字コード判別・変換したいのだが、
どこに入れたらいいのだろうか?

cakephpが解釈して、変数に入れたりする前に
$_POST、$_GET、(他にもあるかな?)の内容に対して
文字コード変換するべきだと思うんだが、
どの時点でするべきだともう?

どこにコードを書けばいいんだろうか?
0749nobodyさん2007/09/20(木) 16:12:39ID:???
日本語フォーラムみて思ったんだけど、開発時にNotice表示を消したい理由ってなんだろう。
0750nobodyさん2007/09/20(木) 17:41:56ID:???
JSONとか、HTML以外を出力するときは消したい時あるな
0751nobodyさん2007/09/20(木) 17:55:04ID:???
>>749
Noticeレベルも出ないように開発するのが当然でしょう?っていいたいの?
0752nobodyさん2007/09/20(木) 18:44:41ID:???
当然だと思います。
0753nobodyさん2007/09/20(木) 19:25:42ID:???
あそ。
0754nobodyさん2007/09/20(木) 21:36:38ID:???
>> 750
そういう時は出力するコントローラのアクション内で、
Configure::write('debug', 0);
でスッキリ。
0755nobodyさん2007/09/21(金) 13:49:22ID:7403Nihy
cake 1.2 まだバグ多いね。バリデーションもなんか動かないんだけど。
SQLもわけわからんとこでエラーでるし。

さすがは a 版。

やっぱり今はまだ 1.1 を使ったほうがよさそう。
0756nobodyさん2007/09/21(金) 18:01:26ID:???
1.1系で一つの項目に対して、複数の入力チェックはどのように実現するのが一般的ですか?
07577562007/09/21(金) 18:49:13ID:sxzZ5KcO
http://blog.imototakeshi.com/archives/266.html
な感じが一般的ですか?
0758nobodyさん2007/09/21(金) 23:19:35ID:???
> cake 1.2 まだバグ多いね。バリデーションもなんか動かないんだけど。

普通に動いているが?
0759nobodyさん2007/09/22(土) 00:48:28ID:???
普通に安定してるわな。
0760nobodyさん2007/09/22(土) 03:59:23ID:???
1.2使ってるけど、ドキュメントが少ないこと以外は特に問題ないな。
でもやっぱりalphaだと安定性が心配。
0761nobodyさん2007/09/22(土) 17:26:50ID:???
普通に自分で手入れすればいいじゃん。フレームワークのソース読めないで使っているようじゃフレームワークにツカワレているのと同様。
0762nobodyさん2007/09/23(日) 14:48:44ID:???
ソース読まないと使えないフレームワークとかイラネ
0763nobodyさん2007/09/23(日) 16:06:27ID:???
読めないっつーか読まない。カスタマイズする時は読むけど。暇じゃないからな。
0764nobodyさん2007/09/23(日) 18:14:45ID:???
>>762
禿同
0765nobodyさん2007/09/23(日) 19:49:58ID:???
>>761
ワロスwwwww
なんのためにフレームワークがあるんだか
0766nobodyさん2007/09/23(日) 20:14:29ID:???
>>761
こういうひとはきっとLinuxやらApacheやらPHPやらのCコードも全部読んでるんだろうね
0767nobodyさん2007/09/23(日) 21:18:16ID:???
オープンソースのモノを使う資格ないやつばかりだな。不満があるなら自分で直せって意味だろ
0768nobodyさん2007/09/23(日) 21:43:25ID:???
>>767

同意

ここも口だけのやつばかりだね
0769nobodyさん2007/09/23(日) 23:34:12ID:???
ソースを読ませることを前提としているモノは
PHPフレームワークに限らず、全部ゴミ。

ドキュメント読んだりAPI見たりしてわからなければソース見ればいい。
しかしコアソースを変えさせるのは如何なものかと思ってみたりする。

以上、独り言ですた。
0770nobodyさん2007/09/24(月) 00:07:14ID:???
>>769
普通cake/の中身にはちょっかい出さないよ
0771nobodyさん2007/09/24(月) 01:34:07ID:???
>>769

オープンソースの意味わかってないやつ発見

貧乏なくせに遠吠えしてるやつってしょうもないよなあ
0772nobodyさん2007/09/24(月) 01:35:40ID:???
訂正

貧乏な上に技術もなく さらには語学力もないのに
遠吠えしてるやつってしょうもないよなあ

だな

こんなとこでほえてないで フォーラムにポストするなりすりゃいいのに
0773nobodyさん2007/09/24(月) 02:18:10ID:???
まあ、完璧なモノなんて存在しないから、手を入れざるを得ない場合もあるけど、
手を入れる必要があればあるほど、「効率よく開発できるフレームワーク」から
遠ざかっていくことは間違いないな。
あんまり手を入れる必要があるのなら、自分で書いても大して変わらなく
なってしまうわけだし。
0774nobodyさん2007/09/24(月) 12:18:00ID:???
>>771-772
ガキの独り言に何をそんなにムキになって噛み付いてんだ?w
じゃ、まずはモマエからオープンソースの意味について言ってごらん
0775nobodyさん2007/09/25(火) 19:59:07ID:???
デキるやつと、デキないやつの境目を見た気がする。

デキるやつは、多少バグがあろうと関係ない。
ソースを読んで内部を把握するから詳しくなる。

そしていざ使うとなったときに、
一方はすでに内部から把握している人、
一方は今から勉強する人にわかれる。
0776nobodyさん2007/09/25(火) 22:41:30ID:???
フレームワークを使うのってさ、面倒なルーチンワークを任せたいからじゃないのかなぁ。
それに、ソースいじりだすとさ、バージョンアップの時も作業が増えるし、いじらなくて済む
ならいじらない方がいいと思うのはおかしいですか?

ごみは言いすぎかもしれないけど、「ソース読むのが前提」ってのは本末転倒かと。
俺は、>769の意見に賛成だよ。
0777nobodyさん2007/09/25(火) 22:58:10ID:???
ソース読めば、
Cakeが空のクラスを継承してることに気が付くから、
フレームワークの根幹に手を入れるなんて大冒険しなくて良いことに
気が付くよ。

ていうかCakeでソース読まないってどんだけエスパー揃いなんだよ。
膨大なよくわからんHowtoググルより
Cakeぐらいなら、ソース読んだほうがぜんぜんわかりやすいだろう。
0778nobodyさん2007/09/25(火) 23:08:09ID:???
ああでもソース見ると使いたくなくなるけどね。
0779nobodyさん2007/09/26(水) 01:35:02ID:???
構造が同じテーブルが複数合って動的に変更したいのですが、コントローラで

$this->Hoge->setSource("hoges");

としたのですが、FindAllをするとSQLのエラーとなります。
トレースを見たところ、

SELECT FROM `hoges` AS `Hoge` WHERE 1 = 1

てな具合で、SELECTの後のフィールドリストが空になっています。
自前でモデルの中でフィールドを定義するのか、
それとも、setSourceしたあとに何らかのメソッドでモデルを更新するとか
勝手に想像しながら、APIドキュメントを眺めてはいるのですが、それらしいものが見つかりません・・・

アドバイスお願いできないでしょうか・・・

#ぐぐったら、
#http://d.hatena.ne.jp/cvyan/20070925
#同じようにはまってる人がいました・・・
07807792007/09/26(水) 03:03:06ID:???
追記です。

自前でSQLを用意してfindBySqlメソッドを使えば、indexビューは表示できるようになりました。

$sql = "SELECT `Hoge`.`id`, `Hoge`.`name`, `Hoge`.`username` FROM `hoges` AS `Hoge`";
$result = $this->Account->findBySql($sql);
$this->set('hoges', $result);

ただ、InsertやDeleteメソッドも同様にSQLを用意しないと駄目な感じです。
せっかくのフレームワークなので、もう少しスマートな方法があればいいのですが・・・
0781nobodyさん2007/09/26(水) 09:27:28ID:???
>>779
モデルの基底クラスでテーブルのメタ情報をキャッシュするようになってるので、そのせいだと思う。

reset()かnewでなんとかならないかな。
0782nobodyさん2007/09/26(水) 10:10:24ID:???
ソース嫁厨ww
0783nobodyさん2007/09/26(水) 10:32:59ID:???
>>776
それは、ドキュメント読む方が早いか、ソース読むのが早いかによるんじゃないかなぁ。
読む速度が同じであっても、ソースを読んだ方が理解や応用、拡張が素早く出来るので、結果的に作業は早くなると思う。

まぁべつにソースを全部読めっていうわけじゃないし、本末転倒ってほど悪くは無いと思う。
むしろ折角のスクリプト言語で読みやすくなってるのにそのメリットを生かさない方がもったいない。

もちろん、よいドキュメントはいつだって欲しいけどさ。
0784nobodyさん2007/09/26(水) 10:54:34ID:???
結局、ドキュメントが不足していると言うだけの話であって、
CakePHPの出来が悪いと言うことにはならない。

本当のプログラマにとってはドキュメントもソースも同じようなものだけどね。
ソースも読めないような人間は、ドキュメントを読めないのと同じ。
0785nobodyさん2007/09/26(水) 11:31:59ID:???
>>779
1.1使ってる?

そのうち使いそうだろうから、試してみたけど全然問題なかったよ。
1.2.0.5427alphaでテスト。

コントローラのbeforeFilterとindex、どちらの一行目で
setSourceしても問題なかった。


個人的には、ログのように1年単位でテーブルを分ける的な場合なら
モデル側で使用するテーブルを判断するべきじゃないのかと思うが。
07867792007/09/26(水) 15:17:54ID:???
newでコンストラクタの引数にテーブル名を指定する方法で、解決いたしました。
沢山のレスありがとうございました。

#Versionは1.1を利用しています
0787nobodyさん2007/09/26(水) 16:35:14ID:???
1.2.0.5427alpha試してるんだけどDEBUGの値2と3で変わらなくない?
07887872007/09/26(水) 17:04:51ID:???
ソース読みました。
view.phpで$this->controllerがnullになってるみたいね。
0789nobodyさん2007/09/26(水) 18:31:30ID:???
今ふと気づいたんだけどさ、app/models/datasources ってフォルダがある。
このフォルダ、なんに使うんだろうか?

このフォルダがあると言うことは、何かしらの
ユーザー定義のクラスか何かを置くのだと思う。

新しいデータベースサーバーへの対応?
だとしたら、それは app/models/datasources/dbo になるはず。
しかし、そんなフォルダはない。

まさかRDBMS以外、つまりODBMSやXML等に対応するためか?
0790nobodyさん2007/09/27(木) 17:13:09ID:???
ドキュメントに記述が無いんだったら、
Tracでそのディレクトリのコミットログを見たら
どういう意図で追加されたかわかるかもよ
0791nobodyさん2007/09/28(金) 11:52:16ID:???
みなさんhelperってどの程度使用してる?
かえって不便な気がしてきたんだけど。
0792nobodyさん2007/09/28(金) 14:13:03ID:8QRsdJbb
>>791
自作に関しては作ってみたけどヤメタ。
独自に名前空間もった変数名つけてincludeしちゃったほうが
お手軽だったりするしさほど問題なかったりする。

form系のヘルパーは使うよ。inputとかtextareaとかselectTagとか。
html系のlinkとかimageとかは使いでは無いね。
0793nobodyさん2007/09/28(金) 15:42:01ID:???
1.1系から1.2系に移行しようとするとhtmlヘルパーだったのがDeprecatedとかいって
formヘルパーにいっちゃってたりして結構めんどいね。
極力ヘルプレスなほうがわかり易いと思った。
0794nobodyさん2007/09/28(金) 19:12:35ID:???
ドキュン
0795nobodyさん2007/09/28(金) 21:24:25ID:???
>>792
> 自作に関しては作ってみたけどヤメタ。
> 独自に名前空間もった変数名つけてincludeしちゃったほうが
> お手軽だったりするしさほど問題なかったりする。

それって、単にHelperクラスを継承しないってことなだけじゃね?w
Helperクラスを継承しないでHelperを自作している。
だよね?
0796nobodyさん2007/09/28(金) 22:13:37ID:???
792です。

>>795
あー、Helperじゃなくてプレーンなファイルなんだけど、
何か俺の言ってることもHelperと関係ない気がすごいしてきた。すまん。

ちょっとリセットして。

そもそもHelperを自作するような場面自体が少なそう。

なんていうか、デザイン要素を含むビューだとHelperの内部に
HTMLを書くことになってデザイナーがいじれないから、
アプリケーション独自のパーツ表示系とかにHelper使えない。

htmlヘルパーやjavascriptヘルパーのような汎用的かつ
ほとんどデザイン要素を含まない(含むとしてもフルカスタマイズ可能な程度)ような機能の
ヘルパーしか自作できない感じ。

そもそもヘルパーとはそういうものな気もするけどね。

>>791 はどんなヘルパーを作ったのか気になる。
0797名無しさん@Vim%Chalice2007/09/28(金) 22:26:39ID:???
うそー逆にHelperが大量にできるんだけど

Controllerは入力のデータについて集中したいというか、
Viewの表示用にデータ整形とかする関数を全部Helperに丸投げするって感じ。
テンプレートにはなるだけコードを排除したいし。

#つーか本当はControllerでHelperの指定をするのも嫌なんだけど。
#いきなりViewでHelper使えるようにする方法はないかな?
0798nobodyさん2007/09/28(金) 22:32:36ID:???
AppControllerに一箇所helperを書くだけもいやなのか?

なら、AppControllerのコンストラクタでHelperファイル検索して
全部突っ込んじゃえw
07997922007/09/28(金) 23:06:22ID:???
>>797
HelperがViewから自由に呼べないのはもどかしいよね。
細かいの一杯作ると読み込むの手間だし、
かといって1つでっかいの作ると富豪すぎる気がして。
テンプレートのコード排除は同意。

ちなみにそのHelperでデータ整形するコードって、

echo '<td>hoge</td>';

とかいうふうにコードの中にHTML入っちゃってたりする?
この書き方は個人的には絶対に避けるんだけど。
理由はHTMLエディタで認識できないし、エンジニア以外がメンテできなくなるから。

なので、そういう整形用途でrenderElementで十分だったりする。
関数作れないけどまあViewだしコピペでいいか〜とか。
頻繁に使われるならさらにrenderElementで小分けする。

あとclassが書かれたファイルをデザイナーさんがメンテするのもちょっと。
ってここは社内事情だし、まあエンジニアがテキストエディタで全部メンテするならいいけど。
0800名無しさん@Vim%Chalice2007/09/29(土) 01:46:37ID:???
>>798
Controllerの中では使いもしないHelperの配列を
用意しなくちゃならないのがそもそも気持ち悪い。
なんていうのかな、その辺はView側で完結して欲しいって思う。

>>799
Helperの中にはタグは入れてないよ。
(Cake付属のHelperはモリモリ使っててムカつくよね!)
主にModelからブン投げてきたデータを食って
配列地獄を隠蔽したり、必要なデータだけ返すって感じ。
どうしてもテンプレートが必要ならHelperから
renderElementを呼んで引っ張ってくる。

あと、renderElementはテンプレートを細分化する他に、
PHPから動的にjavascriptを生成したい場合など
コードを隔離したい場合にも使える。
ほんまView側の要だと思う。
0801nobodyさん2007/09/29(土) 02:03:25ID:???
> なんていうのかな、その辺はView側で完結して欲しいって思う。
つまり、Viewの中にphpコードを書いてHelperをロードしたいということかな?
Viewの中にコードねぇ。まあいいけど。
0802nobodyさん2007/09/29(土) 02:08:55ID:???
Helperの中でタグを出力するのは悪くて、
renderElementの中でタグを出力するのは良いのか?w

Helper呼び出しのコードを書くのは悪くて、
renderElement命令実行というコードを使うのは問題ないのか?w
0803nobodyさん2007/09/29(土) 02:21:16ID:???
>>799
> 理由はHTMLエディタで認識できないし、エンジニア以外がメンテできなくなるから。

という理由なら、renderElementを使う方法も使えないよな。

そもそもHTMLだけでループや条件分岐を表現できないのだからどうしようもない。
またフォーム系のタグにつける名前はコードの都合によってつけるものだから
当然エンジニアの仕事になる。
08047922007/09/29(土) 10:14:12ID:???
>> 800
>主にModelからブン投げてきたデータを食って
>配列地獄を隠蔽したり、必要なデータだけ返すって感じ。
>どうしてもテンプレートが必要ならHelperから
>renderElementを呼んで引っ張ってくる。

んーなるほど...ほんとにデータ整形だけなのか...
そこまでHelperでやっちゃうとほとんどコントローラ出番ないんじゃない?

Helperはデータを返すんじゃなくて表示できる形の文字列を返すものという
俺ルールで縛ってるから、
個人的にはそういうのならコントローラでやっちゃうか
コンポーネントにしちゃうか、
もしくはModelのafterFind使ったりだ。
08057922007/09/29(土) 10:19:44ID:???
>>802
>Helperの中でタグを出力するのは悪くて、
>renderElementの中でタグを出力するのは良いのか?w>
そういうことじゃないよ。タグを出力するよしあしじゃなくて、
コードの中にタグが混入してるのがアウト。

○ <h1><?php echo h($hoge) ?></h1>
× <?php echo '<h1>' . h($home) . '</h1>'; ?>

renderElementした先で○のようにタグが.thtmlでコード外に書かれてるのならおk。
どりーむうぇーばーとかでいじれる。

Helperでもこのルールで書かれてばいいっちゃいいけど、
どりーむうぇーばーとかで開いたときにめちゃめちゃにならないように縛りいれると
renderElementでやるのと大差なくなる。
08067922007/09/29(土) 10:30:49ID:???
>>803
>という理由なら、renderElementを使う方法も使えないよな。
ちゃうちゃう。デザイナーさんはrenderElementした先の.thtmlを開くの。
それくらいは教える。

ループ書いたりとか条件分岐はエンジニアが書くけど、
見栄え自体はあとからデザイナーさんが調整してほしいから。
0807名無しさん@Vim%Chalice2007/09/29(土) 11:14:53ID:???
>>801
あー悪い、View側つーか、要はControllerとテンプレートの間にもう1クッション、
表示用の準備を「PHPで」書ける空間が欲しいなって事。

Modelはデータソースへの正しい入出力に全力を注ぐべきだし、
Controllerは見た目なんかに関知しないでビジネスロジックに集中したい。
テンプレートは出来るだけHTMLの純度を高めたい。
問題の範囲を切り分けたいって意味なんだけど、分かりにくいね、ごめんちゃい

#今回はもう後戻りできないからControllerに直接Helper指定してるけど:-p

>>804
業務用の社内システム作ってるから、
Controllerのやる事は割とあるんよね (社内事情
08087922007/09/29(土) 11:29:02ID:???
>>807
>Modelはデータソースへの正しい入出力に全力を注ぐべき
理想は俺もそうしたいが、使い勝手を考えると
Modelクラスにデータ整形のメソッドとか書くと使い易いんだなこれが...

何かデータ整形のための構造がもう1個あってもいい気もするね。
うまい名前が思いつかないけど。

>業務用の社内システム作ってるから、
>Controllerのやる事は割とあるんよね (社内事情
なるへそ。その状況想像したら分離したくなる気持ちはわかったよ。
0809nobodyさん2007/09/29(土) 11:44:45ID:???
>>805
> ○ <h1><?php echo h($hoge) ?></h1>
> × <?php echo '<h1>' . h($home) . '</h1>'; ?>
上が○ならこれもOKってことだよな?

<h1><?php echo $helper->h($hoge) ?></h1>

>>806
> ちゃうちゃう。デザイナーさんはrenderElementした先の.thtmlを開くの。
いや、だからその先の.thtmlにコードが入っていたら結局同じことでしょ?

0810nobodyさん2007/09/29(土) 11:48:09ID:???
>>807
> 表示用の準備を「PHPで」書ける空間が欲しいなって事。
つbeforeRender
■ このスレッドは過去ログ倉庫に格納されています