【PHP】フレームワーク CakePHP 5ホール目【v1.2】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/12/19(金) 15:52:19ID:ylogT+7chttp://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/
0132nobodyさん
2008/12/26(金) 19:14:18ID:???0133nobodyさん
2008/12/26(金) 19:19:08ID:???過去製作したコードを見たとき、「何でこんなことしてるんだっけ?」っていうのが激減した
0134nobodyさん
2008/12/26(金) 19:50:29ID:???cakeの一番上のディレクトリに、/appと並ぶ形で作ると管理しやすいかな。
PDTとかで管理する上でも。
0135134
2008/12/26(金) 22:09:57ID:???0136nobodyさん
2008/12/26(金) 22:30:57ID:???0137nobodyさん
2008/12/26(金) 22:36:04ID:???マニュアルに書いてある。
http://book.cakephp.org/ja/view/35/
0138nobodyさん
2008/12/26(金) 22:41:30ID:???だめっぽくねcake
0139nobodyさん
2008/12/26(金) 22:55:42ID:???0141nobodyさん
2008/12/27(土) 03:36:46ID:???とかIE7でもおかしいし、firefoxだともっとやばい
なんとならんの?
0142nobodyさん
2008/12/27(土) 08:43:14ID:???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
0144nobodyさん
2008/12/27(土) 13:29:46ID:???0145nobodyさん
2008/12/27(土) 13:52:50ID:???0146nobodyさん
2008/12/27(土) 15:59:16ID:???値段も倍くらい違うし一緒にするのはかわいそう
0147nobodyさん
2008/12/27(土) 18:29:26ID:???http://cakeforge.org/frs/?group_id=23&release_id=433
app/config/の中に、database.php.defaultファイルが見当たらない。
探し方が悪いのか?本家が忘れ物したのかな?
みなさんのところdatabase.php.defaultファイルあります?
0149nobodyさん
2008/12/28(日) 18:51:53ID:???Model::save() で、バリデーションエラーではなく、DBシステムエラーが起こっ
た場合には、同様に戻り値は false になるんだろうか?
もしそうなら、バリデーションの場合とシステムエラーの場合とで、戻り値が
falseの時の処理を分けなければいけないと思うんだけど、どうしたらいいんだろ?
1. save()の前にvalidate()を実行して分岐する。
2. save()のあとにinvalidFields()を実行して分岐する。
みんなはどうしてる?
0151nobodyさん
2008/12/28(日) 20:41:33ID:???うわー、これ知らなかった!
なんだ、DBアクセスの箇所ごとにエラー処理する必要はなかったんだ。
ありがとう。
0152nobodyさん
2008/12/28(日) 22:11:07ID:???うちの場合ちょっと事情があって、onError()関数でを上書きできないので。
0153nobodyさん
2008/12/28(日) 22:33:37ID:???Model::save()の戻り値はやっぱり false だった。
save のあとで invalidFieldsがあるかどうかで分岐すればよさそう。
0154nobodyさん
2008/12/29(月) 03:21:56ID:???適当にDboを継承してonErrorが呼ばれてる部分を実装すればいいのでは?
やりたくないけど。
>>153
DB側がエラーになってる時点で、saveも糞もないと思う。
0157nobodyさん
2008/12/29(月) 13:36:03ID:???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:???本を悪く言ってんじゃなくて、反対
「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:???リスト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所々にいらぬお節介がついて回るよね、cakeは
核になるMVCを無意味に密に結合するような作りにしたりして
素晴らしいお手本があるにもかかわらず何故センスのない変な拡張をいれるんだorz
0162nobodyさん
2008/12/30(火) 23:28:49ID:???0163nobodyさん
2009/01/01(木) 15:27:00ID:???0164nobodyさん
2009/01/01(木) 16:48:24ID:???目次の「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:???末尾に 1 っていうゴミが付いてくるんだけど、なんだろう?
0168nobodyさん
2009/01/02(金) 07:57:24ID:???echo $session->flash();
って書いて返値のtrueを出力してた
0169nobodyさん
2009/01/02(金) 22:49:27ID:???1.2マニュアルのレイアウト崩れ直ったみたい。
ttp://book.cakephp.org/ja/
0171nobodyさん
2009/01/03(土) 02:12:26ID:???再現率は100%じゃないのかねぇ
0172nobodyさん
2009/01/03(土) 02:28:49ID:???今見た限りでは直ってた
どこのページで問題出てる?
0173nobodyさん
2009/01/03(土) 03:49:50ID:???0174nobodyさん
2009/01/03(土) 18:30:22ID:???文字サイズが大きいのですが、文字サイズを小さくするにはどうすれば
よいでしょうか?よろしくお願いします。
echo $form->input('content', array('type'=>"text", 'label'=>""));
0176nobodyさん
2009/01/04(日) 12:47:21ID:???ヒントありがとうございます。
正解みたいですね。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:???0178nobodyさん
2009/01/04(日) 17:01:24ID:???今から先取りして覚えておいて損はない。
0179nobodyさん
2009/01/04(日) 17:31:20ID:???0180nobodyさん
2009/01/04(日) 18:16:16ID:???0181nobodyさん
2009/01/04(日) 18:47:13ID:u5+bOtGZテーブル使った方がはるかに効率的な場合に狙ってやるのは○
テーブルレイアウトしかできないのは論外
0182nobodyさん
2009/01/04(日) 18:48:37ID:???崩れまくり
0184nobodyさん
2009/01/05(月) 02:25:07ID:???0186nobodyさん
2009/01/05(月) 02:48:56ID:???0187nobodyさん
2009/01/05(月) 03:19:39ID:???0189nobodyさん
2009/01/05(月) 20:31:10ID:qd8O6pD60191nobodyさん
2009/01/05(月) 23:41:50ID:???0192nobodyさん
2009/01/06(火) 09:15:09ID:???0193nobodyさん
2009/01/06(火) 09:26:24ID:???まだ壊れてるぞー
0194nobodyさん
2009/01/06(火) 09:36:40ID:UaXiuRrZこの辺りも
1ページ表示で崩れる
0196nobodyさん
2009/01/06(火) 15:48:45ID:???マスターしてから1年後だと思う。1年経つとCakePHPに特化した使いまわし出来るロジックがかなり増える
なので新しいフレームワークが出て、すぐ移行するのは
今まで蓄積したロジックを捨てるに等しいので
CakePHPを8割、新しいフレームワーク2割という感じでフレームワークを使っていこうと思っている
0197nobodyさん
2009/01/06(火) 15:52:53ID:???このバランスが大切だと思う、完全シフトはただのバカと思うし
CakePHP100%たより過ぎも、将来がない
0198nobodyさん
2009/01/06(火) 15:55:30ID:???CakePHPを超えるものは見当たらないから
実質、CakePHP100%でやってる
0199nobodyさん
2009/01/06(火) 16:08:25ID:???せいぜい三日程度のコストしかかからないと思うんだが
独自コンポーネントを移すにしても
0200nobodyさん
2009/01/06(火) 16:30:45ID:???0201nobodyさん
2009/01/06(火) 17:03:32ID:???出来る人との違いを痛感します
0205nobodyさん
2009/01/07(水) 02:09:30ID:???0206nobodyさん
2009/01/07(水) 10:48:13ID:???ttp://www.widgetpress.com
Macユーザー自体少ないのかな。
自分はこれからさわってみます。
0208nobodyさん
2009/01/07(水) 16:47:56ID:???これってトランザクション使わないとまずい?
0209nobodyさん
2009/01/07(水) 16:55:48ID:???詳しいことは他の人に譲るが
記憶が定かなら、確か件数取得(select)して、書き込む(update)だけだったと思うから、トランザクション関係ないはず。
0211nobodyさん
2009/01/07(水) 17:04:53ID:???関連モデルのsaveについて言ってる
公式マニュアルのくせに何の注意書きも無いから内部でうまくやってるのかなと
0212nobodyさん
2009/01/08(木) 09:16:02ID:???0213nobodyさん
2009/01/08(木) 11:52:33ID:???viewで
echo $form->error('Modelname.fieldname', '出力されるエラー表示');
だとうまくいくのに
echo $form->error('Modelname.fieldname');
でmodelの$validateで代入した'message'が表示されません。
これでうまくいくようなことがあちこちに書いてあるのに。
どうやったら'message'を出力できるんでしょうか。
0214nobodyさん
2009/01/08(木) 14:16:03ID:???modelの文字コードが原因でした。
0215nobodyさん
2009/01/09(金) 08:36:44ID:I5IAXkbtモデルクラスのプロパティは、コントローラーをまたがって保持されます?
なにがやりたいかというと、
モデル内でファイルを読み込んで、そのデータをプロパティに保持
(DBを使わないモデル)
他のコントローラーからそのモデルクラスのプロパティを参照したい
personモデル
var $sex;
function loadfile() { ファイルを読み込んでプロパティをセット }
function getSex() { 性別を返す }
peopleコントローラー
getSex()でデータ取得
profileコントローラー
getSex()でデータ取得
各コントローラーで、必ず毎回ファイルを読み込まないとだめでしょか?
0216nobodyさん
2009/01/09(金) 08:42:51ID:???if(isSet(ClassName::sex)){
//ファイル読み込み
}
一応いっとくとプロセスまたがっては無理だよ
0217nobodyさん
2009/01/09(金) 08:43:21ID:???0218nobodyさん
2009/01/09(金) 08:51:49ID:???できなくはないんですね
基本的には、CakePHPの流儀(というかPHPフレームワーク?)としては、
コントローラーごとに毎回データを読む(DB使う場合も)
という感じでしょうか
あとはキャッシュ機能を使うみたいな
0219nobodyさん
2009/01/09(金) 08:54:52ID:???ちょっと心配なんですが、キャッシュ機能使えってことでしょうか
セッションに保存するのはなんか違う気がしますし
0220nobodyさん
2009/01/09(金) 09:02:28ID:???というか、そもそも、people と profile が関連づけられていれば、profileコントローラーは不要だと思うが
(よく読み込まずに答えたから、見当違いだったらすまん)
0221nobodyさん
2009/01/09(金) 09:02:36ID:???0222nobodyさん
2009/01/09(金) 09:03:29ID:???DBから読むかファイルシステムから読むかの違いでしょ
0223nobodyさん
2009/01/09(金) 09:05:38ID:???0224nobodyさん
2009/01/09(金) 10:12:30ID:???Userモデル(Personモデル)
Usersコントローラー
があって、
/users/index で、Usersリストを表示する
/users/view で、Userプロフィールを表示する
みたいな
質問を読むと、根本的な問題のような気がする
(Peopleモデルというのがイメージできないし、Personsコントローラーがあれば、Profilesコントローラーは要らなそうな気がする)
0225215
2009/01/09(金) 11:09:25ID:???例は適当です…
具体的には、ファイルからデータを読み込ませ、
そのデータを元に、各コントローラーでフォームを自動構築しようとしています
(入力内容が毎回可変なため、このようにしています)
ファイルには各コントローラーにまたがる入力項目のデータが含まれていて、
各コントローラーでは、そのデータを読み込んでフォームを構築します
この場合、コントローラーごとにファイルに何回もアクセスする
ということでいいんでしょうか?
(今のところ、データベースは一切使いません。)
0226215
2009/01/09(金) 11:16:27ID:???商品名:text
価格1:select
価格2:select
(価格の数は可変)
ファイル(price)
1000
2000
3000
(可変)
モデル
product
price
コントローラー
productController
priceController
ビュー
product(商品の選択画面)
ファイルを読み込んで商品名を選択する画面
price(価格の入力画面)
価格のデータ数分だけフォームを入力
コントローラーを分けているのは、もう少し複雑で、他のデータなども混じるためです
うまく説明できない・・・・
0227215
2009/01/09(金) 11:23:38ID:???productにまとめると肥大化&実際に価格データ専用のアクションも必要になるため、
コントローラーをわけてます。
うまく説明できないのですが、
とりあえず、コントローラーまたぐならファイルに毎回アクセスしろってことですかね
0228nobodyさん
2009/01/09(金) 11:37:58ID:???0229nobodyさん
2009/01/09(金) 11:38:29ID:???0230215
2009/01/09(金) 11:54:38ID:???コントローラーは共通じゃないです
モデルは一部共通ですね
となるとビヘイビア?
どのみち、普通にやるとなれば毎回ファイルアクセスは発生ですね
後で外部クラス化を考えることにします…
0231nobodyさん
2009/01/09(金) 12:05:39ID:???コンポーネントかエレメントで出来るだろ
0232nobodyさん
2009/01/09(金) 12:12:39ID:???そうだとすると
「コントローラーごとにファイルにアクセスで良いか」というのは、Yesということになるね
(ただし、正確には、ControllerではなくModelだけど)
ProductとPriceがHasManyの関係にあるのなら、なるべくDBを使うべきでしょう。
(もしかしたらHABTMかもね)
■ このスレッドは過去ログ倉庫に格納されています