トップページ⇒php
985コメント290KB

【PHP】フレームワーク CakePHP 5ホール目【v1.2】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/12/19(金) 15:52:19ID:ylogT+7c
■本家
http://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/
0266nobodyさん2009/01/10(土) 19:02:23ID:???
>>265
それはCSSじゃなくてHelperのしわざだろ
0267nobodyさん2009/01/10(土) 19:11:23ID:???
>>266
thanks. ヘルパーのしわざですか。それなら仕方ない。ほっときます。
0268nobodyさん2009/01/10(土) 19:13:59ID:???
>>261

それじゃ意味ないでしょう…

この辺りがFW使うメリットなんで、早くなんとかしてほしいね
0269nobodyさん2009/01/10(土) 19:35:42ID:???
>>268
コンポーネントの機能としてコントローラを見るかどうかって選べなかったっけ?
0270nobodyさん2009/01/10(土) 19:36:40ID:???
>>269

allowedControllerプロパティ?
それなら既にやってる orz

なんかうまい方法ないかな
ちょっとソース見てみたけどさっぱりだ orz
0271nobodyさん2009/01/10(土) 19:38:00ID:???
$this->Model1->find('all',array('contain'=>array(
'Model2'=>array('conditions'=>array( ... )),
));

みたいにやると、Model2のコンディションに合致したModel1だけが返るんじゃなく
合致してないものも返ってくるよね?
合致した物だけにするにはどうすればいい?
0272nobodyさん2009/01/10(土) 20:26:03ID:tnQWYP/T
例えば

dvd
cd
mp3

っていうモデルがあったとしたら、コントローラーはそれぞれ作る?

それとも

audio

みたいに一つにまとめて、そっから各モデルを呼びだす?

処理的に似たようなのが多いんだけど、
それでも分けるのが普通?
0273nobodyさん2009/01/10(土) 20:27:45ID:???
コントローラはモデルと1:1にする必要性なんてないでしょ
当然audioでまとめる
0274nobodyさん2009/01/10(土) 20:30:14ID:???
Cakeって世界で一番使われてるFWとかいうけど微妙にライブラリが充実してないことない?
他のFWもこんなもんなのかな
0275nobodyさん2009/01/10(土) 20:37:41ID:???
>>273

だよね?
ちょっと不安になったんで聞いてみた

ありがと!
0276nobodyさん2009/01/10(土) 20:38:48ID:???
>>274

ライブラリはそこそこだと思うけど、バグが多い…
0277nobodyさん2009/01/10(土) 20:58:25ID:???
>>266  >>267
> それは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/T
ルーティングだかコントローラー名を規約から変えると
formヘルパーの吐く 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:???
FWなのに、ソース見て、結局オーバーライド
意味ねーよ…

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:???
ありゃ formHelper継承して $helpers = array('MyForm') しても
ビューで $myform 使えないぞw

Helperクラス継承せんといけんのか?
拡張性低すぎだろ…
0286nobodyさん2009/01/10(土) 22:13:06ID:???
Myform extends FormHelperにしたら
$myformで参照できたわ

MyFormだと$my_formでも$myformでも参照できない
ヘルパーには大文字一つしか使えないんか?

なんでこんなとこで苦労しなきゃいけないんだよw
0287nobodyさん2009/01/10(土) 22:14:07ID:???
ビューにデフォルトでセットしてるのは
コントローラのほうじゃないの
0288nobodyさん2009/01/10(土) 22:14:53ID:???
Cake使ってるとコアのコードにハックする事が多すぎるんだよな
0289nobodyさん2009/01/10(土) 22:15:14ID:???
あ、 $myForm で参照できたわ

どういう命名規則だよ…

キャメルケースは _ だろ…ファイル名もそうだし

なんか一気にいやになってきたなー

かといって他にあんまりいいのないんだよな
0290nobodyさん2009/01/10(土) 22:16:55ID:???
>>287

ちゃんとやってるよ

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:???
>>279の件は

<?php echo $form->create('Post', array('url' => '/post/edit')); ?>

でurl使えばいけそうな感じなんだが、
Securityコンポーネントをあきらめてはずしたら、セッションが使えなくなった
Sessionコンポーネントもヘルパーも使ってるのに

だんだん頭にきてきた
0293nobodyさん2009/01/10(土) 23:05:43ID:???
あ、自分がミスってたわw

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()のtextareaの幅(cols)の変更が出来なくて困ってます。
$form->input('honbun', array('type'=>'textarea', 'cols'=>'10', 'rows'=>'5');
行数(rows)は指定どおり変化してくれます。
cake.generic.cssのどこかを修正すれば良さそうな所まで調べましたが、具体的に
どこをどう修正すれば良いかわかりません。よろしくお願いします。
0299nobodyさん2009/01/11(日) 01:38:19ID:???
>>297
普通のライブラリならvendersにでも入れて
App::importでいいんじゃね
0300nobodyさん2009/01/11(日) 03:35:55ID:???
規約からちょっとはずれると
途端におかしな動作しだすな、このフレームワーク…
0301nobodyさん2009/01/11(日) 03:59:04ID:???
Formヘルパー使うとHTMLソースが一行続きになる orz
0302nobodyさん2009/01/11(日) 08:53:45ID:???
stable出ても、まだバグがあるの?
というか、今までのバグは本家に報告してないの?
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

それとも新参者ばかりなの?w
0309nobodyさん2009/01/11(日) 15:49:46ID:???
この流れひでえなw
0310nobodyさん2009/01/11(日) 15:58:13ID:???
コアに手入れたりすると
別のエンジニアが保守し辛くなるし
FWの良さがなくなる
0311nobodyさん2009/01/11(日) 18:00:58ID:???
バグだらけなのがCakePHPの特徴だろw
1.0正式版が出たときもそうだったぜ。
そこを自分で何とかするのがBaker。

文句いう人は他のFWを使えばいいと思う
0312nobodyさん2009/01/11(日) 19:36:58ID:e07paZUF
2年後くらいにcakeがまともになってたらまたきます><
0313nobodyさん2009/01/11(日) 20:09:38ID:???
全然オブジェクト指向じゃないしなあ
0314nobodyさん2009/01/11(日) 21:14:41ID:???
PHP4対応なのになんでオブジェクト指向だと思ったの
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
PHP自体が関数指向で配列をぶん回すタイプの言語だからな
オブジェクト指向言語の基本的な要素は持ってるけど
実際にオブジェクト指向プログラミングをやろうとすると苦労が多い
cakeのapi設計もrailsからパクった部分はオブジェクト指向的だが、cake拡張部分は関数っぽくなてる
0319nobodyさん2009/01/12(月) 08:48:04ID:???
Railsをパクるだけにしていてほしい
0320nobodyさん2009/01/12(月) 09:04:16ID:3zI01Xa5
またまたバグ発見

formヘルパーで、フィールド名 (field)に数字を渡すと、
0のときだけ中身が消える

$form->text('0');

とか

empty()とかでしかチェックしてないっぽいな
string型にキャストしても駄目だし
0321nobodyさん2009/01/12(月) 09:05:10ID:???
$form->text('data[0]');

で動けばいいが、動かないし
0322nobodyさん2009/01/12(月) 09:17:19ID:???
appごとにコアのファイルをオーバーライドしないと使えないな
appディレクトリの意味ねー
0323nobodyさん2009/01/12(月) 09:38:56ID:???
なんじゃこりゃ
appディレクトリ側で /view/helper.php の置き換えできないのか?
0324nobodyさん2009/01/12(月) 09:42:41ID:???
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=377&forum=9&post_id=669
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にセットしてるとこが問題ぽい
0327nobodyさん2009/01/12(月) 11:06:01ID:???
>>326
どうしてコアに手を入れてまでフィールド名を"0"にしたいのかがわからない。
0328nobodyさん2009/01/12(月) 11:48:59ID:???
>>327
相手すんなって
0329nobodyさん2009/01/12(月) 11:51:38ID:???
>>327

手を入れたいというより、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:???
DB使わないモデルや、
他のシステムと連携する場合に、数値の配列形式の方が扱いやすいから

まぁ、html手打ちでもいいんだけどさ
ヘルパーとかが規約と強く結びつきだなと思った
0331nobodyさん2009/01/12(月) 12:03:43ID:???
質問です

データ追加フォーム -> データ追加 -> トップ画面にリダイレクト

としようと思うのですが、アクション名に悩んでます

add() -> ??? -> index()

???の部分をどうしようかと…

add()で分岐してもいいんですが、分けたいのですが、
なにかいい名前ありませんかね?

確認画面とかなら add_confirm() にするんですが。
03323312009/01/12(月) 12:05:43ID:???
>>331

実際は add_item() という名前なのですが、
追加するだけのアクション名をどうしようかなと、いうことです

add_???_item() か ???_item() で
なにかいいアクション名ありませんか?
03333312009/01/12(月) 12:07:32ID:???
連投ごめんなさい…

update_item() とかどうですかね?

add_item()とedit_item()から共通で使えそうですし
0334nobodyさん2009/01/12(月) 12:29:53ID:???
update_itemでいいんじゃね?
0335nobodyさん2009/01/12(月) 16:21:35ID:???
ここでバグバグ言われてるのって使い方解ってないだけなんじゃないのか
0336nobodyさん2009/01/12(月) 16:24:13ID:???
じゃあどう使えば良いのか説明しろよ
0337nobodyさん2009/01/12(月) 16:54:47ID:???
http://book.cakephp.org/
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の開発者が意図した使い方からはみ出ると途端に挙動が変になるだけ
0342nobodyさん2009/01/12(月) 17:10:38ID:???
>>341

www

それならバグではないかもなwww

そうか、バグじゃないのか〜
使えないFWだな〜
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:???
>>343

そうだね

公式ドキュメントの半分以上は無視したほうがいいね!
設定もなんにも変えないほうがいいね!

www
0347nobodyさん2009/01/12(月) 17:20:07ID:???
報告したところで今やってる案件には意味ないし
次は絶対に使わないから
Cakeの開発スピードからして見つけたバグ全部修正されるのに半年はかかりそうw
0348nobodyさん2009/01/12(月) 17:20:48ID:???
間違えてCakeなんかを使ってしまう人を増やさないようにしないとな
0349nobodyさん2009/01/12(月) 17:21:25ID:???
>>347

きみは別人だろw

きみもいやになったのか?
0350nobodyさん2009/01/12(月) 17:21:58ID:???
1.2が公式にリリースされて危機感を持っている奴がいるらしいな
どのフレームワークの信者だ
0351nobodyさん2009/01/12(月) 17:23:00ID:???
>>347

次なに使うの?
0352nobodyさん2009/01/12(月) 17:23:19ID:???
>>349
別人?なにを言ってるんだ
おまえは誰か特定の相手に話しかけてるのか?こんな場所で?

俺は今回の話題ではCakeはバグ大杉使えないFW派だよ
0353nobodyさん2009/01/12(月) 17:23:30ID:???
まぁこれからCake使うやつに助言

規約からはずれたことはするな
でも、それじゃあ大した物は作れない

組み込みのライブラリは使うな
全部自分で一から書け

FW使う意味ねーw
まぁぱっとみ使いやすいとは思うんだけどね
ここまでバグ多いとな…
0354nobodyさん2009/01/12(月) 17:23:49ID:???
>>351
SAStrutsかDjango
0355nobodyさん2009/01/12(月) 17:25:25ID:???
ちなみにCakeはオブジェクト指向じゃないって話あったけど
問題なのはAPIじゃなくてコアのコード内部なんだよね
ハックするのも一苦労

あのスパゲッティな有様じゃCakeの将来は危ういよ
0356nobodyさん2009/01/12(月) 17:26:23ID:???
というかPHPのFWはまともなのがないな

Yiiとかってどうよ
0357nobodyさん2009/01/12(月) 17:54:39ID:???
>>354
レンタルサーバで動かす気ない人か
0358nobodyさん2009/01/12(月) 17:55:17ID:???
PHPでオブジェクト指向ってもっさりフレームワークの登竜門だろw
0359nobodyさん2009/01/12(月) 17:58:23ID:???
Cakeは既にあらゆるフレームワークの中で最も重い部類
0360nobodyさん2009/01/12(月) 18:05:28ID:???
で、なんかいいのないのか?

兄弟とか言われてるCIは、命名規則に統一性が乏しいし
0361nobodyさん2009/01/12(月) 18:06:17ID:???
>>359
0362nobodyさん2009/01/12(月) 19:32:11ID:???
でも、世界でsymfony、zend+frameworkを抜き、最も注目されているPHP FWという事実は
どう理解すればいいの?
http://www.google.com/trends?q=cakephp%E3%80%81symfony%E3%80%81zend+framework%E3%80%81mojavi%E3%80%81ethna
0363nobodyさん2009/01/12(月) 19:35:28ID:???
PHPのユーザ層が重視するのは簡単に導入できる事と
HOWTO情報の多さだからでしょ
使ってる人たちはCakeしか使ったことないんじゃないの
0364nobodyさん2009/01/12(月) 19:40:29ID:???
PHPったって殆どの人は楽天やGREEを作る訳じゃないんだから
重さって気にする意味無いよね
重さで言えばRoRとか死ぬほど重いんだし
0365nobodyさん2009/01/12(月) 19:43:30ID:???
重いのは誰も問題にしてないけどね
0366nobodyさん2009/01/12(月) 20:59:16ID:???
すみません>>298なんですが
$form->input('honbun', array('type'=>'textarea', 'cols'=>'10', 'rows'=>'5'));
で横幅のせまいtextareaを表示したいのですが、何かヒントありませんか?
■ このスレッドは過去ログ倉庫に格納されています