【PHP】フレームワーク CakePHP 5ホール目【v1.2】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/12/19(金) 15:52:19ID:ylogT+7chttp://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
cookbook(マニュアル)
http://book.cakephp.org/ja
the Bakery
http://bakery.cakephp.org/
■日本語フォーラム
http://cakephp.jp/
■過去スレ
【PHP】フレームワーク CakePHP 4ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1213892680/
【PHP】フレームワーク CakePHP 3ホール目【本命】
http://pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
0247nobodyさん
2009/01/09(金) 15:22:27ID:I5IAXkbtコントローラでいじるのに違和感があるんだけど
モデルじゃセッション使えないよね?
0248nobodyさん
2009/01/09(金) 15:23:23ID:???すまそ
0249251
2009/01/09(金) 18:31:13ID:I5IAXkbt例えば、商品のデータを編集する処理を作る場合、
商品名を編集する画面と価格を編集する画面を分けたいと思ってます
この場合、コントローラーもわけたほうがいいんでしょうか?
(もちろんモデルは一つ(Product)になるかと思いますが)
というのも、コントローラーを一つにすると、
products/name/change
products/prices/delete
products/prices/change
products/prices/delete
のようになり、URLのアクション部分が実際の処理とは違う形になってしまい、
アクション側でもパラメータでいちいち処理を分岐させる必要があります
そこでコントローラーだけを二つにわけて、
products/change
products/delete
prices/change
prices/delete
のようにしようかと思うんですが、よくないですかね?
どうでもいい質問かと思うんですが、できればCakeの流儀に合わせたいので…
0250nobodyさん
2009/01/09(金) 18:39:40ID:???change_priceと言う形にするか
change/priceじゃないの
例えばその商品名と価格の編集フォームがほとんど同じなら
change/priceの形にした方が良いよね
0251nobodyさん
2009/01/09(金) 19:07:30ID:???action名は add / edit / delete にしましょう
で、>>250のように /products/edit/price とするか
自分だったら /products/edit にして、渡されたデータ($this->data)を見て、内部で分岐するかな
(分岐の必要があれば、だけど)
0252nobodyさん
2009/01/09(金) 19:10:02ID:???0253215
2009/01/09(金) 19:33:24ID:???>>250
>>251
あー、やっぱりコントローラーは一つにまとめたほうがいいですか
対象は同じですもんね
changeにするなら、ルーティングで変えたほうがよかったですね
型どおりのはいくつか作ってみたんですが、
まだ応用までいきついてません
参考になりました
ありがとうございます
0254nobodyさん
2009/01/09(金) 23:29:16ID:???0255nobodyさん
2009/01/10(土) 16:34:04ID:tnQWYP/Troutes.phpでルーティングを変えるとエラーになるんですが、バグですか?
/item
を
'action' => 'cahnnel', 'action' => 'index'
とかに割り振ると、コントローラー?を誤認するのか404エラーになっちゃいます
0256nobodyさん
2009/01/10(土) 16:34:56ID:???Securityコンポーネント使うと、うまくルーティングできないよ…
0258nobodyさん
2009/01/10(土) 17:36:37ID:???やっぱりですか…
できればルーティングしてるURLに合わせたいんだけど、
どうすればいいのかさっぱり orz
0260nobodyさん
2009/01/10(土) 17:48:22ID:???自前で書くしかないのか
意味ねー
0261nobodyさん
2009/01/10(土) 17:59:27ID:???0262nobodyさん
2009/01/10(土) 18:00:17ID:???節々にバグがあって、
他の機能と競合してどっちか使えないとか多い
0263nobodyさん
2009/01/10(土) 18:07:23ID:???これでなぜかTEXTAREAになるのは俺だけ?
0264nobodyさん
2009/01/10(土) 18:46:39ID:???$form->input('name',array('type'=>'submit'));
1.2finalでオレもTEXTAREAになった。そんなもんだろう。
聞いちゃいないだろうけど普通のsubmitの書き方
$form->end('了解');
か
$form->submit('了解');
0265nobodyさん
2009/01/10(土) 19:00:31ID:???くれるんだけど、この頭の空白をなしにするのは/webroot/css/cake.generic.cssをどう
変更すればいいの?
input[type=submit] {
display: inline;
font-size: 110%;
padding: 2px 5px;
width: auto;
vertical-align: bottom;
}
0270nobodyさん
2009/01/10(土) 19:36:40ID:???allowedControllerプロパティ?
それなら既にやってる orz
なんかうまい方法ないかな
ちょっとソース見てみたけどさっぱりだ orz
0271nobodyさん
2009/01/10(土) 19:38:00ID:???'Model2'=>array('conditions'=>array( ... )),
));
みたいにやると、Model2のコンディションに合致したModel1だけが返るんじゃなく
合致してないものも返ってくるよね?
合致した物だけにするにはどうすればいい?
0272nobodyさん
2009/01/10(土) 20:26:03ID:tnQWYP/Tdvd
cd
mp3
っていうモデルがあったとしたら、コントローラーはそれぞれ作る?
それとも
audio
みたいに一つにまとめて、そっから各モデルを呼びだす?
処理的に似たようなのが多いんだけど、
それでも分けるのが普通?
0273nobodyさん
2009/01/10(土) 20:27:45ID:???当然audioでまとめる
0274nobodyさん
2009/01/10(土) 20:30:14ID:???他のFWもこんなもんなのかな
0277nobodyさん
2009/01/10(土) 20:58:25ID:???> それはCSSじゃなくてHelperのしわざだろ
お〜い。ウソだよ。cssだよ。
form div.submit {
border: 0;
clear: both;
margin-top: 10px;
/* margin-left: 140px; */
}
これでsubmittボタンの頭の空白はなくなるよ。
0278nobodyさん
2009/01/10(土) 21:22:36ID:tnQWYP/Tformヘルパーの吐く action属性もおかしくなるな
0279nobodyさん
2009/01/10(土) 21:26:59ID:???Postコントローラーなのに
<?php echo $form->create('Post', array('action' => 'edit')); ?>
としても、 action="posts/edit" になりやがる
なんでこんなバグだらけなんだよ…
0280nobodyさん
2009/01/10(土) 21:30:15ID:???汎用化すべきところも各所で独自実装してるからね
ライブラリごとの整合性や競合といった問題が出てくる
0281nobodyさん
2009/01/10(土) 21:33:55ID:???意味ねーよ…
1.2finalでこれでしょ?
もうちょいなんとかしてほしいなぁ
0282nobodyさん
2009/01/10(土) 21:38:22ID:???Securityコンポーネントもそうだけど
汎用的な機能すらバグ持ちかつ仕様がおかしかったり機能不足だったり
他のFWはどうなんだろうなあ
0283nobodyさん
2009/01/10(土) 21:44:53ID:???ぱっと見はたしかに早いんだけど、使えるレベルに引き上げるのに相当苦労する気が
とりあえずformヘルパー使うのやめて直書きする
formヘルパー拡張してトークン出力メソッドだけ使うわ orz
0284nobodyさん
2009/01/10(土) 21:47:38ID:???んで、ライブラリ類継承しようとしても、コアライブラリへのパス定数ないのね
なんかいまいち甘いよね
ぱっとみ手軽っぽくは見えるんだけど
0285nobodyさん
2009/01/10(土) 22:00:30ID:???ビューで $myform 使えないぞw
Helperクラス継承せんといけんのか?
拡張性低すぎだろ…
0286nobodyさん
2009/01/10(土) 22:13:06ID:???$myformで参照できたわ
MyFormだと$my_formでも$myformでも参照できない
ヘルパーには大文字一つしか使えないんか?
なんでこんなとこで苦労しなきゃいけないんだよw
0287nobodyさん
2009/01/10(土) 22:14:07ID:???コントローラのほうじゃないの
0288nobodyさん
2009/01/10(土) 22:14:53ID:???0289nobodyさん
2009/01/10(土) 22:15:14ID:???どういう命名規則だよ…
キャメルケースは _ だろ…ファイル名もそうだし
なんか一気にいやになってきたなー
かといって他にあんまりいいのないんだよな
0290nobodyさん
2009/01/10(土) 22:16:55ID:???ちゃんとやってるよ
my_helper.php:
MyFormHelper extends FormHelper
コントローラー:
$helpers = array('MyForm');
んで、ビューでは$myFormで参照したらいけた
ヘルパーのクラス名だけ命名規則がおかしいだろ…
0291nobodyさん
2009/01/10(土) 22:25:05ID:???ルーティングしてるとSecurityコンポーネント使えないな
ほんとにFWなのか疑問に思ってきたぞ…
0292nobodyさん
2009/01/10(土) 22:58:06ID:???<?php echo $form->create('Post', array('url' => '/post/edit')); ?>
でurl使えばいけそうな感じなんだが、
Securityコンポーネントをあきらめてはずしたら、セッションが使えなくなった
Sessionコンポーネントもヘルパーも使ってるのに
だんだん頭にきてきた
0293nobodyさん
2009/01/10(土) 23:05:43ID:???formヘルパーの吐くaction属性の件は
<?php echo $form->create('Post', array('url' => '/post/edit')); ?>
でうまくいった
もっともSecurityコンポーネント使えない問題は残るが…
もうちょいバグ少ないFWないのかね…
0294nobodyさん
2009/01/10(土) 23:14:50ID:???0295nobodyさん
2009/01/10(土) 23:34:57ID:???使い続けるかわからんので、常連さん、お願いしますねーw
0296nobodyさん
2009/01/10(土) 23:42:11ID:???Securityコンポーネントとルーティングつかってるときに
404エラーになる原因の目星ある?
コントローラー名かHTTP_REQUEST関係あたりかな
とは思ってるんだけど、目星つかないとなぁ
0297nobodyさん
2009/01/11(日) 00:25:09ID:???ビューで共通して使うような関数はヘルパ
に実装すると思いますが、
コントローラでもビューでも使うような関数はどこに実装するのが
cakephp のやり方ですか?
0298nobodyさん
2009/01/11(日) 01:06:51ID:???$form->input('honbun', array('type'=>'textarea', 'cols'=>'10', 'rows'=>'5');
行数(rows)は指定どおり変化してくれます。
cake.generic.cssのどこかを修正すれば良さそうな所まで調べましたが、具体的に
どこをどう修正すれば良いかわかりません。よろしくお願いします。
0300nobodyさん
2009/01/11(日) 03:35:55ID:???途端におかしな動作しだすな、このフレームワーク…
0301nobodyさん
2009/01/11(日) 03:59:04ID:???0302nobodyさん
2009/01/11(日) 08:53:45ID:???というか、今までのバグは本家に報告してないの?
0303nobodyさん
2009/01/11(日) 09:24:13ID:???0304nobodyさん
2009/01/11(日) 12:04:42ID:???ここで文句ばっかり言ってるやつってなんなの?
0305nobodyさん
2009/01/11(日) 12:23:51ID:???原因特定できないのにチケット出す意味ない
その辺は日本公式(?)がうまく立ち回ってもらいたいところ
0306nobodyさん
2009/01/11(日) 12:36:15ID:???英語書くの遅いから嫌だ
大体、そんな苦労しなくても最初から使えるFWを使いたい
0307nobodyさん
2009/01/11(日) 12:38:18ID:???0308nobodyさん
2009/01/11(日) 13:11:03ID:???それとも新参者ばかりなの?w
0309nobodyさん
2009/01/11(日) 15:49:46ID:???0310nobodyさん
2009/01/11(日) 15:58:13ID:???別のエンジニアが保守し辛くなるし
FWの良さがなくなる
0311nobodyさん
2009/01/11(日) 18:00:58ID:???1.0正式版が出たときもそうだったぜ。
そこを自分で何とかするのがBaker。
文句いう人は他のFWを使えばいいと思う
0312nobodyさん
2009/01/11(日) 19:36:58ID:e07paZUF0313nobodyさん
2009/01/11(日) 20:09:38ID:???0314nobodyさん
2009/01/11(日) 21:14:41ID:???0315nobodyさん
2009/01/11(日) 21:53:49ID:???0316nobodyさん
2009/01/11(日) 22:57:27ID:???0317nobodyさん
2009/01/12(月) 00:44:27ID:???0318nobodyさん
2009/01/12(月) 08:02:17ID:JmkPO6xqオブジェクト指向言語の基本的な要素は持ってるけど
実際にオブジェクト指向プログラミングをやろうとすると苦労が多い
cakeのapi設計もrailsからパクった部分はオブジェクト指向的だが、cake拡張部分は関数っぽくなてる
0319nobodyさん
2009/01/12(月) 08:48:04ID:???0320nobodyさん
2009/01/12(月) 09:04:16ID:3zI01Xa5formヘルパーで、フィールド名 (field)に数字を渡すと、
0のときだけ中身が消える
$form->text('0');
とか
empty()とかでしかチェックしてないっぽいな
string型にキャストしても駄目だし
0321nobodyさん
2009/01/12(月) 09:05:10ID:???で動けばいいが、動かないし
0322nobodyさん
2009/01/12(月) 09:17:19ID:???appディレクトリの意味ねー
0323nobodyさん
2009/01/12(月) 09:38:56ID:???appディレクトリ側で /view/helper.php の置き換えできないのか?
0324nobodyさん
2009/01/12(月) 09:42:41ID:???0325nobodyさん
2009/01/12(月) 09:44:45ID:???ってまじかよ
helper.phpにバグあるんだが、直接編集しかないのかよ
FWのはずがコアのバグつぶしにすり替わって、全然進まない
0326nobodyさん
2009/01/12(月) 09:55:09ID:???俺はたぶん、次回はもうCakeは使わない
$form->text('0');
とかやると、0のときだけ
<inpute name="data[]" 〜 />
みたくなる
helper.phpのsetEntity()で、view->fieldにセットしてるとこが問題ぽい
0329nobodyさん
2009/01/12(月) 11:51:38ID:???手を入れたいというより、HTMLを自由に組みたかっただけなんだけどね
んだけど、規則からはずれると不具合がでまくる
ちなみに、
>helper.phpのsetEntity()で、view->fieldにセットしてるとこが問題ぽい
は $view->model の間違いかも
かなり深いところに原因があるっぽくて、結局、あきらめて
$form->text(null, array('name' => 'data[0]'));
$form->text(null, array('name' => 'data[item][0]'));
とかするようにした
コンポーネントとか使う場合に、また問題がでるかもしれないけど
0330nobodyさん
2009/01/12(月) 11:54:41ID:???他のシステムと連携する場合に、数値の配列形式の方が扱いやすいから
まぁ、html手打ちでもいいんだけどさ
ヘルパーとかが規約と強く結びつきだなと思った
0331nobodyさん
2009/01/12(月) 12:03:43ID:???データ追加フォーム -> データ追加 -> トップ画面にリダイレクト
としようと思うのですが、アクション名に悩んでます
add() -> ??? -> index()
???の部分をどうしようかと…
add()で分岐してもいいんですが、分けたいのですが、
なにかいい名前ありませんかね?
確認画面とかなら add_confirm() にするんですが。
0332331
2009/01/12(月) 12:05:43ID:???実際は add_item() という名前なのですが、
追加するだけのアクション名をどうしようかなと、いうことです
add_???_item() か ???_item() で
なにかいいアクション名ありませんか?
0333331
2009/01/12(月) 12:07:32ID:???update_item() とかどうですかね?
add_item()とedit_item()から共通で使えそうですし
0334nobodyさん
2009/01/12(月) 12:29:53ID:???0335nobodyさん
2009/01/12(月) 16:21:35ID:???0336nobodyさん
2009/01/12(月) 16:24:13ID:???0337nobodyさん
2009/01/12(月) 16:54:47ID:???0338nobodyさん
2009/01/12(月) 16:57:12ID:???0339nobodyさん
2009/01/12(月) 16:58:39ID:???自分の使い方がおかしいという自覚があるからに他ならないだろ
0340nobodyさん
2009/01/12(月) 17:08:56ID:???それとも、規約通りにしか作れない初心者しかいないのか?
0341nobodyさん
2009/01/12(月) 17:09:25ID:JmkPO6xq単にcakeの開発者が意図した使い方からはみ出ると途端に挙動が変になるだけ
0343nobodyさん
2009/01/12(月) 17:11:01ID:???0344nobodyさん
2009/01/12(月) 17:11:49ID:???バグと言っても良いレベルのものもたくさんあるが
組み込みで提供されてる機能が競合するのはバグと言っても良いだろ
>>339
偏屈こねる前に10回くらい読み直せ
0345nobodyさん
2009/01/12(月) 17:16:56ID:???0346nobodyさん
2009/01/12(月) 17:17:09ID:???そうだね
公式ドキュメントの半分以上は無視したほうがいいね!
設定もなんにも変えないほうがいいね!
www
0347nobodyさん
2009/01/12(月) 17:20:07ID:???次は絶対に使わないから
Cakeの開発スピードからして見つけたバグ全部修正されるのに半年はかかりそうw
■ このスレッドは過去ログ倉庫に格納されています