トップページ⇒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/
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を表示したいのですが、何かヒントありませんか?
0367nobodyさん2009/01/12(月) 21:10:40ID:???
ところで、セッションってモデルだと思うんだが、
なんで、モデルで使えないのかね
0368nobodyさん2009/01/12(月) 21:13:12ID:???
セッションはモデルじゃねーよw
0369nobodyさん2009/01/12(月) 22:33:10ID:???
>>366
cake.generic.css
input, textarea {
width: 100%; ←これ?
}
0370nobodyさん2009/01/12(月) 22:57:16ID:???
>>369
app/webroot/css/cake.generic.css
input, textarea {
  /* width: 100%; */
}
width: 100%をコメントにすることで
$form->input('honbun', array('type'=>'textarea', 'cols'=>'80', 'rows'=>'5'));
textareaの横幅(cols)設定が有効になるようになりました。ありがとうございました。
合わせて、
$form->input('meado', array('type'=>'text', 'size'=>'50'));
のsize設定も有効になり二重の喜びです。ありがとうございました。
0371nobodyさん2009/01/12(月) 23:07:20ID:???
>>368

そうか?
データのやりとりするんだから、モデルだと思うけど?
まあ場合にもよるだろうけど
0372nobodyさん2009/01/12(月) 23:11:10ID:???
セッションはモデルじゃないよ
データを永続化するのがモデルであって
セッションってのはデータでhiddenで引き回してるのと同じようなことだから
0373nobodyさん2009/01/12(月) 23:33:55ID:???
なんでこんな使いにくくてバギーなcakephpが人気あるんかね?
たしかに、とっつきやすさはsymfonyやzendよりも上だと思うが
それだけなんだよね。
PHP使ってるやつはプログラム自体初心者が多いんだろね。
チュートリアル作って終わりなやつが多いんじゃね?
0374nobodyさん2009/01/12(月) 23:39:43ID:???
玄人の言語で作れば?
0375nobodyさん2009/01/12(月) 23:44:35ID:???
確かにPHPを使う意味なんてないんだよね
フレームワークを使うほどの開発になった時点で
0376nobodyさん2009/01/12(月) 23:50:55ID:???
殆どのものはレンタルサーバで動かすんだからPHPかPerlじゃないと動かんわね
専用サーバならJavaにした方が楽だし
0377nobodyさん2009/01/12(月) 23:52:44ID:???
>>375
いいこというね〜
PHPが最高に輝く使い方だね。
0378nobodyさん2009/01/12(月) 23:56:14ID:???
好きな言語すら入れられない環境の方がかなりマイナーだと思うよ
個人だろうと企業だろうと普通はその程度の自由度はある環境でやってるよ
0379nobodyさん2009/01/13(火) 00:36:35ID:???
企業で大規模にやるような開発でCakeやRoRみたいなのは使わないと思うよ
レンタルサーバで動かすCMSとかDBのCRUDがメインのシステムならぴったりだけどさ
0380nobodyさん2009/01/13(火) 11:22:28ID:???
セキュリティ面のバグの多さからWWWに出す時点でCakeは良くない
0381nobodyさん2009/01/13(火) 11:48:16ID:???
>>379
TwitterやCookPad、楽天でもRoRを使ってるのすら知らんのか。

そういえばここCakePHPスレだったなw
0382nobodyさん2009/01/13(火) 13:31:48ID:???
>>379
> DBのCRUDがメインのシステム

ほとんどの会社で必要とされるシステムって、それだぞ?w
0383nobodyさん2009/01/13(火) 15:39:41ID:???
RoRを覚えるのが面倒というのもあるな
Ruby動かせないときもあるしなあ
0384nobodyさん2009/01/13(火) 21:53:50ID:???
>>382
実際作ってみると業務システムのパターンは極めて限られていることがわかるよね。
0385nobodyさん2009/01/13(火) 22:27:13ID:???
そうでもないけどな
データ登録以上にワークフローと帳票が多い
0386nobodyさん2009/01/13(火) 22:33:33ID:???
ワークフローと帳票といっても
結局はCRUDだしなぁ。
0387nobodyさん2009/01/13(火) 22:58:25ID:???
可哀想な人が来たな
0388nobodyさん2009/01/13(火) 23:03:28ID:???
>>387
その人、いらっしゃ〜いw
0389nobodyさん2009/01/13(火) 23:58:47ID:???
パターンは極めて限られていると見積もったCRUDシステムを
作るたびに炎上させる優秀な技術者様達
0390nobodyさん2009/01/14(水) 13:24:41ID:???
1つのテーブルにいろいろな画面(コントローラ)からアクセスする場合、
モデルは、テーブルと対になるようにして1つのモデルにするのがよいか、
それともコントローラと対にするか、どちらが一般的でしょうか?

例えば受注テーブルがあり、
あるコントローラでは受注数を表示するのがメインの処理で、
また別のコントローラでは受注金額を表示するのがメインの処理、
のような場合、受注テーブルのモデルを1つ作成するのか、それとも
コントローラ毎に作るのか…。
0391nobodyさん2009/01/14(水) 13:42:37ID:???
おまえはMVCの基本についてすべて一つ一つt質問するつもりか
0392nobodyさん2009/01/14(水) 13:44:19ID:???
>>390
無論、モデルはひとつ。
0393nobodyさん2009/01/14(水) 13:45:45ID:???
>>390
コントローラーってのは要するに人がプログラムにアクセスする時のURLなわけよ。
だから人から見てわかりやすけりゃ良いわけで、モデルと対になってる必要なんて無い。
ってのが俺の考え。
逆に同じテーブルにモデルがいくつもあったらプログラム作る時に混乱するんじゃない?
それぞれ特殊なfindメソッドでも作ってるんなら別だけど。
0394nobodyさん2009/01/14(水) 14:52:22ID:???
サブホストや接続IPによってDB接続先を変える方法知ってる?
0395nobodyさん2009/01/14(水) 14:53:24ID:???
やっぱりモデルは1つにまとめるべきなんですね。

今回質問したのは、>>393 の
「それぞれ特殊なfindメソッドでも作ってるんなら別だけど。 」
がまさしくそれで、取得対象のテーブルは1つなんですけど、
そのデータの取得方法や見せ方が全然違って、ただ当然コントローラは
個別に存在するので、
1つのテーブルを元にその見せ方毎にモデルを作りモデルの中で、
var $name = 'table'; としておきつつ、
それぞれの取得するためのメソッドを作成していこうかな、と思い作りはじ
めた矢先、取得テーブルは1つなので、そのモデルに全部メソッドをまとめた
ほうがいいのか?と迷いはじめてしまい…。

テーブル単位にメソッドをまとめるのか、機能毎にモデルを分割するのか…。

まだまだ精進がたりませんね、大変すみませんでした。
0396nobodyさん2009/01/14(水) 15:08:08ID:???
>>394
ttp://d.hatena.ne.jp/charly24/20070512/1178956046
0397nobodyさん2009/01/14(水) 15:11:54ID:???
>>395
findメソッドは、カンタンにオーバーライドできる

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