トップページ⇒php
1001コメント304KB

【PHP】フレームワーク CakePHP 9ホール目【v1.3】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/07/23(金) 09:13:26ID:v3m09M9u
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※sage推奨
※質問時もsageること
※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
http://github.com/cakephp

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
0367nobodyさん2010/09/05(日) 15:21:03ID:???
秀丸の何がおかしい!
0368nobodyさん2010/09/05(日) 16:09:00ID:???
秀丸に金払うんだよなもちろん
0369nobodyさん2010/09/05(日) 18:13:52ID:???
秀丸はないわ
0370nobodyさん2010/09/05(日) 18:23:30ID:???
彼氏が秀丸でコード書いてたら別れるレベル
0371nobodyさん2010/09/05(日) 18:49:40ID:???
秀丸で書いてもいいんだけど
ちゃんと金払ってマクロ使いこなしてじゃないと
秀丸で書く意味ないだろ
0372nobodyさん2010/09/05(日) 18:56:17ID:???
terapadじゃ駄目なの?
0373nobodyさん2010/09/05(日) 19:40:10ID:???
notepad++がいい
0374nobodyさん2010/09/06(月) 00:33:55ID:???
禿丸
0375nobodyさん2010/09/06(月) 01:59:52ID:thbJcGM5
findのthreadedでツリー型の配列を取得できますが、
それを1つの配列にまとめたいと思っています。

以下のソースで1つの配列に代入出来ますが、ツリー通りの順番になりません。
どの変を直すと、良いのでしょうか?1.3.3を使っています。

function index(){
$data = $this->Category->find('threaded');
$list = array();
foreach ($data as $ary) {
$list[] = $ary['Category'];
if (isset($ary['children'][0])) {
$this->_children($list, $ary['children']);
}
}
}

function _children(&$list, $data)
{
foreach ($data as $ary) {
if (isset($ary['children'])) {
$this->_children($list, $ary['children']);
}
array_push($list, $ary['Category']);
}
}
0376nobodyさん2010/09/06(月) 15:00:11ID:???
スレ違いだったらすみません。
yiiを見ているのですが、下のソースはどういう意味でしょうか?

Yii::createWebApplication($config)->run();


Hoge::foo($config)->huga();
この書き方はスマートでよさげなのですが、どういった構造になりますか?
↓ではないようなのでさっぱりです。
class Yii {
function :createWebApplication($config) {
...
}
function run() {
...
}
}
0377nobodyさん2010/09/06(月) 15:13:49ID:???
なんか基地外がいる
03783762010/09/06(月) 15:42:58ID:???
すみません・・・
FW総合と間違えて誤爆しました。
無視してくださいm(_ _)m
0379nobodyさん2010/09/06(月) 15:45:32ID:???
>>363
自分も少し読んでみた…
…読み辛過ぎる…。
これ入門書なんだけど、本のレイアウト、文章構成等が壊滅的。
プログラム以前の問題。
他にCake本がなければ我慢して読むレベルだと思う。

ちなみに「ECサイトのチュートリアル」ではなく、
発行元のオモドックが作った?ECサイトのオープンソースを
カスタマイズしていく、という内容。
(ダウンロード元のURLは本に載っている)
…ECサイト作成入門、という言葉からフルスクラッチを想像してしまったんだが…。

入門書なら、>>241 にボロカスに書かれている
CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用
の方が内容的にも値段的にも全然マシ。(といっても、1.2版しか読んでないけど)
0380nobodyさん2010/09/06(月) 19:32:08ID:3l/prtic
cakeの初学本の次に読む良い本はないでしょうか。

というかphp、cakeに関係する良書教えてください。
0381nobodyさん2010/09/06(月) 19:52:25ID:???
>>365
PHPエディタはヒアドキュメントの中に不等号入れると、文法が合ってても色付けがぶっ壊れるね
PHP専用エディタなのに適当過ぎるわ、作者は直すこともできないらしいし
0382nobodyさん2010/09/06(月) 20:21:03ID:???
>>380
残念ながら良書はない。どれも作者の色が強い内容。

ポケットリファレンス的な本があればいいのにな。
Cakeも一応あるけど、バージョンがもう古い。
0383nobodyさん2010/09/06(月) 20:29:59ID:???
>>380
今度出るリファレンス本
今月中らしい
0384nobodyさん2010/09/06(月) 20:52:42ID:???
>>382
ありがとうございます。
古いのは知ってましたが、ポケットリファレンスは買いました。
細かい仮引数の意味は書いてませんでしたが役に立ちました。

>>383
ありがとうございます。
Amazonチェックしておきます。

皆さんがcakeを極められたのはやっぱり実務と経験なんですかね。
オライリーが本気出してくれればすごい助かるのに。
0385nobodyさん2010/09/06(月) 20:52:56ID:???
最近はEclipse+PDTを薦めてる本が多いと思う
実際便利だし
0386nobodyさん2010/09/06(月) 21:16:32ID:???
一番読むべきなのはマニュアルとAPIでいいよ。

マニュアルのブログもどきのチュートリアルから
例えば一般のブログサービスにあるような機能を足してみたりして膨らませて行けばいい。
車輪なんて何回でも発明してやれ。
0387nobodyさん2010/09/06(月) 21:30:48ID:???
オフィシャル、ポケットリファレンス、実践アプリケーション開発を1.3対応させてくれりゃいいのに
売れてないのかな
0388nobodyさん2010/09/06(月) 21:41:20ID:???
俺はCakeの本よりも、Cakeを使って作ったサイトがたくさん見たいんだが
どうやって探せばいいのかよくわからない
0389nobodyさん2010/09/06(月) 23:46:08ID:???
Cakeの公式サイトに事例が載ってるじゃん
0390nobodyさん2010/09/07(火) 00:02:35ID:???
ソースが見たければgitでググれ
0391nobodyさん2010/09/07(火) 00:04:24ID:???
俺が低予算短納期でこのまま仕事するなら死んだ方がマシの精神状態で
殴り書きしたサイトなら5つくらいあるから頑張って探して
セキュリティホールってこうやってできるんだって勉強になるよ
0392nobodyさん2010/09/07(火) 00:49:04ID:???
なんでセキュリティホールを放置したままにしてるの?
0393nobodyさん2010/09/07(火) 00:52:18ID:???
低予算短納期なら仕方ないな
0394nobodyさん2010/09/07(火) 01:06:51ID:???
cakeの案件だと平気で1週間10万とかあるからな
0395nobodyさん2010/09/07(火) 03:36:17ID:???
その予算と納期でどの程度のシステム作るの?
テーブル数10以下のCMSなら、簡単に出来そうだけど。
0396nobodyさん2010/09/07(火) 09:36:19ID:???
>>386
あとはソースもね

マニュアルが貧弱すぎてソース読まないと分からないって状況はなんとかして欲しい
0397nobodyさん2010/09/07(火) 09:42:42ID:???
>>395
一番酷かったのは20万で100画面規模のエロサイト
テーブル数は細かいマスタまで入れると50くらいだったわ
納期は2週間だったけどもちろん遅らしたあげくキレた
0398nobodyさん2010/09/07(火) 09:43:19ID:???
誰かが書かなきゃ駄目なんだぜ?マニュアル
0399nobodyさん2010/09/07(火) 10:01:13ID:???
>>398
お任せします
0400nobodyさん2010/09/07(火) 10:25:04ID:???
>>392
セキュリティ確保は別料金になります
0401nobodyさん2010/09/07(火) 10:42:56ID:???
なんの自慢にもならんよ
そんな低料金でやるバカが居るから値崩れするんだよ
死んで詫びろ
0402nobodyさん2010/09/07(火) 10:47:18ID:???
>>241 でも紹介されている「CakePHP 1.3によるWebアプリケーション開発」買ってみたら
UTF-8はBOM付きで保存しろって書いてある・・・。
0403nobodyさん2010/09/07(火) 10:59:22ID:???
>>401
低料金でしか発注しない人がいるんでしょ
パスしても、だれかが受けちゃうよ?需要と供給はマッチしとるわな、残念ながら
0404nobodyさん2010/09/07(火) 11:03:01ID:???
普段は通常価格で受けてても、今回は安いけどお願いしますよってのもあるし
新しい取引先と初回の契約だとリスクヘッジで単価下げられる事もあるし
それでも他に仕事ないなら受けた方がプラスになるし
0405nobodyさん2010/09/07(火) 12:24:54ID:???
>>402
買うなって・・・BOM付きって・・・
0406nobodyさん2010/09/07(火) 12:47:47ID:???
いいから死んで詫びろよ
クズが
0407nobodyさん2010/09/07(火) 13:25:36ID:???
買ったけど読んでない俺勝ち組
0408nobodyさん2010/09/07(火) 13:41:29ID:???
このスレでCake本出せば売れるんじゃね?
0409nobodyさん2010/09/07(火) 13:46:30ID:???
売上の8割は俺によこせよ
0410nobodyさん2010/09/07(火) 14:30:21ID:???
Cookbookっていつも遅いよな、Cakeで作ってるから遅いんじゃないの?
0411nobodyさん2010/09/07(火) 14:46:25ID:???
遅いのはまだしも、リンク切れや間違いが多い
0412nobodyさん2010/09/07(火) 14:51:00ID:???
cakePHPのマニュアルを読むのだけどサイト遅すぎでイライラする
ローカルにダウンロードしたいけどそういうのもナシ
0413nobodyさん2010/09/07(火) 14:56:03ID:???
>>412
http://book.cakephp.org/ja/complete/876/The-Manual
これ保存せい
0414nobodyさん2010/09/07(火) 16:03:15ID:???
>>411
せっかく翻訳してくれてる人達には悪いけど、日本版にはそういう傾向があるね。
英語版見た方がいいよ。
0415nobodyさん2010/09/07(火) 16:07:42ID:???
英語版:Cookbook
日本語版:Cakebook

何の誤訳だよ
0416nobodyさん2010/09/07(火) 16:13:54ID:???
英語版みてもコードは解るけど、説明もみたいじゃない。
けど、英語読めないから辛い・・・
0417nobodyさん2010/09/07(火) 16:19:18ID:???
プログラマで英語が読めないって、かなり致命的
0418nobodyさん2010/09/07(火) 16:20:08ID:???
>>416
お前は俺の後輩か!
"読めないから"じゃなく、読めるとこだけでも読む
0419nobodyさん2010/09/07(火) 16:35:15ID:???
>>416
英語の教科書やテストみたいになんの興味もないヒネったつまらん英文ってわけでもないし
別にたいして難しく書いてあるわけじゃあないよ。
いずれにしてもAPIまで読んで行く時にそっちは翻訳されてないし。

いい機会なんだからめんどくさがらずにがんばれ。
0420nobodyさん2010/09/07(火) 16:36:45ID:???
俺いつも英文が出ると、単語を掻い摘んで読んでいくか
エキサイト翻訳にかけるか、Googleツールバーで一括翻訳か
どれかしてる。それである程度意味はわかるけど、英語が苦手なのは確かだ。
0421nobodyさん2010/09/07(火) 16:55:31ID:???
まあもちろんパッと見て「わからない〜〜」ってなるのは仕方ないけどさ。ネイティブじゃないんだし。
でもじっくり読んでたら頭の中が英語脳みたいに切り替わる瞬間みたいなのがあって面白い。
0422nobodyさん2010/09/07(火) 17:56:23ID:7yk3+8B4
フォームヘルパーで日付の「年」のみを選択出来るようにしたいのですが、
どうすればいいのでしょうか?
$form->input('year', array('type' => 'select', 'options' => $options));
として、自前で$optionsの内容を作成する方法しかないのでしょうか?
0423nobodyさん2010/09/07(火) 19:52:56ID:???
>>422
$form->year() じゃ駄目なのかい?
http://api12.cakephp.org/class/form-helper#method-FormHelperyear
04244222010/09/07(火) 20:03:39ID:???
>>423
出来ました。ありがとうございます。
0425nobodyさん2010/09/07(火) 20:10:54ID:???
cakephpはもう1.3が主流ですか?
0426nobodyさん2010/09/07(火) 20:53:13ID:???
既存サイトの手直しなんかでマイグレーションに苦労する。ってんでもなければ1.3でしょ。
0427nobodyさん2010/09/07(火) 21:15:31ID:???
マイグレーションってなんですか?
0428nobodyさん2010/09/07(火) 22:51:00ID:???
PHP質問スレで流れてしまったので、もしよければ教えてくださいませ。

cakePHPなどのMVCモデルで、何行ぐらいのコードになったら別個のファンクションに
するべきか悩んでおります。

コントローラーにはビジネスロジックを書かずに、モデルにどんどん書いています。
すると、今度はモデル内のコードがごちゃごちゃしてきました。

繰り返しをするコードは別個のファンクションにしていますが、単純に、モデル内における
ファンクション内のコード数が長くなりすぎた場合、どの程度で別のファンクションに分けるべきでしょうか?
0429nobodyさん2010/09/07(火) 22:58:24ID:???
>>428
なんで行数?わけわからn

一連のロジックのうち、他で再利用する可能性が高いものはメソッド化するかな
行数なんか考えたこともないわ
04304282010/09/07(火) 23:10:34ID:???
>>429

ありがとうございます。

再利用しそうにないコードがずらずらと並んで、結構
長いファンクションになってしまったもので。。
0431nobodyさん2010/09/07(火) 23:31:46ID:???
自分の中で「三回(三箇所)以上で使う場合はまとめる」
とかしたらどうだ?
モデルにまとめるなら、app_controllerとか作ってさ。
俺はもっと細かく、member_controllerとかコンテンツ毎に分けてるけど。
0432nobodyさん2010/09/07(火) 23:43:39ID:???
お前は何の話をしてるんだ?
あと3回ってなんだ3回って。なんで3回だ2回ならコピペするのか?
0433nobodyさん2010/09/07(火) 23:50:16ID:???
自分で決めりゃいいじゃん。人に聞かないと判断つかないんだから。
それを言いたいのに、「どういうこと?」っていちいち聞き返すなよ。めんどくさい。
0434nobodyさん2010/09/07(火) 23:56:03ID:???
処理が長くなりすぎて、ひとつのアクション中での流れが見えなくなったってことなんじゃない?
折りたたみできるエディタ使うか、使い回ししないやつでもメソッド切り分けるかしたら?
0435nobodyさん2010/09/07(火) 23:56:13ID:???
このおにーちゃん何いってんの?
急にキレてるけど頭おかしいの?
0436nobodyさん2010/09/07(火) 23:57:35ID:???
コンポーネント内で別のコンポーネントの関数を呼ぶにはどうしたらいいですか?
親子関係は定義したくないです。1個関数を呼びたいだけで、それ以外に関係がないので
0437nobodyさん2010/09/08(水) 00:03:20ID:???
親子にしないで単純にvar $componentsでいけるんじゃないの?
http://www.happytrap.jp/blogs/2009/03/23/793/
0438nobodyさん2010/09/08(水) 00:15:59ID:???
>>437
�dです
あとモデルからもその関数が必要になってしまった。
コントローラをモデルに渡してそれ経由でという強引なやり方以外にありますでしょうか?
0439nobodyさん2010/09/08(水) 00:18:47ID:???
あ、コンポーネントをモデルに渡せばいいのだろうか
0440nobodyさん2010/09/08(水) 00:25:38ID:???
根本的にいろいろぐちゃぐちゃ
0441nobodyさん2010/09/08(水) 02:30:02ID:???
コントローラからコンポーネントを引数にモデルの関数呼んだら
うまくいきました
同じ処理をあちこち書きたくないからしょうがない
0442nobodyさん2010/09/08(水) 02:48:11ID:???
あほはほっとこうぜ
0443nobodyさん2010/09/08(水) 02:50:03ID:???
いいから死んで詫びろよ
クズが
0444nobodyさん2010/09/08(水) 02:56:13ID:???
cakeってMVCどこでも使う処理の置き場に困るよね
0445nobodyさん2010/09/08(水) 03:17:15ID:???
そんなことないよ
0446nobodyさん2010/09/08(水) 03:23:00ID:???
一人うざいのがいるな
0447nobodyさん2010/09/08(水) 03:46:25ID:???
>コントローラからコンポーネントを引数にモデルの関数呼んだ
もっかいMVC勉強してこい

>cakeってMVCどこでも使う処理の置き場に困るよね
vendorsでいいだろ

>>446
お前だ
0448nobodyさん2010/09/08(水) 05:26:59ID:???
関数化するときのコツは、名前のつけられる処理群は関数にするってのがやりやすい。
あとは二回以上使いまわしたら関数にするとか。
0449nobodyさん2010/09/08(水) 12:13:43ID:???
オープンソースのライブラリで、vendorsに入れると
表示が反映されない物がある。おそらく、参照先が同階層になっているんだろう。

その場合、ライブラリ側のソースをいじっって、定数を入れたりして
多階層対応にするか、そのままにして、Cake側で工夫するか。

俺は後者を選んだ。オープンソースとはいえ、むやみに手を加えるべきじゃない。
0450nobodyさん2010/09/08(水) 13:05:01ID:???
表示が反映されない
参照先が同階層
多階層対応

何言ってるのか全く分からない
0451nobodyさん2010/09/08(水) 13:07:08ID:???
頭悪いんだな
0452nobodyさん2010/09/08(水) 13:16:38ID:???
./
dirname(__FILE__)
0453nobodyさん2010/09/08(水) 14:01:49ID:???
ずいぶん荒れてるな

0454nobodyさん2010/09/08(水) 14:30:26ID:???
荒らしてるのは一人だろ
0455nobodyさん2010/09/08(水) 16:14:15ID:???
だな
0456nobodyさん2010/09/08(水) 16:37:51ID:???
うざいとか荒らしとか言って人の意見聞かなけりゃいから成長しないんだよ。
0457nobodyさん2010/09/08(水) 16:40:32ID:???
定数定義君(笑)がでてきたあたりから回答がひどいことになってるよね
中途半端な知識で人に教えないほうがいいとおもうけどなー
0458nobodyさん2010/09/08(水) 17:18:50ID:+2USXYbV
モデルにIDの存在チェックを入れて、バリデーションしようとしているのですが、
どういう値でも全てエラー扱いになります。
どこを直せばいいのでしょうか?アドバイスをいただければと思います。

var $validate = array(
'user_id' => array(
array(
'rule' => 'checkUserId',
'message' => 'IDが存在しません',
)
));

function checkUserId()
{
$data = $this->User->findById($this->data['Profile']['user_id']);
if(!$data){
return false;
}
}
0459nobodyさん2010/09/08(水) 17:22:28ID:???
return true; してないとか。
0460nobodyさん2010/09/08(水) 17:39:15ID:???
>>458
$this->findById()
0461nobodyさん2010/09/08(水) 17:51:58ID:???
>>457
回答も回答だが、質問も458みたいに酷いしな
オープンソースなんだからソース読んで自力で解決しろよと思う
0462nobodyさん2010/09/08(水) 18:00:27ID:???
>>461
どう酷いのか言わないと同じことの繰り返しだよ
04634582010/09/08(水) 18:12:16ID:???
>>459
return trueが抜けてました・・。酷い質問で済みませんでした。
0464nobodyさん2010/09/08(水) 18:12:31ID:???
>>462
>オープンソースなんだからソース読んで自力で解決しろよと思う

と書いてあるわけだが。
ソース読めば、なんですべてエラー扱いになるか理解できるはず。
それを怠って人に頼っている時点で酷いと言ってる。
0465nobodyさん2010/09/08(水) 18:14:01ID:???
>>461
じゃ聞くが、458のような書き方ってソースの問題か?
単に構築上での質問だと思うが。

そしてそれすらも自分で考えろって言うなら、
>>1で質問受け付けないようにしないとな。
0466nobodyさん2010/09/08(水) 18:28:54ID:???
>>465
前半、なにを言いたいのかよく分からないが、ソース読めば
trueを返さなければいけないって分かるだろ?

>>>1で質問受け付けないようにしないとな。
それ賛成

>>463
勉強する気があるならmodel.phpのinvalidFieldsの中を読んでみ
■ このスレッドは過去ログ倉庫に格納されています