トップページ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
04464452010/05/28(金) 13:43:33ID:???
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1776&forum=7

こんな感じのが一般ですかね??
0447nobodyさん2010/05/28(金) 14:15:22ID:???
>>445
1.2ならvendors、1.3ならpluginsに入れてしまう。という手もあると思う。
0448nobodyさん2010/05/28(金) 14:18:04ID:???
app::importしてviewに表示ってことですか?
0449nobodyさん2010/05/28(金) 17:04:27ID:???
>>445
background-image: url("/app/webroot/img/aaa.png");

でいいじゃないの
0450nobodyさん2010/05/28(金) 22:05:07ID:???
オープンになっているプラグインの一覧ってどっかない?
0451nobodyさん2010/05/29(土) 14:01:50ID:???
>>449
CakePHPってこんなことまでできるんですか??
0452nobodyさん2010/05/29(土) 14:14:23ID:???
> 445
俺だったらシンボリックリンク使うかな。
0453nobodyさん2010/05/29(土) 14:34:13ID:???
>>542 ftpのみの環境だと無理だろ
0454nobodyさん2010/05/29(土) 18:00:38ID:???
>>542に期待
0455nobodyさん2010/05/30(日) 08:02:11ID:???
>>542 モデルに書いた方が後でごちゃごちゃしないのでオヌヌメ
0456nobodyさん2010/05/30(日) 15:07:32ID:???
質問です。
CAKEの本でなにか初めての人向けのお勧めの本ってありますか?
リファレンス的な本はCakePHP ポケットリファレンス買おうと思ってるのですが
探してみたんですがあまり評価のよろしくないものが多いので・・
おねがいーします。
0457nobodyさん2010/05/30(日) 15:27:57ID:???
>>456
CakePHP1.2ガイドブック
http://www.amazon.co.jp/dp/4839932468/
0458nobodyさん2010/05/30(日) 16:30:06ID:???
>>457

この本ってアマゾンの評価みてもわかりにくそうな印象が・・
大丈夫でしたか?
またサンプルもCDも付属なし、ダウンロードもできないっぽいですが・・
0459nobodyさん2010/05/30(日) 16:31:49ID:???
CakePHPは1.3がでてしまったからなー。
どの本も時代遅れさー。
0460nobodyさん2010/05/30(日) 16:33:16ID:???
俺はいろいろ本を買ったが、一番役に立ったのは「CakePHP ポケットリファレンス」だった
0461nobodyさん2010/05/30(日) 16:44:35ID:???
>>459
>>460

そうなんですよねー、1.3って1.2と比べて機能とかけっこう違いあります?

CakePHP ポケットリファレンスはamaの評価もよいしリファレンス本は必要なんで
買う予定なんですけど、他の本ってどれもイマイチ評価悪いんですよねー。。
457さんの本は値段も微妙に高いしちょっと買うのに躊躇が・・。
0462nobodyさん2010/05/30(日) 18:34:09ID:???
>>458
尼のコメには
>ソースコードは
http://github.com/yandod/cakephp-guidebook
http://cakephp.cba-japan.com/
>からどうぞ。
って書いてあるけど
0463nobodyさん2010/05/30(日) 20:53:48ID:???
ガイドブックは読みにくいけど内容は一番まともだと思う
さわりの部分をひととおりさらうにはいい
でもそんな目的のためにあの値段は高過ぎる・・・
半分の薄さで簡潔に書いてくれて半額のほうがいい本になって売れると思うけどなぁ
0464nobodyさん2010/05/30(日) 21:50:27ID:???
http://bakery.cakephp.org/articles/view/cakephp-1-3-1-now-with-delicious-sprinkles
0465nobodyさん2010/05/30(日) 22:49:56ID:???
ガイドブックはざっくり目を通すには悪い本ではないと思う
ただ誤植が多くて、サンプルがどのコードに対応するのか分かりにくい
手を動かして練習するには不向きな気がする
0466nobodyさん2010/05/30(日) 22:55:03ID:aCIlDOev
ショッピングカートの
注文部分みたいなのどうやって作ればいい?
カートの中身→住所入力→支払い方法入力→確認画面→完了みたいなの。

希望としては、URL直接入力でいきなり途中のページ、たとえば支払い方法入力
ページにいけたりしてほしくなく、決めたとおりの順序でしか
表示されないようにしたい。
だからURLは全部同じになるのかな?

でも可能なら、戻るや進むは理想どおりに動いてほしい。
これはURL同じじゃ実現は難しいのかな?

どうするのが一番いいんだろう。
別にCakePHP以外の話でもいいんだけど、
こういうところ、みんなどうやって作っているのか気になる
0467nobodyさん2010/05/30(日) 22:59:54ID:???
>>466
cakeに関係なく普通はセッション使うのでは。
0468nobodyさん2010/05/30(日) 23:03:25ID:???
フラグを立てればいいかも
0469nobodyさん2010/05/30(日) 23:08:21ID:???
>>466
セッションに前の画面から来たという証を入れといて
次の画面で照合する。
これをやらないとCSRF脆弱性に繋がるよ。
0470nobodyさん2010/05/30(日) 23:12:42ID:???
session_regenerate_id(true)とかは?
0471nobodyさん2010/05/30(日) 23:14:58ID:???
CAKE本についてありがとうございました。
参考にしてみます。

近所の図書館にガイドブック1.2あったんでとりあえずそれでしのいで
1.3の本でてから買うことにしました。
0472nobodyさん2010/05/31(月) 00:07:26ID:???
>>469
そういうこまごまな雑用を
やらなくてすむのがフレームワークじゃないんですか?
0473nobodyさん2010/05/31(月) 02:22:36ID:UmKeQ4JH
ヘルパーの中読んでるんだが
なんか実装するつもりだったんだろうけど動作してない機能とか変な引数突っ込んだらバグるメソッドとかぽろぽろ見つかるな

あとオーバーロードを無理矢理実装するのはやめてくれ
HtmlHelper::tableCellsとか酷すぎ
0474nobodyさん2010/05/31(月) 07:41:00ID:???
>>472
security component使うのがcake流では?
0475nobodyさん2010/05/31(月) 11:48:32ID:???
cakephpって有名な企業とかで使われてる?
0476nobodyさん2010/05/31(月) 12:53:33ID:???
Firefoxアドオンサイト
0477nobodyさん2010/05/31(月) 16:46:23ID:SYZ/fufa
hogehoge.comへアクセスした時
www.hogehoge.comへ変更するのは.htaccessを弄るしか方法ないでしょうか?
0478nobodyさん2010/05/31(月) 18:42:48ID:???
もしCakeでやるのだったら、
AppController の beforeFilter で、ホストを取得して、それを元にリダイレクトかければいいんじゃない。

上記方法でやるよりも、.htaccessでやるのが全然いいと思うが。
0479nobodyさん2010/05/31(月) 18:50:29ID:???
1.3.0さわってみた記念
ところでsqlite3を使いたくてgithubのDBOを入れて使えるようにしたのだが
bakeでmodelを作成できないのは仕様?
0480nobodyさん2010/06/01(火) 11:47:04ID:???
form->radioで、未選択時の値を選択なしにする方法はありますか?

$options に値「0」のデータが含まれていると、未選択時にこの値が選択されてしまうのです。
form->selectの第3引数に$selected = nullを指定したときと同様の動作を望んでいるのですが。
0481nobodyさん2010/06/01(火) 17:56:45ID:???
1.3使ってます。
Formヘルパーで、checkboxを以下のように出力したとき、divが消せないんですけど
これってどうやれば良いんでしょうか?
<?php
echo $form->input(
'search3',
array(
'type'=>'select',
'multiple'=>'checkbox',
'div'=>false,
'label'=>false,
'options'=>$lists
)
);
?>
0482nobodyさん2010/06/03(木) 11:12:40ID:mt7KSN2e
つい先ごろからCakePHPを利用したアプリ作ってます。ver1.3です。
質問ですが、よくある検索条件&一覧の画面で、paginate使う場合にソートや
ページング後に検索条件を保存する方法はフレームワークで用意されてない
のでしょうか。
ない場合、定石的にはどうするのでしょうか。sessionに入れるというのは一つ
思いつきますが、できればやりたくありません。

よろしくお願いいたします。
0483nobodyさん2010/06/03(木) 11:33:09ID:???
>>482
ない
あと同じ質問以前にあったから検索すること
0484nobodyさん2010/06/03(木) 14:10:48ID:???
>>482
Search Plugin 使うとよい
0485nobodyさん2010/06/04(金) 03:35:38ID:NZTGzHeO
MediaPluginって、モデルごとにサムネイルサイズ指定できない?
Configure::write()での指定をモデルごとに入れてやろうかとも思ったけど、
viewで表示する際ソースのheight/widthに数値入るから不具合起こりそう
なんかいい解決方法ないですか?

複数のモデルでmediaファイルアップされるってのは想定されてないところ見ると普通じゃないのかな
04864822010/06/04(金) 06:54:54ID:???
ありがとうございます。プラグイン調べて見たいと思います。
0487nobodyさん2010/06/04(金) 10:09:17ID:???
cakeにプラグインがあるなんて知らなかった。
情報thx!!

0488nobodyさん2010/06/04(金) 14:09:11ID:???
>>485
>複数のモデルでmediaファイルアップされるってのは想定されてないところ見ると普通じゃないのかな

Attachement モデルで group とかで指定できるでしょ。
これができるから、mediapluginってつえーんだよね。
0489nobodyさん2010/06/04(金) 15:29:41ID:???
>>488
それはそうなんだけど
サイズ指定ね。
モデルによって必要なサムネイルサイズが違うって普通にあることだと思うんだけど、
サイズ指定はConfigure::write()のMedia.filter.imageでAppで共通の設定でしょ
ビヘイビアの引数とか、Attachmentモデルとからへんで指定できてよさそうなのにってはなし
0490nobodyさん2010/06/05(土) 09:45:21ID:xxd6/1g9
CAKEPHPのチュートリアルとか見て勉強中なんですがECLIPSE
でデバッグできると知り、なんとか設定してみました。

が、CAKEで動かそうとするとデバッグできません。
最初の一行で止まるOPTIONでデバッグすると、CAKE内部で止まるのですが
sample_controller.phpとかの行でブレークポイントをつけても無視されてしまいます。

デバッグの構成は

XDebug、Default PHP Server使用で
ファイルは /cakephp/samples
URLは   http://Localhost/cakephp/samples

としています。
なにが原因でしょうか? わかるかた教えてください
0491nobodyさん2010/06/05(土) 18:22:49ID:???
入門書でも買って一から勉強したら?
0492nobodyさん2010/06/07(月) 09:14:03ID:???
CakePHP 1.3.2 released
http://bakery.cakephp.org/articles/view/cakephp-1-3-2-released
0493nobodyさん2010/06/07(月) 09:16:39ID:???
CakePHP1.3.1のキャッシュ関係のバグが直ってるぽい

あと質問時にあげなくても良いからね。って見てないからあげるんだろうが
0494nobodyさん2010/06/07(月) 10:03:53ID:???
IDださなきゃ騙りが出るだろーが
IDだせ
0495nobodyさん2010/06/07(月) 10:12:48ID:nY/RardB

告知させて。
現在のところあまり盛んに動いてるオンライン勉強会がないので
あたらしくグループつくりました。
オンラインでチャット・生中などいろいろ(未定)で
できれば毎晩だらだら勉強やる予定です。
熱意のある人いたらたまーに課題だしてってアプリ作るなんてのも
ありかなと思ってます。

初心者の人はもちろん、おれが仕切って教えてやるわって人も大歓迎です。
0496nobodyさん2010/06/07(月) 10:13:55ID:nY/RardB
グーぐるグループ
「初心者歓迎 PHP勉強会 2ch発」
ttp://groups.google.co.jp/group/2ch-php
php.2ch@gmail.com

参加希望の人いたら、メールくださいな。
0497nobodyさん2010/06/07(月) 10:17:38ID:???
平日やんの?
0498nobodyさん2010/06/07(月) 10:36:57ID:???
cakeなんて勉強会するほどのものじゃないだろ
0499nobodyさん2010/06/07(月) 10:39:58ID:???
あちこちのスレで宣伝してるしPHPの勉強会ということだろう
まぁそんなボランティア精神あふれる社会人はいないけどな
学生か初心者同士が教えあう趣旨ならいいかもしれんが
狭いコミュがいやだから2chにいるわけでわざわざ登録してまでここからいくやつはいるのだろうか・・・
引き抜くならmixiとか教えてgooとかからのほうがいいぞ
0500nobodyさん2010/06/07(月) 10:45:21ID:???
あcakeじゃなくてphpか
学びたいなら2chなんかから一歩外に出たほうがいっぱいあるだろうに
なぜあえて2chとかつけたがるのか甚だ疑問だ
0501nobodyさん2010/06/07(月) 11:17:18ID:nY/RardB
>>497

平日というか、とりあえず毎日でもチャットかスカイプとかで何人か雑談的に
あーだ、こーだ最近のネタとかPHPについて話す場を作って、たまーに課題でアプリでも作って
やってければなってかんじです。
マジメに教えるための素材作ってオフの勉強会みたいにやるのは、たぶんこれまでの
グループとかみても運営に負担かかって衰退するだけなんで気楽にやれればなーってかんじです。

>>498-500

なんとなくやってみるかんじだよー。
mixiとかも考えてみる。
0502nobodyさん2010/06/07(月) 12:11:08ID:???
>>494
変なのが、きちゃったじゃないかよ。。。
05034952010/06/07(月) 14:10:32ID:???
     *      *
  *     +  うそです
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *
0504nobodyさん2010/06/07(月) 17:51:30ID:BTwl7tPr
チュウがしたいの
http://www.youtube.com/watch?v=wR36kSH4qeM
0505nobodyさん2010/06/08(火) 11:06:13ID:???
1.3系の次は2.0になるみたいだね
0506nobodyさん2010/06/08(火) 11:15:15ID:???
>>505
そだよ。
ちなみに2.0はPHP5のみ
0507nobodyさん2010/06/08(火) 11:24:51ID:???
すっきりする
0508nobodyさん2010/06/08(火) 21:32:11ID:???
今まで4が切られていなかったのが奇跡
つーか、PHP4+CakePHPのプロジェクトなんて、片手で数えられるくらいしかないんじゃないか?
0509nobodyさん2010/06/08(火) 22:00:39ID:???
1.3.0入れてBlogのチュートリアルやったんだけど、
記事個別のviewやdeleteのリンクの最後が"/id:1"のようになってしまっていて、動きません
"id:"が余計で"/1"に変えてみたら動くのですが、こうなるのはソースのどこが間違っているのでしょうか?
公式が堂々と間違えているのにぐぐっても特に何も出ない
0510nobodyさん2010/06/08(火) 22:10:19ID:???
>>509
1.3英語版のマニュアルの方を見ると良いです。
'id'=> が余計だね。
0511nobodyさん2010/06/08(火) 22:13:04ID:???
>>510
日本語版はテキスト古いとか出てたので英語版見ながらやったんですが…
もいちどチェックしてみます
0512nobodyさん2010/06/08(火) 22:22:57ID:???
どうやら1.3じゃない版を見ていたっぽい
ctp内の'id'=>を消したらいけました
0513nobodyさん2010/06/08(火) 23:06:25ID:???
1.2以上でセキュリティコンポーネントのrequireAuthを使えてる人いる?
0514nobodyさん2010/06/10(木) 05:07:20ID:???
>>506
どーせなら5.3のみにしてもらってもいいくらいだな。
5でもそれぞれ地味に挙動違うし
0515nobodyさん2010/06/10(木) 06:23:37ID:???
hasOneとbelongToて何が違うの?
機能的には同じものを提供しているように思うんですが
0516nobodyさん2010/06/10(木) 07:04:46ID:???
>>514
それLithium
0517nobodyさん2010/06/10(木) 08:37:39ID:???
>>515
バカだな

ニートなお前は
親に依存してるだろ?→belongsTo
でも逆に親から見ると
親はお前を養ってるだろ?→hasOne

お前兄弟いる?いるなら
親はお前(ら)を養ってるだろ?→hasMany
0518nobodyさん2010/06/10(木) 08:52:47ID:???
>>515
ちがうよ!全然違うよ!
User hasOne Profile だけど、 User belongsTo Country になる。
この場合、Country hasMany User が成り立つ。(別に設定する必要はないが)

相手側から見てhasManyが成り立てばbelongsToだよ
0519nobodyさん2010/06/10(木) 08:55:02ID:???
なぜ使い分けるかは、それぞれ提供されてる機能が違ってくるから。
慣れるまでは>>518を参考に区別しておくと良いよ
0520nobodyさん2010/06/11(金) 09:02:47ID:iUDx5l1B
GoogleブックにCake本が。

オープンソース徹底活用 CakePHPによるWebアプリケーション開発
http://books.google.co.jp/books?id=_6uO_tNQRTUC&printsec=frontcover#v=onepage&q&f=false
0521nobodyさん2010/06/11(金) 16:49:02ID:???
>>520
これ一番わかりやすい本だと思うんだけど絶版なんだよね
全ページを見せてくれてもいいのになあ
0522nobodyさん2010/06/11(金) 19:58:24ID:???
data[0][aaa]
data[0][bbb]
data[0][ccc]
data[1][aaa]
data[2][bbb]
data[3][ccc]
のような配列のバリデーションって出来ますか?
0523nobodyさん2010/06/11(金) 20:14:27ID:???
>>520
本屋にまだ置いてあるでしょ
0524nobodyさん2010/06/12(土) 00:17:39ID:???
CakePHP: the rapid development php framework
Not Found
Error: The requested address '/' was not found on this server.

でハマっています。
Configure::write('debug', 0); を0以外にするとエラーにならなくなります。
どこから調べていけばいいでしょうか…。
0525nobodyさん2010/06/12(土) 03:08:55ID:???
routes.phpとかテンプレートあるかどうかとか。
0526nobodyさん2010/06/12(土) 07:58:43ID:???
>>524
ん?debug 1だとエラーが出ないってこと?
そしたら、layoutsファイル内にecho $content_for_layoutが無いとか?
0527nobodyさん2010/06/12(土) 12:55:30ID:???
debug時になにかしらエラーが出てると思うんだけど
0528nobodyさん2010/06/12(土) 21:20:41ID:???
cakeインスコで聞きたいんですけど(1.3入れました。)
mod_rewriteが効いてない?みたいで
cakeのディレクトリにあるindex.phpが404で開きません。

apacheのhttpd.confと
cakeの3つの.htaccessのRewriteBaseも解説本通り修正したんですが
ほかに何か問題になりそうなところってありますか?
05295282010/06/12(土) 21:40:47ID:???
自己解決しました。
.htaccessのRewriteBase外したらおkでした。
0530nobodyさん2010/06/13(日) 18:44:53ID:???
>>524
それDB接続に失敗しててもなるよ。
0531nobodyさん2010/06/15(火) 12:18:42ID:???
共有SSLを使おうと思ったら、 https://レンタルサーバ/ドメイン名/ と、
サブディレクトリがくっついてきて、そのままだとCakePHPの吐き出す絶対パスが
合わなくなってしまいます。

mod_rewriteのrewritebaseで設定すればいけると思いますが、ホスト名によって
rewritebaseを複数設定することは可能でしょうか?
0532nobodyさん2010/06/17(木) 13:15:31ID:???
cake/libs/session.php
を改造したいんですが、
直接ファイルに手を入れずに別の場所において修正する事は可能でしょうか
ヘルパーを改造したいときに
cake/libs/view/helpers/*.php

app/views/helpers/

置くのと同じイメージでできればと思ってるんですが
0533nobodyさん2010/06/17(木) 13:39:37ID:???
views以下のテンプレートにctpじゃなくてPEARのHTML_Template_Sigmaを使いたいんですが
そういう改造を施した例とかどこかにないでしょうか
HTMLとPHPをなるべく分離したいのです
よろしくお願いします
0534nobodyさん2010/06/17(木) 14:22:14ID:bowe+bRa
>>531
できるんじゃない?

>>532
app/session.phpにコピーすれば、そっちが優先して動くんじゃない?

>>533
Smarty使う方法はたくさん解説されてるから、それを参考にすればよいんでない?
0535nobodyさん2010/06/17(木) 14:37:47ID:???
直訳:ググレカス
0536nobodyさん2010/06/17(木) 16:08:10ID:???
1.3.2のPagenatorで、$pagenator->counter(array('format' => '%count%件'));
とかやって表示件すとか色々出力しているのだけど
Notice (8): Undefined index: limit [CORE/cake/libs/view/helpers/paginator.php, line 543]
Notice (8): Undefined index: limit [CORE/cake/libs/view/helpers/paginator.php, line 545]
ってエラーがでる。
controller側で
$this->paginate = array(
'fields' => 'hoge',
'conditions' => array(...),
'limit' => 10,
'order' => 'id asc',
);
$this->paginate('model');
って、limitの指定をしているのになぜ?
0537nobodyさん2010/06/17(木) 16:44:56ID:???
そのエラーの原因を追えないとか終わってるだろ
もうやめとけ
0538nobodyさん2010/06/17(木) 17:02:15ID:???
わかったlimitが無いんだ!
0539nobodyさん2010/06/17(木) 17:12:17ID:???
そういう理不尽なエラーはしょうもないスペルミスだったりすることが多いな。
0540nobodyさん2010/06/17(木) 17:34:38ID:???
疲れてるとハマるんだよな
0541nobodyさん2010/06/17(木) 18:28:29ID:???
データが来ない。おかしい!ってさんざんモデルだの何だのひっくり返してみて
conditionsがconditonsだったのを発見した時の脱力感・・・
0542nobodyさん2010/06/17(木) 18:29:48ID:???
あるあるw
0543nobodyさん2010/06/17(木) 20:17:00ID:???
そういうのってEclipseとかが教えてくれないの?
0544nobodyさん2010/06/17(木) 20:36:01ID:???
スペルチェックオンにすれば教えてくれそう
0545nobodyさん2010/06/18(金) 09:40:58ID:???
だからCakeはエラー発生箇所が異次元なんだよ。
Strutsの黎明期そっくりだ。
■ このスレッドは過去ログ倉庫に格納されています