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

【PHP】フレームワーク CakePHP 8ホール目【1.3】

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

※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
0755nobodyさん2010/07/08(木) 03:09:56ID:jw2HbYMj
>>754
わかりました。

あと、さくらのサーバに入れたら違和感なく表示されました。
ですので、サーバの問題だと思います。
CakePHPの問題じゃないと言う事は、自分が間違っていました。すみませんでした。
0756nobodyさん2010/07/08(木) 08:13:32ID:???
xamppで実行すると断然遅いのはお約束
0757nobodyさん2010/07/08(木) 10:08:41ID:???
だからローカルだと遅いといったろが!このやろう!!
0758nobodyさん2010/07/08(木) 10:16:08ID:???
Linux上だと普通
0759nobodyさん2010/07/08(木) 10:25:56ID:???
だからCakeが遅いんじゃないっていったろがこのやろー
0760nobodyさん2010/07/08(木) 10:30:37ID:???
Windowsで開発すなw
0761nobodyさん2010/07/08(木) 10:55:14ID:???
ローカルサーバで1.2が重いのはなぜ?
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1592&forum=3&viewmode=flat&order=DESC&start=10
0762nobodyさん2010/07/08(木) 10:55:40ID:???
モデルのテストケース書くときって、バリデーションのテストケースまで書いてる?
バリデーションの組み合わせをテストするだけで結構な量のテストになるのだけど

どこまでテストするべきか、それともバリデーションのテストは不要か悩む
0763nobodyさん2010/07/08(木) 14:26:52ID:???
session関連で、ブラウザがchromeの時だけ発生している現象で困っています。

$data['1']['1'] = 'A';
$data['1']['2'] = 'B';
$data['2']['1'] = 'A';
$data['3']['2'] = 'B';
といった配列を
$this->Session->write('data',$data);
で保存し、
次のページで
$data = $this->Session->read('data');
とやったあとで$dataを確認すると、

$data['1']['1'] = 'A';
$data['1']['2'] = 'B';
だけになっているのです。

$data['2']['1'] = 'A';
$data['3']['2'] = 'B';
がロストしています。

chromeでセッションIDの受け渡しにクッキーを使っているときだけ発生します。
IEでは問題ありません。
セッションIDをURL埋め込みにすると、問題なく動作するようです。
でも可能な限り埋め込みは使いたくないのです。

何かご存じの方、ご意見いただきたいです。
よろしくおねがいします。
0764nobodyさん2010/07/08(木) 14:31:31ID:???
>763
どういう条件で抜け落ちるのかわららん
$data['1']['3'] = 'C';
とか
$data['1']['3'] = 'A';
を追加してみるとか
$data['1']['1'] = 'A';
$data['1']['2'] = 'B';
$data['2']['1'] = 'C';
$data['3']['2'] = 'D';
だとどうなのかとか
0765nobodyさん2010/07/08(木) 15:20:14ID:???
条件がさっぱりわからんのです。
おっしゃるような追加もいろいろやってみたのですが
法則がつかめません。
0766nobodyさん2010/07/08(木) 15:45:02ID:???
今気がついたのですが、
セッションを保存しているファイルを監視していまして、
sess_****
というファイルが
IEの場合は、二つ作られるのに対して、
chromeだと三つ作られています。
その三つ目のセッションファイルの中身がすでにデータ抜け落ちているようで、
そちらを優先してreadしているみたいです。
二つ目だとデータが保持されています。
0767nobodyさん2010/07/08(木) 16:17:09ID:???
外部ファイル読み込んでるけど、そのファイルがないからCakeが起動してて、そこでセッション発行してるとか
そんな感じの何かを感じた
0768nobodyさん2010/07/08(木) 16:23:14ID:???
なるほど、外部ファイルですか。
ソースを確認してみます。
0769nobodyさん2010/07/08(木) 22:52:18ID:???
>>739
トンチンカンなこと言ってるなよ。
改修案件・リプレイス案件で使えないようなFWなんて
使い物にならんね。
0770nobodyさん2010/07/08(木) 23:05:23ID:???
>>769
CAKEがつかえねーと思うなら他にもいっぱい良いフレームワークがあるのだから、そっちに行けばいい
0771nobodyさん2010/07/08(木) 23:14:17ID:???
だよな
少なくともRailsとかCakeみたいに規約で縛るタイプのフレームワークは
既存のシステムに合わせるのは向いてないんだから
それに向いてるフレームワークを使えばいいだけだ
0772nobodyさん2010/07/09(金) 08:32:46ID:???
あえて釣られてみるが・・・
>改修案件・リプレイス案件で使えない
なぜそう思う?
0773nobodyさん2010/07/09(金) 09:00:53ID:???
DB構成が特殊な案件なんだろ
命名規則が面倒とか
0774nobodyさん2010/07/09(金) 11:58:55ID:???
俺みたいな優柔不断の場合、
Cakeのようにガチガチに縛った仕様の方が
使いやすい時がある。
0775nobodyさん2010/07/09(金) 12:08:30ID:???
いま、そういう話ししてるんじゃないよね?
0776nobodyさん2010/07/09(金) 12:41:48ID:???
だよね
0777nobodyさん2010/07/09(金) 12:43:01ID:???
亀甲縛りに見えて発情したじゃねーか
0778nobodyさん2010/07/09(金) 12:49:05ID:???
ガチムチだろそれ言うなら
0779nobodyさん2010/07/09(金) 13:38:36ID:???
よくフレームワーク使う理由に「他人もわかるようにするため」
みたいな理由聞くけど、フレームワークだからって簡単に分かるか?
やっぱり、個々の作り方に依存すると思うんだよな。
0780nobodyさん2010/07/09(金) 13:42:55ID:???
だよね。
0781nobodyさん2010/07/09(金) 14:01:50ID:???
Cakeは配列だらけなのがうざい

完全OOPでCake並に使いやすいFWがほしいな
0782nobodyさん2010/07/09(金) 14:09:55ID:???
>>779
依存するような作り方はしないように努めるもんだ
何使っても自分のことしか考えられなければ同じこと
0783nobodyさん2010/07/09(金) 14:13:15ID:???
Akelosまじオススメ!Cakeのような出来損ないのFWとは違うぜ?
0784nobodyさん2010/07/09(金) 14:19:35ID:???
>>782
それはそうなんだが、そう言いだしたらどの書き方でも一緒だよな?
それこそ自作フレームワークでも、コメントちゃんと書いてれば。
0785nobodyさん2010/07/09(金) 14:26:13ID:???
>>784
自作でも国際的に主流になってる書き方を心がければ同じだろうな
そうした仕組みを共有しやすくしているのがFrameWorkだろ
0786nobodyさん2010/07/09(金) 15:01:55ID:???
ほう Akelos
ぱっと見はCakeに似ているようだが

もうちょっと調べてみる
0787nobodyさん2010/07/09(金) 15:25:51ID:???
よくある主流になれなかったFWだね。

FWは中身でなく、普及率が鍵。
0788nobodyさん2010/07/09(金) 15:45:48ID:???
よさそうだけど普及率いまいちだね

開発スピードも遅いみたいだし

ただ、Cakeの配列だけはどうにかならんのか

Cake2まだー?
0789nobodyさん2010/07/09(金) 15:52:57ID:???
Lithiumは?
0790nobodyさん2010/07/09(金) 15:57:14ID:???
1.2から1.3を躊躇してるんだけど移ったほうがいいかな?
ここはスルーしてCake2なりリチウムなり待ったほうがいいかな?
みんなどんな感じなの?
0791nobodyさん2010/07/09(金) 16:15:30ID:???
>>790
俺なら1.3もイジるし、リチウムもいじる。
自分で触んなきゃ何もわからんから。

2chは参考程度じゃね。
0792nobodyさん2010/07/09(金) 16:18:53ID:???
Yiiとかはどう?

設置しやすそうだし、現状ではよさげなんだが
0793nobodyさん2010/07/09(金) 17:08:50ID:???
移行するって簡単なようで難しいよな。

俺も自作FWからCake1.3に移行しているけど、
手癖がある分、以降が困難だ。
しかも、自分で作ったコードを誰かと共有して使うかって言ったら
その可能性はかなり低いだろうし。自作でもいい気がしてくる
0794nobodyさん2010/07/09(金) 18:04:28ID:???
Cake2は配列残るべ?
0795nobodyさん2010/07/09(金) 18:10:41ID:???
残るけどfindの戻り値はオブジェクトになるとか
0796nobodyさん2010/07/09(金) 18:12:42ID:???
>>792
sqlite使えるのは便利
0797nobodyさん2010/07/09(金) 18:20:59ID:???
Yiiは予約語少ないのがいいね

ただ流行るかは未知数
個人的には流行って欲しい

CakePHPは便利ちゃあ便利なんだが
CMS界のWPのような存在になったらそれはそれで困る
0798nobodyさん2010/07/09(金) 18:21:55ID:???
>>795
中途半端にオブジェクトにされてもな
引数について言及されてないってことは、引数は配列のままなんでしょ?
0799nobodyさん2010/07/09(金) 18:24:34ID:???
>>797
>CMS界のWPのような存在になったらそれはそれで困る
なぜに?
0800nobodyさん2010/07/09(金) 18:28:05ID:???
>>798

たぶん、そのままなんだろうねえ…


>>799

外見はいいけど中身が中途半端&時代遅れ
CMSはまだいいが、FWで中身が中途半端&時代遅れだとかえって使いにくい
0801nobodyさん2010/07/09(金) 18:34:55ID:???
CakePHPは予約語が多すぎたりでメソッド名ださくなるしな
そうはいってもライブラリも多いから使ってるんだけどなw
0802nobodyさん2010/07/09(金) 18:52:56ID:???
yiiムズいな
0803nobodyさん2010/07/09(金) 19:53:49ID:???
確かにWordpressは時代後れだよな

でも、使う側(プログラミングしない人)から見ると
動くし、プラグイン一杯あるから使うんだろうな
0804nobodyさん2010/07/09(金) 20:13:50ID:???
WordPressに変わる便利で流行るCMS公開したらいいよ
0805nobodyさん2010/07/09(金) 21:38:34ID:???
WPって時代遅れなのか?
MTが時代遅れって言うのならわかるけど、CMSとしてはともかくブログシステムとしてWPは
最高峰だと思っていたんだが…
そんな俺が時代遅れなんだろうか
0806nobodyさん2010/07/09(金) 21:44:10ID:???
Wordpressはいまや世界一のブログシステムだよ。
Movabletypeからかなりの人が乗り換えてる。

最新版は、複数のブログを単一のシステムで構築できるようになったから
ますます普及するんじゃないかな。
0807nobodyさん2010/07/09(金) 22:26:54ID:???
言語と同じだよ
用途で使い分ければいいだけ
0808nobodyさん2010/07/09(金) 23:05:12ID:???
用途かぶってるだろ?
0809nobodyさん2010/07/09(金) 23:50:34ID:???
でも、ソースはとてもMVCとは言えなく無いか?
0810nobodyさん2010/07/10(土) 00:00:14ID:???
誰もMVCなんて言ってない気もするが
0811nobodyさん2010/07/10(土) 00:12:04ID:???
MVCって言葉を覚えたてなんだろうな
0812nobodyさん2010/07/10(土) 00:23:55ID:???
ごめん。フレームワークの事だった・・・

てか、MVC覚え立てならCakeのスレ来ないだろ
0813nobodyさん2010/07/10(土) 00:35:25ID:???
んじゃそれぞれのスレでやるってことで
0814nobodyさん2010/07/10(土) 00:42:04ID:???
>ごめん。フレームワークの事だった・・・
これでも意味わかめ
0815nobodyさん2010/07/10(土) 00:42:42ID:???
フレームワークって言葉を覚えたてなんだろうな
0816名無しさん@そうだ選挙に行こう2010/07/10(土) 11:29:58ID:???
paginationのカスタムで挫折した・・・

モデルに関数作って上書きするってところまではわかるが、
独自SQLを反映させられない・・・難しすぎ
0817名無しさん@そうだ選挙に行こう2010/07/10(土) 16:04:52ID:???
cakephpのpaginate使いにくいよな

どうして
$this->Model->paginate()
って使い方にしなかったのか理解に苦しむ
0818名無しさん@そうだ選挙に行こう2010/07/10(土) 16:37:18ID:v/ICs0IK
書籍 CakePHPによる実践アプリケーション開発で勉強しています。
P82-84 バリデーションルールの追加で
var $validate = array(
'from' => array(
'date_format' => array('rule' => array('datetime'), 'required' => true),
'compare_from_to'=> array('rule' => array('compareFromTo')),
'not_duplicate_schedule' => array('rule' => array('isDuplicate'))
中省略
function isDuplicate($value) {
$from = $this->data[$this->name]['from'];
$to = $this->data[$this->name]['to'];
$conditions = array('or' => array(
array("from BETWEEN ? AND ?" => array($from, $to)),
array("to BETWEEN ? AND ?" => array($from, $to))
));
if($this->id) {
$conditions[$this->alias . '.' . $this->primaryKey] = '!= '.$this->id;
}
$count = $this->find('count', compact('conditions'));
return $count == 0;
}

この中の $conditions[$this->alias . '.' . $this->primaryKey] = '!= '.$this->id; で
aliasとは何が入るのでしょう? 漠然と同レコードのIDを排除して比較してるような
気はしますが、$condtionsの2番目配列には何がはいるのでしょうか?


0819名無しさん@そうだ選挙に行こう2010/07/10(土) 17:23:31ID:???
>>818
見た感じ$this->aliasはisDuplicateの呼び出し元のモデル名が入るんじゃね?
0820名無しさん@そうだ選挙に行こう2010/07/10(土) 22:13:41ID:oMY+XuqK
クックパッド
http://blog.kushii.net/archives/1350951.html
http://www.red-mount.com/blogs/show/ruby_on_rails_cookpad

ついに月次訪問者でツイッターがmixiを抜いた!
さらにツイート数で米国を逆転か?:in the looop:ITmedia オルタナティブ・ブログ
http://blogs.itmedia.co.jp/saito/2010/06/post-4bfd.html
http://techwave.jp/archives/51473193.html
http://techwave.jp/archives/51476110.html

Twitter検索急増中【ループス斉藤徹】 : TechWave 
http://techwave.jp/archives/51475780.html
Twitter共同創業者のBiz Stone氏は,
Twitterの一日あたりの検索回数が8億回に達したとコメントした。

ウィリアム氏がOdeo内で始めた小さなプロジェクトが「Twitter」だ。
Ruby on Railsを使って2週間で最初の動くバージョンを作り上げたという。
http://www.atmarkit.co.jp/news/200711/16/twitter.html

リクルート メディアテクノロジーラボ
「Railsサイト安定運用の心構え 〜8つのサービスから学ぶ」
http://b.hatena.ne.jp/entry/www.nicovideo.jp/watch/sm8258661
http://gihyo.jp/news/report/01/rubykaigi2009/0002?page=4

今では、ビッダーズについては、バックエンドはもうRailsでサクっと作っていこうという方向になっています。
広告のシステムもどんどん改善して、フェーズ3や4をやっていますし、それ以外の部分もRailsで書き直しています。
Rubyはシンプルに作れるし、自動テストが作りやすいのも良いですね。
http://www.dena.jp/recruit/sp/engineer/interview/hanabe.html
0821名無しさん@そうだ選挙に行こう2010/07/11(日) 11:20:41ID:???
で、それとCakePHPとなんの関係があるの?
0822名無しさん@そうだ選挙に行こう2010/07/11(日) 12:07:43ID:???
githubとかで参考になるプロジェクトってある?
1.2で。
0823nobodyさん2010/07/12(月) 17:41:22ID:???
みなさん、CakePHPを仕事で使ってるんですか?
0824nobodyさん2010/07/12(月) 17:50:23ID:???
そうですがなにか
0825nobodyさん2010/07/12(月) 18:06:31ID:???
羽田のサイトはcakePHPでできてるぞ
0826nobodyさん2010/07/12(月) 18:10:20ID:???
誰だよ
0827nobodyさん2010/07/12(月) 18:20:47ID:???
俺だよ俺
0828nobodyさん2010/07/13(火) 00:18:32ID:???
query() 使うとテーブル名がキーにセットされるじゃないですか。
テーブル名に別名(Hogeとか)付ければいいのだけど、From句にサブクエリを使った場合はこの別名すら読んでくれなくないですか?
0829nobodyさん2010/07/13(火) 11:50:34ID:mYlx8y+I
elements のなかで親ビューで設定した変数を使う方法を教えてください ループの中身をインクルードしたいです
0830nobodyさん2010/07/13(火) 11:54:08ID:???
引数で渡せる。

マニュアルにもあるよん。
http://book.cakephp.org/ja/view/97/Elements
0831nobodyさん2010/07/13(火) 12:03:54ID:???
マニュアルも読まないで人に聞くな
チュートリアルもこなさないで人に聞くな
アホばっかり
0832nobodyさん2010/07/13(火) 12:53:53ID:???
GROUP BYを指定するには、1 = 1 GROUP BY xxx って指定する以外に方法ありますか?
0833nobodyさん2010/07/13(火) 13:38:34ID:???
バージョンは?
マニュアルに書いてあるっしょ
optionsにarray(group=>*)
0834nobodyさん2010/07/13(火) 14:02:30ID:???
マニュアルで探すと時間かかるじゃん?
0835nobodyさん2010/07/13(火) 14:12:21ID:???
そうでもないよ
ってか釣り堀はここじゃない
08368322010/07/13(火) 14:13:28ID:???
>>833
ありがとう。
あれ?もしかして、1.2以降はgroupが使えるようになっているのか…。
1.1で、使えなかったから標準ではサポートされていないのかと思いました。
すいません。
0837nobodyさん2010/07/13(火) 14:13:37ID:???
ここで聞く方が誰かが答えるまで時間がかかるし、そもそも答えが返ってこない可能性もあるのに
0838nobodyさん2010/07/13(火) 14:54:11ID:???
マニュアルは分かりづらいよ。
PHPのマニュアルほど、整理されてないし。
0839nobodyさん2010/07/13(火) 15:01:43ID:???
>>838
PHPのマニュアルほどって
無茶言うなw
0840nobodyさん2010/07/13(火) 15:11:04ID:???
まにゅあると
http://api.cakephp.org/classes
ここ読めば大抵分かるなんならそのままリンクされたソース読めばいい。
0841nobodyさん2010/07/13(火) 17:42:59ID:???
findとかpaginationとかFormヘルパーとか
似たような物作って自家製フレームワーク作ってるんだけどやたら難しい。

CakePHPからWebサイトに必要な機能を省いた
軽量版が欲しかったんだが、素直にCakePHP使った方が良いのかな・・・
0842nobodyさん2010/07/13(火) 17:54:53ID:???
CakePHPが重くて困る場面でなきゃ
既存のものを使わない理由はないな
0843nobodyさん2010/07/13(火) 18:03:14ID:???
既存のはpaninationの使い方がどうも難しいんだよな・・・。
あと、配列書きまくらないと設定できないというのも。

重くて困るという事はないが、xdebugした時のログを見ると
無駄な部分も多いんじゃないかなって思うんだよな。
0844 [―{}@{}@{}-] nobodyさん2010/07/13(火) 18:04:18ID:???
オレオレフレームワークほど無駄なものはない
0845 [―{}@{}@{}-] nobodyさん2010/07/13(火) 18:05:54ID:???
どうしてもなら自家製paginationとして
ヘルパーやらコンポーネントやらを作ればいい。

オレオレフレームワークほど犬も喰わんものはない
0846nobodyさん2010/07/13(火) 18:29:41ID:???
オレオレフレームワークって言っても、俺が使うからなw

バリデーションの処理(モデルとの連携)が難しいんだが
ま、限界を感じたら845の言うようにするよ。
0847nobodyさん2010/07/14(水) 00:26:44ID:sCETZCgF
database.phpのデータベース接続情報を
コントローラーから参照するのって、どうすればいいのでしょうか?
staticじゃないから、DATABASE_CONFIG::$default
では駄目ですし・・。
0848nobodyさん2010/07/14(水) 15:50:04ID:???
>>847
ConnectionManager::getDataSource($this->(モデル名)->useDbConfig)
じゃだめ??
0849nobodyさん2010/07/14(水) 16:50:30ID:sCETZCgF
>>848
駄目です・・。「Class 'ConnectionManager' not found」
というようにクラスがないと出ます。

ソースはTestControllerのindex内に
$config = ConnectionManager::getDataSource($this->Test->useDbConfig);
print_r($config);

としただけなんですが・・・。バージョンは1.3.2です。
0850nobodyさん2010/07/14(水) 17:13:41ID:???
クラス読みこめば?
0851nobodyさん2010/07/14(水) 17:30:31ID:sCETZCgF
$obj = new DATABASE_CONFIG();
$config = $obj->default;

としたらいけました。この方法しかないんですかね?
0852nobodyさん2010/07/14(水) 17:55:33ID:???
スレチ失礼。ATNDより、PHP関連の勉強会を紹介します。


■Ktai Library for cakephp 勉強会@関東
URL: http://atnd.org/events/6209
日時: 2010/07/17 11:00 to 15:00
場所: マイ・スペース&ビジネスブース池袋西武横店
参加条件: Masa-Pさんの本「PHPで作る携帯サイト デベロッパーズガイド」を持参、かつ4章までを自力である程度実装できている、もしくは出来る方


■OpenPNE3で学ぶsymfony勉強会
URL: http://atnd.org/events/6255
日時: 2010/07/24 15:00 to 17:00
場所: 手嶋屋新宿御苑オフィス
内容: この勉強会は毎回OpenPNE3の各機能、仕様にフォーカスを当て、ベースフレームワークであるsymfonyを理解していく勉強会です。
参加者はみんなsymfonyに興味のあるプログラマです。Webエンジニアとのネットワークづくりにもお役立てください。


■Python4PHPer 第7回講習会
URL: http://atnd.org/events/6344
日時: 2010/08/12 10:00 to 22:00
場所: 国立オリンピック記念青少年総合センター
内容: Python未経験者向けの、PythonとGoogle App Engine (GAE) の入門講座です。


■第11回 LOCAL PHP部勉強会
URL: http://atnd.org/events/6443
日時: 2010/08/28 14:00 to 16:30
場所: 札幌市産業振興センター セミナールーム9
0853nobodyさん2010/07/14(水) 18:16:15ID:???
おいしね↑
0854nobodyさん2010/07/14(水) 20:15:32ID:???
生きる!
■ このスレッドは過去ログ倉庫に格納されています