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

【PHP】フレームワーク CakePHP 4ホール目【v1.2】

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2008/06/20(金) 01:24:40ID:???
http://www.cakephp.org/

10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/

マニュアル日本語化
http://www.cakephp.jp/doc/

Cookbook :: 1.2 Collection :: マニュアル
http://book.cakephp.org/ja

日本語フォーラム
http://cakephp.jp/modules/newbb/

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

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

【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/
0859nobodyさん2008/12/07(日) 20:45:28ID:???
公式ドキュメントのPDF版が欲しい。
あれ印刷してまとめれば立派な本だよ
0860nobodyさん2008/12/07(日) 21:01:21ID:???
>>858さん、 >>851です。
1.CakePHPガイドブック(CakePHP1.1 安藤、新原、堂園 07/10/25)
2.CakePHP徹底入門(CakePHP1.2 イージーゲート 08/8/29)
のそれぞれの特徴をお知らせ頂けると助かります。
また、>>858さんのお勧めがあれば、よろしくお願いします。
ちなみに「CakePHPポケットリファレンス」は購入の予定です。
0861nobodyさん2008/12/07(日) 22:03:18ID:???
イライラ
0862nobodyさん2008/12/07(日) 22:23:30ID:???
イライラすんなよ。どうせ上司から本買ってもいいけど、ムダ使いは許さん。
と厳しく言われてんだろう。わかってやれよ。
0863nobodyさん2008/12/07(日) 22:50:18ID:???
初心者のうちは片っ端から買うしかないよ。
昼飯何回か我慢すれば買えるでしょ。
0864nobodyさん2008/12/07(日) 22:58:55ID:???
CakePHP1.2の公式マニュアルのPDFって
どこだっけ?

いや、まだ作りかけなんだろうってのはわかるけど
1.2の前の作りかけバージョンの印刷物があってね。
そのPDF版をとっておきたいなと。
0865nobodyさん2008/12/08(月) 00:02:09ID:???
あるコントローラで値が決定し、その値は、別のコントローラや、ビュー、エレメントで使われる可能性がある
グローバル的な値の場合、セッションに入れるのが定石でしょうか?

CakePHP でそういったグローバル変数的な値を管理するのに勧められる方法があれば
教えてください。
0866nobodyさん2008/12/08(月) 10:56:58ID:???
>>865
俺なら、コンポーネントにしまい込む
ビューへ渡すときは、コントローラ経由で
08678512008/12/08(月) 16:16:15ID:???
>>860
おすすめは無いよ。とにかく全部読むといい。
あとは、作って作って・・・慣れだな。
0868nobodyさん2008/12/08(月) 16:26:31ID:???
同意。慣れ、重要。
何か作れば、そのうち、cake流のやり方が身につく。
最初は大変だけど、慣れれば楽しくなってくる。
0869nobodyさん2008/12/08(月) 17:07:00ID:???
cakephpってsubmitの値送られないのなんで?
0870nobodyさん2008/12/08(月) 17:07:56ID:???
俺はマニュアルとAPIと行ったり来たりして覚えたな。いや覚えたっつうかずっと行ったり来たりだけど。
マニュアルもかなり充実してていいけど、
APIの方見たら、ああこんなメソッドもあったのかみたいなのもあるし、なによりcakeの全てが出てるわけだし。
0871nobodyさん2008/12/08(月) 17:12:43ID:???
1.2で$form->submit('hoge',array('name'=>'aaa','value'=>'bbb');
とか書いて押してみても、submitの値が送信されてないんだけど。
0872nobodyさん2008/12/08(月) 17:20:06ID:???
>>871
array('name'=>'data[aaa]',value='bbb')
で行けると思うけど。
0873nobodyさん2008/12/08(月) 17:58:48ID:???
できたありがとう
dataなんてつけるんだ
マニュアル見ても見つからなかった
0874nobodyさん2008/12/08(月) 19:02:10ID:???
確認画面とかのビューで、アソシエーションが定義された別モデルのデータを簡単に取得する方法ってある?
コントローラでデータ自体のセットはbakeがデフォルトで出力してくれるからいいけど。
ビューでforeachで探すしかないかな?
APIでidとモデル名入力する感じで取得したいんだけど

マニュアルもAPIリファレンスも落ちてるみたいだし
0875nobodyさん2008/12/09(火) 17:29:11ID:???
パスワードとかメールアドレスの確認入力みたいな
二つのフィールドのデータが同じかどうかをチェックする組み込みバリデーションルールってないんだね
なんでだろ
簡単なやり方ってあるの?
0876nobodyさん2008/12/09(火) 17:49:15ID:???
>>875
さくっと自作できるから
0877nobodyさん2008/12/09(火) 17:50:50ID:???
alphaNumericってほとんど正常に動作してなくない?
全角通ったり半角しかないのにエラーでたり
0878nobodyさん2008/12/09(火) 17:53:17ID:???
>>876
モデルに定義出来る?
0879nobodyさん2008/12/09(火) 18:18:45ID:???
CakePHPを触ってみているものです。

10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/

をver 1.2 RC3で実行しようとしています。
http://〜〜/10min_bookmark/
という形でアクセスし、初期画面は表示され、DBの設定もしました。
その後、
app/models/item.php をつくり、
app/views/Items ディレクトリを作り、
app/controllers/items_controller.php を作り、
それぞれを動画通り記述したのですが、

DBの設定前などから現れていた以下のような画面しか出ません。

Release Notes for CakePHP 1.2.0.7692 RC3.
Read the release notes and get the latest version
 :

ver 1.2ではこの他にしないといけないことがあるのでしょうか?
0880nobodyさん2008/12/09(火) 18:20:30ID:???
http://〜〜/10min_bookmark/items
ここへいけ

app/config/route.php
これを編集しろ
てかマニュアル読め
0881nobodyさん2008/12/10(水) 12:44:02ID:???
cookieコンポーネント使って無くても
1度ログインするとブラウザ落としてまたアクセスしても認証状態が保たれてるんだけど
なんでだろう?
1.2
0882nobodyさん2008/12/10(水) 13:40:53ID:???
Security.levelは?
0883nobodyさん2008/12/10(水) 13:51:31ID:???
lowになってた
highにしたら出来た
ありがとう
0884nobodyさん2008/12/12(金) 01:20:56ID:???
Security.levelがhighだと、
ページアクセス→サーバー側でセッションID変更→ページ読む前に停止
→サーバーから送られてきた新しいセッションIDを受け取らない
→セッションが保たれない。
って問題が昔あったけど、これ改善された? 仕様といえば仕様であるが、
ページ読み込み連打するってことよくあるだろう?
0885nobodyさん2008/12/12(金) 04:11:49ID:???
いま試したらログイン画面に飛ばされた;
こりゃhighは使い物にならんな。
0886nobodyさん2008/12/12(金) 13:15:34ID:???
sqlite3対応はどうなってますか?
0887nobodyさん2008/12/12(金) 13:43:18ID:???
なんとなく全体を理解するのにはガイドブックがいいんじゃないの。
1.1で覚えたなら1.2での違いはポケットリファレンスなりネットなりを見ればすぐ理解できる。

アマゾンにもそこそこレビューついてるから自分に近い感性の人が勧めているのを選んでもいい。
0888nobodyさん2008/12/12(金) 19:13:28ID:???
アクセスするパスの構造なんですが、業務系アプリのような場合、
マスタ保守系、入力系、問い合わせ系のような分類でパスをかえたいんですが、
CakePHP では、そういう分類をもたせる事はできないでしょうか?

例えば /master/employee, /master/supplier, /master/customer
の配下にそれぞれ、新規、編集、削除を用意する

同じように, /entry/order, /entry/ship のように…。

全部 controllers の中での1次元で管理するしかないでしょうか?
0889nobodyさん2008/12/12(金) 19:47:38ID:???
貴方にマニュアルを読ませる事は出来ないでしょうか?
0890nobodyさん2008/12/12(金) 20:06:04ID:???
>>888
Routesの設定 :: 環境設定 :: CakePHPによる開発 :: マニュアル :: 1.2 Collection :: The Cookbook
http://book.cakephp.org/ja/view/46/Routes%E3%81%AE%E8%A8%AD%E5%AE%9A

結構ややこしいんで、実は自分もよく分かってないんだけど。
0891nobodyさん2008/12/13(土) 07:24:42ID:???
CakePHP では htmlspecialchars() を h() と短縮できるのだが……、
ちょっと気になることがあって、該当するソースを確認すると、
下記のようになっていた。

return htmlspecialchars($text);

配列を渡すと、その値をすべて処理してくれるのは
便利だけど、htmlspecialchars() はデフォルトのまま
使っているから、シングルクォートは変換されない
(ENT_COMPACT になる)。これはちょっと危険な気が
する。といって、コア部の cake/basics.php を直しても、
バージョンアップのたびに対処しなきゃいけないし、
むしろ忘れてしまう可能性大。
0892nobodyさん2008/12/13(土) 09:27:11ID:???
シングルクォート(ってか')の変換されると困る場合もあるから
必要な人は自分でヘルパー作ればいいだけでは
0893nobodyさん2008/12/13(土) 09:27:59ID:???
'って書いたら変換されちゃった
0894nobodyさん2008/12/13(土) 09:34:57ID:???
>>891
http://api.cakephp.org/basics_8php-source.html
0895nobodyさん2008/12/13(土) 09:46:12ID:???
>>891
1.2ではENT_QUOTESとcharset渡すように修正されている
0896nobodyさん2008/12/13(土) 10:07:11ID:???
むしろscaffoldがh()で出力されてないのがちょっと。
0897nobodyさん2008/12/14(日) 01:36:39ID:???
なんか最近cakephp.orgが重くてページが開かないことが多いなあ。
マニュアル首っ引きでないと作れないからツラい。
うまいことマニュアルを保存しておく方法ないかな。
0898nobodyさん2008/12/14(日) 12:07:36ID:???
ウェブサイト保存ツールなんていくらでもある
0899nobodyさん2008/12/15(月) 19:20:01ID:???
アソシエーションって、自分で joins 書くのに比べてメリットってある?
アソシエーションの定義をちまちま書くより joins を自分で書いたほうが楽な
気がしてるんだけど、アソシエーションを作るメリットがあれば
教えて。
0900nobodyさん2008/12/15(月) 19:23:50ID:???
habtmとか典型的な例はcakeにやらせる方が楽
09018512008/12/15(月) 21:09:07ID:???
>>899
俺は joins の使い方がいまいちわからないから、cakephpのアソシエーションに頼ってる。
0902nobodyさん2008/12/15(月) 21:09:51ID:???
↑ 851 となんにも関係ありません。間違えました。
0903nobodyさん2008/12/15(月) 22:31:16ID:???
3つのテーブルを hasOne アソシエーションでつなぐ事ってできますか?

例として、

テーブル AAA
コードA, コードB, コードC、その他項目

テーブルA
コードA, 名前A

テーブル B
コードB, 名前B

テーブルC
コードC, 名前C

とあって、テーブルAAA と、テーブルA, テーブルB, テーブルC をつないで、
名前A, 名前B, 名前C を取得したいんですが、複数テーブルを hasOne する方法が
よくわからなくて。
0904nobodyさん2008/12/15(月) 22:58:07ID:???
var $hasOne = array( 'A', 'B', 'C' );
でもいいし、
カスタマイズしたいなら
var $hasOne = array( 'A' => array('hoge' => 'fuga',
                      'hoge' => 'fuga'),
              'B' => array('hoge' => 'fuga',
                      'hoge' => 'fuga'),
              'C' => array('hoge' => 'fuga',
                      'hoge' => 'fuga') );
でもいい。
0905nobodyさん2008/12/16(火) 05:22:00ID:???
パフォーマンス的には自分でJOINした方が早い場合が多い
アソシエーションは親のキーで子のデータを別のSQLで呼び直してる
0906nobodyさん2008/12/16(火) 11:12:03ID:???
DBエラーなどが起こったときの画面があるけれど、あれを何か別の画面に差し
替えることってできないだろうか?
単にデバッグレベルを下げるのじゃなくて、他の画面と統一されたデザインの
画面にエラーを出力するようにしたいのだけど。
0907nobodyさん2008/12/16(火) 11:34:07ID:???
>>906
cake/libs/view/errors フォルダの中身をまるごと自分のviewに入れる。
APP/view/errors/missing_table.ctp ..とか。
で、あとは好きなようにできるはず。
0908nobodyさん2008/12/16(火) 11:44:07ID:???
>>907
ありがとう!試してみます。

質問ついでで申し訳ないのだけど、DBがエラーを起こした場合(バリデーショ
ンではなく、DBそのものの物理的なエラー)に表示されるエラーページって、
どのページなんでしょう?

missing_action.ctp とかいろいろあるけれど、DBエラーに対応するページが分
からない。
0909nobodyさん2008/12/16(火) 13:55:19ID:???
>>908
物理的なエラーの時の表示がどんな表示なのかわからないけど、
missing_connection.ctp // DB接続失敗
missing_table.ctp // テーブルが見つからない
このどっちかじゃだめ?
0910nobodyさん2008/12/16(火) 14:53:25ID:r+TWFAeS
テーブルが3つ以上の結合ならアソシエーションよりもsql文の方がよくない?発展させる必要があった場合は複雑になりやすくない?
0911nobodyさん2008/12/16(火) 17:16:28ID:???
RC4もうすぐかな?
0912nobodyさん2008/12/16(火) 19:10:08ID:???
cakephp 1.2 の model::beforeFind のコールバックって

自分のモデル内で、
function beforeFind(&$model, $query)
{
//コード
}

じゃ駄目なのかな?

Missing argument 2 ってエラーになるんだけど、なんでだろ。
0913nobodyさん2008/12/16(火) 19:27:30ID:???
すいません、解決しました。

function beforeFind(&$query)

が正解のようでした。

ところで、今、http://book.cakephp.org/ja にアクセスすると、firefox だと、自動転送がループしています
って接続できませんが、うちだけでしょうか。
0914nobodyさん2008/12/16(火) 19:29:26ID:???
>>912
関数の定義が重複しています
0915nobodyさん2008/12/16(火) 19:53:56ID:???
>>913
何を今さら、昔からだろうが
0916nobodyさん2008/12/16(火) 19:57:03ID:???
Firefoxだがループしないけど
0917nobodyさん2008/12/16(火) 20:07:34ID:???
俺もループした
URL末尾につく全角文字列を消すとアクセス出来るけど
0918nobodyさん2008/12/16(火) 20:10:16ID:???
全角消してもループするところもあるな
どうなってんだ

てかマニュアルDLして使いたいわ
重過ぎて使えない事も多いし
0919nobodyさん2008/12/16(火) 20:15:12ID:???
公式サイトがこんな体たらくとかw
0920nobodyさん2008/12/16(火) 22:45:16ID:???
ツール使ってマニュアルをダウンロードしてみた。
最初/ja以下を取って来ようとしたらエラいファイル数になったので、
ja/tocとja/viewの中身だけ持ってきました。あとCSSをいくつかと。
ローカルで見ると早くていいわー
0921nobodyさん2008/12/16(火) 22:55:33ID:???
どのツール使った?
0922nobodyさん2008/12/17(水) 00:38:26ID:???
おらあMacなんでSite Suckerってやつです。
0923nobodyさん2008/12/17(水) 06:08:04ID:???
IEのオフライン機能でいいのでは
0924nobodyさん2008/12/17(水) 11:18:00ID:???
またbook落ちてるな・・・
俺もダウンロードしとけばよかった・・・
0925nobodyさん2008/12/17(水) 13:43:33ID:???
まだループ中
どこが管理してんの?
0926nobodyさん2008/12/17(水) 14:16:17ID:???
レイアウトが崩れてるページも多いしどうなってるんだ
管理出来ないならwikiサービスにでも書いとけよw
0927nobodyさん2008/12/17(水) 14:51:11ID:/y/VN6Cv
これ以上多機能にすると重くなるリファクタリングだけやってくれ
0928nobodyさん2008/12/17(水) 15:26:29ID:???
個人的にCakeにはまだまだ強力な機能の追加余地があると思う
てか開発参加してー
日本語しか出来ないけど
0929nobodyさん2008/12/17(水) 17:23:30ID:???
>>927
機能の多さと重くなるかどうかはあまり関係無い。
0930nobodyさん2008/12/17(水) 17:24:37ID:???
根幹機能については当然重くなるぞ
ライブラリ増やすとかは問題無いが
0931nobodyさん2008/12/17(水) 17:38:44ID:???
マニュアルまだ見れねー
どんなカスが管理してんだ
0932nobodyさん2008/12/17(水) 17:43:44ID:???
ソースの自動生成はsymfonyのが上だけど、
細々した機能はCakeのが多機能になってきたねー

AuthとかACLとかお手軽すぎるw
フレームワークなしでは開発できなくなりそう・・・
0933nobodyさん2008/12/17(水) 18:03:29ID:???
1.2は特に細かいけど便利なのがついてるので助かる。
パン屑とかツリー表示とか、おいおい前に俺が自作しちゃったライブラリはどうしてくれるんだよ。
ってのが多いわ。
0934nobodyさん2008/12/17(水) 18:08:10ID:???
マニュアルさっきからずっと見られるぜ
WindowsXPSP2+Firefox3.0.4
IE6でも見られる
0935nobodyさん2008/12/17(水) 19:30:18ID:???
いやまだループしてるな
ループするページが変わっただけ
0936nobodyさん2008/12/17(水) 19:32:30ID:???
パンくずとかHTML化してくれるだけじゃん
そんなんで多機能とか言ってるのが悲しすぎるし
cake本家の開発力を疑う
0937nobodyさん2008/12/17(水) 19:48:48ID:???
FireFox3.0.4 XP SP3
マニュアルのいくつかのページでこうなる

自動転送がループしています
このアドレスへのリクエストに対するサーバの自動転送設定がループしています。
リクエストされたリソースの取得を中止しました。このサイトではリクエストの自動転送がループしています。
* このサイトで要求されている Cookie を無効化またはブロックしていないか確認してください。
* 注意: サイトによる Cookie の使用を許可しても解決しない場合、これはご利用のコンピュータではなくサーバの設定に問題があると思われます。
0938nobodyさん2008/12/17(水) 19:52:36ID:???
>>936
もしかしてパンくず以外何も知らないのか?
0939nobodyさん2008/12/17(水) 19:55:33ID:???
2.xシリーズではさらに機能追加するらしいね。
どんなのが増えるんだろ・・・

どんなの欲しい?
0940nobodyさん2008/12/17(水) 19:58:10ID:???
sqlite3正式対応。
0941nobodyさん2008/12/17(水) 20:18:30ID:???
Railsのlock_version相当機能は欲しいな
0942nobodyさん2008/12/17(水) 20:35:25ID:???
>>938
標準でそれ以外にパンくず生成に役立つライブラリがあるの?
0943nobodyさん2008/12/17(水) 21:28:07ID:???
役に立たないライブラリ言ってみ。

それでお前がライブラリを知っているのかどうかもわかるしw
0944nobodyさん2008/12/17(水) 21:47:21ID:???
役に立たないライブラリがあるんじゃなくて
役に立つライブラリが少な過ぎるっていってるの
0945nobodyさん2008/12/17(水) 21:56:58ID:???
じゃあ、お前はどんなライブラリがほしいのさw
0946nobodyさん2008/12/18(木) 12:24:48ID:???
>>945
それは既に独自に作って自分の競争力にしてるんで言えないな

今日もマニュアルはループ中
0947nobodyさん2008/12/18(木) 12:50:24ID:???
必死さが伝わるよい返しですね
0948nobodyさん2008/12/18(木) 12:56:08ID:???
マニュアルループしてる奴は自分の環境疑った方がいいのでは
他のコミュニティでも話題になってないだろ
0949nobodyさん2008/12/18(木) 15:00:40ID:???
あちら側でリダイレクトしてるんだから、「自分の環境」ではどうにもならない話だと思うけど。

英語版とかは特に問題なく見れるし、キャッシュがぶっ壊れてるとかじゃないのかなあ。
0950nobodyさん2008/12/18(木) 15:10:12ID:???
Cakeマニュアルでしか発生してないし
リダイレクトのルール設定が間違ってるんじゃないの?
ループしてる奴何人くらい居る?

一人目ノ
0951nobodyさん2008/12/18(木) 15:24:26ID:???
マニュアルのトップページだけ開いてループなんておこらないなー
何言ってんだろと思ってたら
3 CakePHPによる開発に移動しようとしたらループ発生したんだぜ・・・

Firefox3.0.4
0952nobodyさん2008/12/18(木) 15:27:12ID:???
ループするとことしないとこあるね
0953nobodyさん2008/12/18(木) 16:52:08ID:???
こういうのは見れる
http://book.cakephp.org/ja/view/171

デフォルトのタイトル名がURLに含まれるやつは、リダイレクトの時にデコードされてるからかリダイレクトがうまくいかないね
0954nobodyさん2008/12/18(木) 16:54:09ID:???
>>951
俺も試したらなったよ。

自動転送がループしています
このアドレスへのリクエストに対するサーバの自動転送設定がループしています。
0955nobodyさん2008/12/18(木) 16:56:11ID:???
と思ったらフォーラムじゃあ既出か
0956nobodyさん2008/12/18(木) 21:23:43ID:???
CakePHP のあるページから、別のページを別画面(ブラウザ)に表示して、
そこから元のページのある部分の
09579562008/12/18(木) 21:25:01ID:???
↑途中で送信してしまいました。すみません。

CakePHP のあるページから、別のページを別画面(ブラウザ)に表示して、
そこから元のページのある部分の値をかきかえたい、という事がやりたいのですが、
CakePHP での何かよい方法はありますか?

Javascript をゴリゴリ書くしかないでしょうかね。
0958nobodyさん2008/12/18(木) 21:41:14ID:???
もうやだこのキモフレームワーク><
レス数が950を超えています。1000を超えると書き込みができなくなります。