トップページ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/
0002nobodyさん2008/12/19(金) 15:53:15ID:???
■その他いろいろ
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/

日本のcakePHP ユーザのためのハブサイト
http://cakephp-users.jp/

CakePHP 規約ワードメーカー WordMaker for CakePHP Conventions
ttp://www.cpa-lab.com/tech2/inflects/

あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/

CakePHP Note
http://www.garacter.com/notes/CakePHP+Note/ni:5

CakePHP入門リンク集
ttp://pub.studio15.jp/2007/11/13/cakephp-links/

CakePHPを使ったMVC設計のベストプラクティス - Sooey
ttp://www.sooey.com/journal/2008/03/26/717/

Qdmail(日本語メールコンポーネントとして利用可能なライブラリ)
ttp://hal456.net/qdmail/

CakePHPカンファレンス東京
http://conference.cakephp.jp/
0003nobodyさん2008/12/19(金) 15:53:49ID:???
■ver1.1用
チートシート
http://www.cakephp.org/files/cakesheet.pdf

CakePHP プログラマーズ リファレンスガイド
http://cakephp.jp/doc/

連載:CakePHPで高速Webアプリ開発|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/cakephp

CakePHPフレームワークによる快速WEB開発 |codezine
http://codezine.jp/a/article/aid/670.aspx


■関連書籍
CakePHP ポケットリファレンス
http://www.amazon.co.jp/dp/4774135038
CakePHP徹底入門
http://www.amazon.co.jp/dp/479811717X
CakePHPガイドブック
http://www.amazon.co.jp/dp/4839924317
Fast CakePHP
http://www.amazon.co.jp/dp/4774133418
0004nobodyさん2008/12/19(金) 15:56:22ID:???
テンプレらしきものは以上
最近のサイトでお勧めのものがあればどうぞ
0005nobodyさん2008/12/19(金) 17:52:20ID:???
0006nobodyさん2008/12/19(金) 21:56:40ID:???
ろっくまん!
0007nobodyさん2008/12/20(土) 01:42:56ID:???
Ruby on railsは、まともなスピードで動かす場合、
月5,000円のレンタルサーバーが必要です。

一方、cakephpなら、月500円のレンタルサーバーで
十分なスピードで動きます。
0008nobodyさん2008/12/20(土) 01:57:02ID:???
php (笑)
0009nobodyさん2008/12/20(土) 02:03:11ID:???
>>8はきっとあまり仕事ができないタイプ
0010nobodyさん2008/12/20(土) 02:05:02ID:???
>>9 は頼まれてない余計なことばかりやって貧乏なタイプ
0011nobodyさん2008/12/20(土) 10:48:19ID:???
>>6
まあ徴兵制だろうね。
戦前(に成人した)世代と戦後世代の日本人を見比べれば一目瞭然。
0012nobodyさん2008/12/20(土) 17:36:31ID:???
cakephp に限ったことじゃないかもしれなけど、
できるプログラマーって何を聞いても親切に教えてくれるよな。

できないプログラマーってひたすら人をバカにしたがるよな。
なんなんだろうなこの違い。やっぱり謙虚さが大事なのかな。
0013nobodyさん2008/12/20(土) 17:49:45ID:???
深く理解してないと教えられないからな
0014nobodyさん2008/12/20(土) 17:53:38ID:???
>>12
> できるプログラマーって何を聞いても親切に教えてくれるよな。

「できるプログラマー」って何なのか詳しく教えてほしい。
0015nobodyさん2008/12/20(土) 18:25:16ID:???
すぐヤラせてくれるプログラマーのこと? って書こうとしたけどヤメた。
できるとか、できないとかじゃなくて性格の問題だとおもいます。
0016nobodyさん2008/12/20(土) 18:28:42ID:???
>>12 さんのいう「できるプログラマー」についての定義が待ち遠しいね。
0017nobodyさん2008/12/20(土) 18:29:08ID:???
できる=仕事の効率がいい
って事でしょ要するに
自分だけできればいいって人は仕事できるってあんまり言われないからね
0018nobodyさん2008/12/20(土) 18:31:46ID:???
>>17
> 自分だけできればいいって人は仕事できるってあんまり言われないからね

その対象人物が周りから「できる」と言われればいいということ?
それは、「仕事の効率がいい」ということにはならないね。
0019nobodyさん2008/12/20(土) 18:49:16ID:???
ひねくれた奴ばっかりだな
0020nobodyさん2008/12/20(土) 18:56:26ID:???
>>14,16,18が使えない人間なのはわかった
0021nobodyさん2008/12/20(土) 18:57:26ID:???
>>20
言葉の定義をしないままに議論なんか出来ないので、
「使えない人間」って何なのか詳しく教えてくれるとうれしい。
0022nobodyさん2008/12/20(土) 19:29:30ID:???
定義も何も仕事できるかできないかだろ単に
0023nobodyさん2008/12/20(土) 19:43:42ID:???
>>22
「仕事できるかできないか」ってどう評価するの?
0024nobodyさん2008/12/20(土) 19:47:08ID:???
それが解らないって事はお前は仕事仲間を評価したりできてないってことだよな
一生リーダーになれないぞ
0025nobodyさん2008/12/20(土) 19:49:29ID:???
>>24
> それが解らないって事はお前は仕事仲間を評価したりできてないってことだよな

なんでそういう飛躍をしちゃうの?
0026nobodyさん2008/12/20(土) 19:54:06ID:???
ってことは評価できるって言うことだよね?
君は同僚を評価するときはどうやってしてるの?
0027nobodyさん2008/12/20(土) 20:00:09ID:???
>>26
> ってことは評価できるって言うことだよね?

どこをどういう風に解釈すると、そういう問いを出すことが出来るの?
0028nobodyさん2008/12/20(土) 20:01:17ID:???
今までの流れとは全く関係なくこの質問に答えて欲しい

>>27
君は同僚を評価するときはどうやってしてるの?
0029nobodyさん2008/12/20(土) 20:03:12ID:???
>>28
今までの流れとは全く関係ないということなので、前提をつくらないと。

> 君は同僚を評価するときはどうやってしてるの?

同僚の何を評価すればいいの?
0030nobodyさん2008/12/20(土) 20:52:18ID:???
同僚が仕事できるかどうかだろ
0031nobodyさん2008/12/20(土) 21:39:25ID:???
標準のEmailコンポーネントは、
まだ日本語使うにはきつい??
0032nobodyさん2008/12/20(土) 22:12:10ID:???
俺は野良の使ったな結局
qdmail
0033nobodyさん2008/12/20(土) 22:21:13ID:???
使ったことないのだが、symfonyと比較すると何がどのように違うの?
ざっくりでいいので教えてもらえるとうれしい。
0034nobodyさん2008/12/20(土) 22:24:46ID:???
>>32
qdmailで送信すると
ヘッダにqdmailって入るんだけど、どうにかならんかなー?
0035nobodyさん2008/12/20(土) 22:44:20ID:???
ってかプログラマだよなお前?
X-PHP-Qdmailで捜してって消せばいいんじゃないの?
MITライセンスなんだし
0036nobodyさん2008/12/20(土) 22:45:23ID:???
>>35
そういう答えは求められていないと思われ。
0037nobodyさん2008/12/20(土) 22:48:55ID:???
どういう答え?
ソース開いて$this->header['X-'.$this->xmailer]の部分消せみたいな具体的な指示?
0038nobodyさん2008/12/20(土) 22:52:22ID:???
インターネッツの向こうにも人間が居ることを忘れないほうがいいと思うよ。
0039nobodyさん2008/12/20(土) 22:54:57ID:???
こいつさっきから粘着してる荒らしだろ。
スルーしろよ。
>>34は消し方聞いてるんだからその回答で間違っちゃいない。
0040nobodyさん2008/12/20(土) 22:56:03ID:???
> こいつさっきから粘着してる荒らしだろ。
> スルーしろよ。

それスルーしたことになってるのか?
0041nobodyさん2008/12/20(土) 22:57:35ID:???
釣り針がぶっと過ぎて飽きた
0042nobodyさん2008/12/20(土) 23:07:09ID:???
またRubyヲタが荒らしに来たのか
スルーしないけど
0043nobodyさん2008/12/20(土) 23:08:42ID:???
論理が飛躍するかわいそうな子が荒らしとか何とか言っても説得力ないよなぁ
0044nobodyさん2008/12/20(土) 23:16:12ID:???
なんでもRubyのせいにするとはPHPの方はRubyをいしきしてるんでしょうか。
0045nobodyさん2008/12/20(土) 23:22:45ID:???
PHPしか使えないんだから仕方ないよ。
PHPしか使えない人たちの中で仕事ができる人なんでしょ。
0046nobodyさん2008/12/20(土) 23:26:07ID:???
なにをもって仕事をできるとするかの問題が残ってはいるけどな。
0047nobodyさん2008/12/20(土) 23:35:11ID:???
あんまり無能をいじめるのはかわいそうじゃないか?
Rubyもできない仕事もできない、そして仕事ができるという定義も解らない。
0048nobodyさん2008/12/21(日) 00:17:25ID:???
>20
同意。
0049nobodyさん2008/12/21(日) 11:26:07ID:???
まらRuby厨が荒らしに着てんのかw
いい加減にしろよ(笑)

Rubyが思ったほどシェアが増えなくて
あせっているのはわかるけど、
こんなところでPHPをたたいても
Rubyのシェアは増えないぞ。

これ、2年前にも言った。
0050nobodyさん2008/12/21(日) 12:45:08ID:???
そういや楽天ってまつもと氏招いてRuby研究やってるのに
自社サービスはPHPとJavaだよな
0051nobodyさん2008/12/21(日) 15:19:52ID:???
Ruby のせいにすると何かいいことあるの?
0052nobodyさん2008/12/21(日) 15:44:20ID:???
>>51
Cakeへの文句の半分くらいをRoRが引き受けてくれる
0053nobodyさん2008/12/21(日) 17:04:19ID:???
RoRで作ってもレンタル鯖で動かんしなぁ
だったらJavaでいいじゃんみたいな
0054nobodyさん2008/12/21(日) 17:10:46ID:???
>>53
工数どんだけ違うんだよw
0055nobodyさん2008/12/21(日) 17:27:24ID:???
SAStrutsだったら工数変わらんのじゃない?
開発中はデプロイしなくていいからスクリプト言語と変わらんし
scaffoldみたいなのもあるよ
殆どCakePHPと同じ
0056nobodyさん2008/12/22(月) 17:14:23ID:???
Auth使うと認証必要ページにいったときに自動的にログインページに飛ぶけど
最初のページに対してPOSTデータを送っていた場合、失われるんだよね

ログインページへのリダイレクトはAuthコンポーネントが勝手にやってるから
セッションに入れたりって事も出来ない

どうすればいいと思う?
0057562008/12/22(月) 17:27:43ID:???
ログイン後に元のページへAuth->redirect()で戻るけどPOSTデータがなくなってるから意味無い場合がある
って事ね
0058nobodyさん2008/12/22(月) 18:20:32ID:???
運用はさて置いて、
「認証が出来てない状態でPOSTが出来てることがそもそもおかしい」
というのが直感。

この場合は
「POST元のページに認証をかけて、そもそもの条件が発生しないようにする」
が解。
(当然、認証外のPOSTは受け捨て)

……これじゃダメなんだろうってことは察するけどw
0059nobodyさん2008/12/22(月) 18:24:37ID:???
何かPOSTした時点で認証って別におかしくないでしょ
セッション短いとかあるタイミングで改めてログイン再確認とか
0060562008/12/22(月) 18:35:31ID:???
>>58
とりあえずその方向で一応の解決はした。
未認証の場合、フォームじゃなく「○○をする」みたいなリンクを出して
クリックするとログインフォーム、ログインすると元のページに来てフォームが表示されてる、
と言う形にした。

ただこの場合気になるのは、ビューでいちいちログイン状態を見て
リンクとフォームを切り替える必要がある事。
AuthコンポーネントがPOSTデータの再現もしてくれるのなら、
単にフォームを表示するだけで済む。

POSTする前に認証させておけ、と言うのとどちらが本来正しいのかは判断しかねるけど。
0061nobodyさん2008/12/22(月) 20:05:14ID:???
モデルにアソシエーション書く時って
自モデルのフィールド名は指定出来るけど相手モデルのフィールド名は指定出来ないよね。
デフォルトでidフィールドが参照される

これって変更できる?
0062nobodyさん2008/12/22(月) 20:09:45ID:???
auth compornent使ってみたけど、
これってログイン画面1つしか管理できないんですかね?

2種類のログイン画面を設置したいとき、なにかやり方ありますか?
投稿用と、観覧用など…
0063nobodyさん2008/12/22(月) 20:20:39ID:???
userテーブルにprofile_idがあり、profileテーブルがあるとする
postテーブルにuser_idがあるとする
profile-user-post と言う関係

profileのフィールドでpostテーブルを絞り込み、paginatorで表示したい。
と言う場合直接SQL書く以外にどういう手段がある?

端的に言えばpaginatorでの二つ先のテーブルのバインドってこと。
コンテイナブルで出来るのかと思いきや、直接アソシエーションが張られてないとダメらしい。
つまりuserとprofileが繋がってても、postからprofileが直接繋がってないとエラーになる。

モデルにpaginate用のメソッドを書けるけど
それ使っても直接SQL書く事は避けられそうにない。
割と良くあるアソシエーションパターンだと思うんだけど。
0064nobodyさん2008/12/22(月) 20:21:13ID:???
>>62
loginアクションで2つのビューを切り替えればいいんじゃない?
0065632008/12/22(月) 21:56:02ID:???
joins使って一応解決
にしてもスマートだとは思えない
0066nobodyさん2008/12/22(月) 22:57:09ID:???
>>61
???
foreignKeyではだめなの?

> 自モデルのフィールド名は指定出来るけど相手モデルのフィールド名は指定出来ないよね。
> デフォルトでidフィールドが参照される
これの意味するところがよくわからない。
0067622008/12/22(月) 23:08:40ID:???
>>64
あ、画面だけっていうか、ユーザのアクセス管理も2パターンにわけたいって意味でした。
ちょっと書き方足りなくてすみません。
0068622008/12/22(月) 23:20:27ID:???
うーん。cakeの中にもうひとつcakeを置いて、そこで2つ目のユーザ管理するしかないかな。
トホホな気もするけど…
0069nobodyさん2008/12/22(月) 23:41:22ID:???
>>67
<a href="http://book.cakephp.org/ja/view/248/AuthComponent-%E3%81%AE%E5%A4%89%E6%95%B0">AuthComponent の変数 :: 認証 :: 組み込みのコンポーネント :: マニュアル :: 1.2 Collection :: The Cookbook</a>
ここを読むと、userModelで別テーブルを指定してやればいいように思える。
0070622008/12/22(月) 23:56:41ID:???
>>69
書き方まぎらわしくてすみません。
投稿用のユーザ管理と、観覧用のユーザ管理があって、それぞれ
別のページにアクセスできることを想定してました。

複数のモデルをauthで管理できればいいのですが、情報ないですね。
特殊なケースではないと思うのですが、みなさん各自でカスタマイズして
るんでしょうか?
0071692008/12/23(火) 00:11:20ID:???
> 複数のモデルをauthで管理できればいいのですが、情報ないですね。
うん、そういう意味で上のリンクを張ったんだけど。

モデルを切り替えるんではなくて、複数のモデルを一緒くたにして扱いたいってことですか?
0072622008/12/23(火) 00:26:01ID:???
>>71
はい。複数のモデルを一緒くたにして扱いたいのです。
それぞれのモデルに登録されたユーザ毎にでアクセス制限かけたくて。

思いついた方法は、cakeの中にもうひとつcakeを入れることくらいでした。
0073nobodyさん2008/12/23(火) 01:20:40ID:???
そういう権限レベルを分けるためのコンポーネントがある
0074nobodyさん2008/12/23(火) 01:21:10ID:???
つーかもう一つcake入れるとかふざけたことやらずに
せめて自分でコンポーネント実装しろよw
0075622008/12/23(火) 01:57:15ID:???
や、やっぱふざけてますかこれw
肝はコンポーネントなんですね。実装といわれると
とても難しそうですが、調べてみます。

みなさん、ヒントをありがとうございます。
0076nobodyさん2008/12/23(火) 02:23:37ID:???
ACLでいいんじゃないの?
最初理解するのは難儀かもしれんけど。
0077nobodyさん2008/12/23(火) 03:31:28ID:???
>>73の言うように権限レベルを分けるコンポーネントはすでにあるよ
1.2で動くかどうかは知らんけど
0078732008/12/23(火) 06:42:00ID:???
つーかACLの事ね

ところで質問なんだけどモデル名とテーブル名の変換関数とかって
0079nobodyさん2008/12/23(火) 08:28:34ID:???
>>56
http://book.cakephp.org/ja/view/395/autoRedirect
やりたいことができるよ
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
■ このスレッドは過去ログ倉庫に格納されています