トップページ⇒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/
0080nobodyさん2008/12/23(火) 08:30:26ID:???
>>78
http://book.cakephp.org/ja/view/491/Inflector
これ?  とエスパー
0081692008/12/23(火) 08:50:50ID:???
>>72
認証と権限管理がごっちゃになってない?

Authコンポーネントは認証をするためのものだから、
そういう使い方をしようとすると無理が出るんだとおもう。

他の人も言っているように権限管理はACLコンポーネントを使うのがいいよ。
0082nobodyさん2008/12/23(火) 15:24:32ID:???
routeがすげえ強力だというのを把握した
0083nobodyさん2008/12/23(火) 16:03:34ID:???
CakePHPって、どこもかしこもarrayだらけだ。
arrayの入れ子ばかりたくさん書いていると、なんだかLISPを書いているような
気になる。
つうか、LISPの偉大さを思い知った気がする。
リストの入れ子の表現力はすげえな。
0084nobodyさん2008/12/23(火) 16:08:36ID:BZm1ywfg
管理用機能と一般ユーザ用機能が完全に分けられるなら
システムごと分けちゃった方がベターだと思うんだ
0085nobodyさん2008/12/23(火) 17:32:11ID:???
phpは配列の方が扱いやすい

echo"僕の名前 $a['name']";

こういう書き方が出来るけど

オブジェクトだと

echo"僕の名前 $a->name";

こうするとエラーが出るから

echo '僕の名前'.$a->name;
とか解体作業が必要になる
0086nobodyさん2008/12/23(火) 17:34:50ID:???
phpは配列を扱う関数が豊富だから
オブジェクトを扱う場合も結局は配列の変換しないと
phpには豊富にある配列関数を利用できないんじゃない
0087nobodyさん2008/12/23(火) 17:49:25ID:???
>>85

ネタですか?w
0088nobodyさん2008/12/23(火) 17:50:33ID:???
レベル低過ぎ

>>85
後者でもエラーでないよ? つうか、前者であれ後者であれ、
どこまで変数かを示すように、ブレースで囲む習慣をつけたほうがいいよ。

>>86
オブジェクトを配列として扱いたいんならArrayObjectとかあるやん。
foreachでプロパティ以外を扱いたいならIterator系をimplementすればいいし。
0089nobodyさん2008/12/23(火) 23:11:18ID:???
PHPユーザの中でもレベルの低い層がCakePHPへ流れてきている悪寒
0090nobodyさん2008/12/24(水) 03:20:53ID:???
PHP界隈って、どうしても「レベル低い」言いたい人がいるよねw
0091nobodyさん2008/12/24(水) 04:16:31ID:???
アソシエーションの解決をスマートに解決する方法ないかなー
2つ3つ先のテーブルとなるとjoins使うしかないよね?

アソシエーションで読み込んだモデルのrecursive設定を見てそこからさらに見てくれればいいのに
アソシエーション探索を行うモデルを指定出来るようにして
0092nobodyさん2008/12/24(水) 05:46:45ID:???
>>88
ArrayObjectはPHP5.2からだよ。
phpはオブジェクトは扱いにくいって言ってるだろうが素人が
なんでわかんねーかな
0093nobodyさん2008/12/24(水) 05:53:40ID:???
>>88
phpはオブジェクトの方が扱いやすいと思ってんの?
0094nobodyさん2008/12/24(水) 05:59:57ID:???
PHP4のサポート終わってみんな5.2になりつつあるんだから5.2からでもいいんじゃね?
0095nobodyさん2008/12/24(水) 06:04:17ID:???
>>88
オブジェクトだと
ArrayObject関数とか必要になるんでしょ?
それって手間じゃない?


0096nobodyさん2008/12/24(水) 06:09:24ID:???
>>88
>>foreachでプロパティ以外を扱いたいならIterator系をimplement
どうやって?コード書いてくれよ
javaじゃないんだからさ。。。
0097nobodyさん2008/12/24(水) 06:11:27ID:???
>>94
なりつつあるもののを
当たり前に使えるのような言い方をするのは
いかがなものかと・・・
0098nobodyさん2008/12/24(水) 06:19:47ID:???
>>88
ArrayObjectみたいな不安定な関数よく使ってるよなwww
http://uruseiyatsura.way-nifty.com/blog/2007/04/php5arrayobject_51d1.html
0099nobodyさん2008/12/24(水) 06:22:53ID:???
>>88
>>オブジェクトを配列として扱いたいんならArrayObjectとかあるやん。

ArrayObjectてオブジェクトを配列として扱う関数なん?
配列をオブジェクトとして扱うんじゃなくて?
http://php.mirror.camelnetwork.com/manual/ja/class.arrayobject.php
0100nobodyさん2008/12/24(水) 06:27:46ID:???
>>88
ArrayObjectて配列をオブジェクトとして扱ってるよね?
記事をきちんと読もうよ!素人さん
0101nobodyさん2008/12/24(水) 11:25:53ID:???
いまさら知ったんだけど、OpenPNEがフレームワークにsymfonyを採用したみたいね。
ちょい嫉妬w
0102nobodyさん2008/12/24(水) 13:12:13ID:???
>>97
特定の環境で動かすアプリが殆どなんだから
一般配布するCGIでもなけりゃ使えるなら使えばいいともう
0103nobodyさん2008/12/24(水) 14:29:58ID:???
>>102
つかえばいいやん
CakePHPで使う必要がどれだけあるのかと・・・
0104nobodyさん2008/12/24(水) 14:34:03ID:???
使える、使いたい、って言ってる人に対して、
使う必要ないってかたくなに言うのもなんだかなぁって思う。
0105nobodyさん2008/12/24(水) 17:44:15ID:???
あくまでアドバイスや意見で自分で判断すればいいじゃん
0106nobodyさん2008/12/24(水) 20:54:05ID:???
>>105
おまえのはアドバイスじゃねーよw
自分の発言繰り返して読んでみろ
0107nobodyさん2008/12/24(水) 23:37:14ID:???
>>106
あらあら、次は勝手に特定ですかw
0108nobodyさん2008/12/25(木) 12:13:56ID:???
2カラムのインデックスをmodelにプライマリキーとして設定することが可能であれば、
設定を教えて頂けませんでしょうか?

既存のmysql DB管理にcakeを使うつもりでいたら、上記設定のため
idのテーブルを追加してプライマリに設定することが行えませんでした。
0109nobodyさん2008/12/25(木) 12:26:16ID:???
cake使うなら、OOPの勉強は必須?

なんかやたら「なんちゃらextends〜〜」とかって
出てくるんですけど??
0110nobodyさん2008/12/25(木) 12:31:02ID:???
>>109
不要。
extendsが何をしているかとか、疑問に思ったら都度調べるくらいの姿勢があれば良いと思う
0111nobodyさん2008/12/25(木) 13:14:10ID:???
>>108
http://book.cakephp.org/ja/view/24/
「できなかった」というと?
0112nobodyさん2008/12/25(木) 13:30:27ID:???
>>111
既存のプログラムが使用しているDBを、横からcakeで管理したかったので、
DBを新しく作ったり、すでに作られている2カラムのインデックスを解除したりは
できません。

idカラムを作成し、auto incrementalを設定しようとすると、
すでにprimaryが存在するために処理が失敗してしまいました。

primaryに設定されている2カラムのインデックスを解除すると、
既存のプログラムが動作しなくなってしまうのです…
0113nobodyさん2008/12/25(木) 13:47:22ID:???
>>112
CakePHPでは複合プライマリキーは使えない
0114nobodyさん2008/12/25(木) 13:57:27ID:???
>>112さん
ここを読むといいよ!

"複合キー" フォーラム - CakePHP Users in Japan
ttp://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=1304&forum=6&move=prev&topic_time=1216343829
0115nobodyさん2008/12/25(木) 23:43:53ID:???
>>113-114
cakeと複合キー処理について、理解が深まりました。
なんとかなりそうです。ありがとうございます。
0116nobodyさん2008/12/26(金) 10:52:31ID:???
1.2 stableあげ
0117nobodyさん2008/12/26(金) 11:25:09ID:???
RC4からほとんど変わってないやんけw
もっと完全にバグ取ってからにしてほしかった・・・

でもおめでと〜!
0118nobodyさん2008/12/26(金) 12:06:29ID:???
1.2すたぶるキター

く・・クリスマスプレゼント?
0119nobodyさん2008/12/26(金) 12:24:27ID:???
しかもケーキってとこが洒落てるw
0120nobodyさん2008/12/26(金) 12:32:56ID:???
いや、クリスマスケーキか
0121nobodyさん2008/12/26(金) 12:33:32ID:???
あ、リロード忘れてレス付いてるのきづかんかったわ
0122nobodyさん2008/12/26(金) 15:09:01ID:???
いつもDonationの所 No Thanksでごめんね。
0123nobodyさん2008/12/26(金) 15:14:48ID:???
三項条件式どんだけ便利やねん。多様は可読性悪くする
ビューで使うとかなり見通しがよくなる
0124nobodyさん2008/12/26(金) 15:26:28ID:???
CakePHP におけるシンボルの命名規約

private 先頭にアンダーバーを2つ置く __test
protected 先頭にアンダーバーを1つ置く _test
public 先頭にアンダーバーを置かない test

ナンジャコリャー
0125nobodyさん2008/12/26(金) 15:44:12ID:???
>>124
Pythonでも似た仕組みが使われている。
慣れれば悪いものじゃない。
0126nobodyさん2008/12/26(金) 16:23:26ID:???
cakephp,ちょっとむずかしくない?
0127nobodyさん2008/12/26(金) 16:33:19ID:???
EthnaやMapleよりかなり簡単だと思ったが
0128nobodyさん2008/12/26(金) 17:06:20ID:???
>>126
難しいというか独自ルールが多いとは感じた。
しかし、それを超えた先の開発効率はすばらしいと思う。
0129nobodyさん2008/12/26(金) 17:06:36ID:???
ん?
cakeのprotectedってどういうタイミングで使うん??
0130nobodyさん2008/12/26(金) 17:13:03ID:???
ほんとに開発効率高いのかなあ
symfonyも使ったけどバリデーションルールの自動生成が無いのは確実にマイナス
0131nobodyさん2008/12/26(金) 18:17:48ID:???
1.1から1.2に変えたら表示に常に10秒余計にかかるようになったけどなんで?
0132nobodyさん2008/12/26(金) 19:14:18ID:???
debugモードじゃね
0133nobodyさん2008/12/26(金) 19:19:08ID:???
開発効率の向上以上に、メンテナンス効率の向上を実感することが多い
過去製作したコードを見たとき、「何でこんなことしてるんだっけ?」っていうのが激減した
0134nobodyさん2008/12/26(金) 19:50:29ID:???
1.2stableのbakeって複数プロジェクト前提みたいになったけど、どこにプロジェクト作るのがいいんだろ?
cakeの一番上のディレクトリに、/appと並ぶ形で作ると管理しやすいかな。
PDTとかで管理する上でも。
01351342008/12/26(金) 22:09:57ID:???
結局楽するために今までどおりappの中に作る事にした
0136nobodyさん2008/12/26(金) 22:30:57ID:???
複数プロジェクトってどうやるんですかね?
0137nobodyさん2008/12/26(金) 22:36:04ID:???
複数プロジェクトとうか、コア(cakeディレクトリ)の共有だろ?
マニュアルに書いてある。
http://book.cakephp.org/ja/view/35/
0138nobodyさん2008/12/26(金) 22:41:30ID:???
コミュニティのレベルも低いし
だめっぽくねcake
0139nobodyさん2008/12/26(金) 22:55:42ID:???
とくにダメっぽいところ感じないんだが
0140nobodyさん2008/12/27(土) 01:25:44ID:???
>>136
bakeで好きなところにプロジェクトを吐けるよ
0141nobodyさん2008/12/27(土) 03:36:46ID:???
http://book.cakephp.org/ja/view/35/
とかIE7でもおかしいし、firefoxだともっとやばい
なんとならんの?
0142nobodyさん2008/12/27(土) 08:43:14ID:???
CakePHPの新しい本(英語だけど)
Practical CakePHP Projects 400ページ 3,963円 08/12/8発行
http://www.amazon.co.jp/Practical-CakePHP-Projects/dp/143021578X/ref=tag_dpp_lp_edpp_img_in
どうよ?

(参考)半年前に発売されている姉妹書
Beginning CakePHP: From Novice to Professional 344ページ 3,963円 08/7/21発行
http://www.amazon.co.jp/Beginning-CakePHP-Novice-Professional/dp/1430209771/ref=tag_dpp_lp_edpp_img_in
0143nobodyさん2008/12/27(土) 12:39:56ID:???
>>142
4000円とかあほくさー

ページあたり10円かよ
0144nobodyさん2008/12/27(土) 13:29:46ID:???
「Terrible Examples, Poorly Written Book...」って言われてる。
0145nobodyさん2008/12/27(土) 13:52:50ID:???
このシリーズって日本で言うと「できる」シリーズみたいなもんだろ?
0146nobodyさん2008/12/27(土) 15:59:16ID:???
できるシリーズは明らかに超初心者向けな写真メインの構成なだけで
値段も倍くらい違うし一緒にするのはかわいそう
0147nobodyさん2008/12/27(土) 18:29:26ID:???
早速CakePHP 1.2.0.7962-Stableをダウンロードし、CakePHP1.2を始めようとしたら
http://cakeforge.org/frs/?group_id=23&release_id=433
app/config/の中に、database.php.defaultファイルが見当たらない。
探し方が悪いのか?本家が忘れ物したのかな?
みなさんのところdatabase.php.defaultファイルあります?
0148nobodyさん2008/12/27(土) 18:33:33ID:???
>>147です。
database.php.defaultありました。スマソ
0149nobodyさん2008/12/28(日) 18:51:53ID:???
聞きたいことがある。

Model::save() で、バリデーションエラーではなく、DBシステムエラーが起こっ
た場合には、同様に戻り値は false になるんだろうか?

もしそうなら、バリデーションの場合とシステムエラーの場合とで、戻り値が
falseの時の処理を分けなければいけないと思うんだけど、どうしたらいいんだろ?

1. save()の前にvalidate()を実行して分岐する。
2. save()のあとにinvalidFields()を実行して分岐する。
みんなはどうしてる?
0150nobodyさん2008/12/28(日) 20:13:58ID:???
>>149
Model::onError()
0151nobodyさん2008/12/28(日) 20:41:33ID:???
>>150
うわー、これ知らなかった!
なんだ、DBアクセスの箇所ごとにエラー処理する必要はなかったんだ。
ありがとう。
0152nobodyさん2008/12/28(日) 22:11:07ID:???
DBエラーって、onError()イベントハンドラのコール以外で知ることはできない?
うちの場合ちょっと事情があって、onError()関数でを上書きできないので。
0153nobodyさん2008/12/28(日) 22:33:37ID:???
クラスDboSourceのソースを見たら、Model::onError()が呼ばれるときは、
Model::save()の戻り値はやっぱり false だった。
save のあとで invalidFieldsがあるかどうかで分岐すればよさそう。
0154nobodyさん2008/12/29(月) 03:21:56ID:???
>>152
適当にDboを継承してonErrorが呼ばれてる部分を実装すればいいのでは?
やりたくないけど。

>>153
DB側がエラーになってる時点で、saveも糞もないと思う。
0155nobodyさん2008/12/29(月) 10:08:14ID:???
>>154
>>153は、controllerでどう書くかを言ってるんだろ
0156nobodyさん2008/12/29(月) 10:43:26ID:???
>>152
まずはどんな事情かを説明しろ
0157nobodyさん2008/12/29(月) 13:36:03ID:???
「CakePHP徹底入門」の正誤情報掲載してくれ〜
http://seshop.com/book/errata/
08年9月発売で、発売から4ヵ月も経っているのに、まだ正誤情報掲載してないぞ〜
俺は、Ajaxの項のp.178のリスト5.5が全然違うのがわからず、メチャ手間取ったぞ〜
CDのLIST5-5も全然違うじゃねーか。ダブルパンチだ。
早く正誤情報掲載してくれ〜
0158nobodyさん2008/12/29(月) 18:21:03ID:???
そんな本のことはさっさと忘れるべき。
0159nobodyさん2008/12/29(月) 20:00:17ID:???
>>158
本を悪く言ってんじゃなくて、反対
「CakePHP徹底入門」良い本だから期待している。
CakePHP1.2で解説されているから非常に便利。内容も入門者にはベスト。良い例題でわかり易い説明。

まだ半分までしか読んでないけど、気付いた間違いを紹介
p.179誤
37: <?php echo $jptime->jpdatetime($product['Product']['created']); ?>
40: <?php echo $jptime->jpdatetime($product['Product']['modified']); ?>
正(CDもNG)
37: <?php echo $product['Product']['created']; ?>
40: <?php echo $product['Product']['modified']; ?>
0160nobodyさん2008/12/29(月) 20:00:53ID:???
p.180誤
リスト5.7
1: function index() {
リスト5.8
1: function index() {
正(CDはOK)
リスト5.7
1: function index($id = NULL) {
リスト5.8
1: function index($id = NULL) {

p.89中あたり 誤
INSERT INTO products VALUE (1, 1, '商品1', now(), now())
INSERT INTO products VALUE (2, 2, '商品2', now(), now())
INSERT INTO products VALUE (2, 2, '商品3', now(), now())
正(CDはOK)
INSERT INTO products VALUE (1, 1, '商品1', now(), now());
INSERT INTO products VALUE (2, 2, '商品2', now(), now());
INSERT INTO products VALUE (3, 3, '商品3', now(), now());

上記3つはプログラムが動かないけど、以下2つはどうでもいい事

p.133下の方 誤
shopping/controllers/category_controller.php
正
shopping/controllers/categories_controller.php

p.116下の方 誤
と質問がきますので、「y」を入力して終了します。
正
と質問がきますので、「n」を入力して終了します。
0161nobodyさん2008/12/30(火) 19:33:21ID:uva7pRTj
Railsを猿真似してくれたら楽なのに
所々にいらぬお節介がついて回るよね、cakeは
核になるMVCを無意味に密に結合するような作りにしたりして
素晴らしいお手本があるにもかかわらず何故センスのない変な拡張をいれるんだorz
0162nobodyさん2008/12/30(火) 23:28:49ID:???
好きなFW探して使ったらどうでしょうか
0163nobodyさん2009/01/01(木) 15:27:00ID:???
おっ、マニュアルのレイアウト崩れが直った?
0164nobodyさん2009/01/01(木) 16:48:24ID:???
>>163
目次の「3 CakePHPによる開発」をクリックするとレイアウト崩れるけど?
ttp://book.cakephp.org/ja/
0165nobodyさん2009/01/01(木) 17:23:53ID:???
あらま、これってどこかに報告したほうがいいの?
0166nobodyさん2009/01/01(木) 21:00:37ID:???
他のページも崩れまくってる

以前のマニュアルページがそのままインポートされてる感じだね
0167nobodyさん2009/01/02(金) 07:50:16ID:???
setFlash()をflash()すると
末尾に 1 っていうゴミが付いてくるんだけど、なんだろう?
0168nobodyさん2009/01/02(金) 07:57:24ID:???
事故解決
echo $session->flash();

って書いて返値のtrueを出力してた
0169nobodyさん2009/01/02(金) 22:49:27ID:???
>>163  >>165
1.2マニュアルのレイアウト崩れ直ったみたい。
ttp://book.cakephp.org/ja/
0170nobodyさん2009/01/02(金) 22:55:13ID:???
>>169
おっ、ほんとだ中の人gj
0171nobodyさん2009/01/03(土) 02:12:26ID:???
なおってねーよ
再現率は100%じゃないのかねぇ
0172nobodyさん2009/01/03(土) 02:28:49ID:???
ページによって出たりでなかったりってのはあったが
今見た限りでは直ってた

どこのページで問題出てる?
0173nobodyさん2009/01/03(土) 03:49:50ID:???
1項目づつ 次のページ のリンクたどってくとおかしいね
0174nobodyさん2009/01/03(土) 18:30:22ID:???
Formヘルパーのinputメソッドを使って文字の入力画面を表示すると
文字サイズが大きいのですが、文字サイズを小さくするにはどうすれば
よいでしょうか?よろしくお願いします。
echo $form->input('content', array('type'=>"text", 'label'=>""));
0175nobodyさん2009/01/04(日) 10:58:57ID:???
>>174
それはCSSとかの話じゃなくて?
0176nobodyさん2009/01/04(日) 12:47:21ID:???
>>175
ヒントありがとうございます。
正解みたいですね。CSSは耳にした事はありますが、難しいので避けてました。
CSS レイアウト スタイルシートがキーワードのようですね。
http://www.bnote.net/php/cakephp/cakephp08.shtml
http://www.ideaxidea.com/archives/2007/06/cakephp_014.html
勉強してチャレンジしてみます。
0177nobodyさん2009/01/04(日) 14:23:59ID:???
('A`)
0178nobodyさん2009/01/04(日) 17:01:24ID:???
テーブルレイアウトが主流だけど、数年後にはcssは必須になってる。
今から先取りして覚えておいて損はない。
0179nobodyさん2009/01/04(日) 17:31:20ID:???
現時点でテーブルレイアウトにしようなんて奴は逆に勇者に見えるわ
0180nobodyさん2009/01/04(日) 18:16:16ID:???
グーグルはテーブルレイアウトだよ
■ このスレッドは過去ログ倉庫に格納されています