【PHP】フレームワーク CakePHP 4ホール目【v1.2】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/06/20(金) 01:24:40ID:???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/
0140nobodyさん
2008/07/19(土) 11:23:27ID:???自分は
セッションとクッキーの連携プレーを使ってるよ。
キャリアって携帯でしょ?
携帯の場合はセッションキーをクッキーに埋め込むのよ。
0141nobodyさん
2008/07/19(土) 13:45:27ID:???0143nobodyさん
2008/07/19(土) 16:24:22ID:jBy/EgFSモデルを使いたいコントローラメソッド内で
App::Import('Model', $model_name);
$model = new $model_name();
$model->findAll();
した方がいいね
どのコントローラメソッドでも共通利用することの多いモデルだけ
$usesに入れた方がよくね
じゃないと極端な話、一つのコントローラで利用するモデルが30個あった場合
$uses=arrray('A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12','A13','A14'・・・・・・・・・)
てなると$usesだけで管理するのしんどいよ。
0144nobodyさん
2008/07/19(土) 16:28:28ID:???どんなシステム?レスポンスどうなの?
0145nobodyさん
2008/07/19(土) 16:39:57ID:jBy/EgFSA8のようなアフィリエイトサイトだよ。
レスポンスはアソシエーションを
その都度 bindModelする方法なら悪くはないよ
重くなるとしたらSQL関連だと思うから後はcacheに頼る
0146nobodyさん
2008/07/19(土) 16:45:53ID:???0147nobodyさん
2008/07/19(土) 16:58:22ID:jBy/EgFS30個あるモデルは使用するDBテーブルは同じでバリデートの内容が若干違うので
モデルを複数分けした。
なのでモデルの数だけコントローラを増やすというのもなあ・・・
ページ構成もおかしくなるし
0148nobodyさん
2008/07/19(土) 17:03:55ID:jBy/EgFSモデルの数はバリデートのケース分、増えて行ってる
0149nobodyさん
2008/07/19(土) 17:08:42ID:jBy/EgFSコントローラが1に対してもモデルが30になる
0150nobodyさん
2008/07/19(土) 17:23:07ID:jBy/EgFS管理的にも$usesで管理するよりも
コントローラメソッドの先頭でApp::Importを宣言する方が管理しやすい気がする
デメリットはコーディング量が少し増えるくらいかな
でも、どのコントローラメソッドでも使うモデルだけは$usesに入れるから
そんなにコーディング量は増えないかな
0151nobodyさん
2008/07/19(土) 17:41:39ID:???そもそも、バリデートの数の分だけ
モデルを増やすのがおかしくね?
モデルのsave()で、バリデートするかしないかのフラグがあるだろ?
これって考え方を変えれば、バリデート1(データチェックする)、
バリデート2(データチェックを一切しない)という二つのバリデートと考えられる。
だからバリデート3(一部だけチェックする)ってのも、一つのモデルに入れてしまうのもありと思うが。
あとは、Model->save()の前に、Model->バリデートタイプ = '一部チェック';
なんてやっておいて、Modelのvalidateメソッドあたりで、バリデートタイプをみて
チェック項目を変更すれば良いんじゃね?
Modelのvar $validate、やったことないけど、
コードの中からでも変更できるんじゃね?
0152nobodyさん
2008/07/19(土) 17:45:08ID:???なんか変な感じ。
0153nobodyさん
2008/07/19(土) 17:51:24ID:???いや、使ったこと無いし情報も見つからなかったからよく知らんが。
ちなみに非推奨になったloadModel関数ではなく、
コントローラのメソッドのloadModel()だから。
0154nobodyさん
2008/07/19(土) 17:55:57ID:jBy/EgFS$validate1
$validate2
$validate3
という風に複数使えれば
バリデート分モデルを増やす必要は無いけど
バリデートタイプをみてチェック項目を変更ていうのは
変更項目が多いとコードが複雑に肥大化するのがなあ・・・
0155nobodyさん
2008/07/19(土) 18:04:40ID:???やろうと思えば、できるとおもうけど?
コントローラで、$model->save()呼び出し前に
$model->validate_type = 'type1';
モデルのどこかで、$this->validate = $this->{'validate_' . $this->validate_type};
そうすりゃ、$validate_type の条件でチェックしてくれるよ。
具体的にどこのメソッドでやるのがふさわしいかは
ちょっとやってみないとわからないけど。
0156nobodyさん
2008/07/19(土) 18:05:53ID:???そうすりゃ、$validate_type1 の条件でチェックしてくれるよ。
0157nobodyさん
2008/07/19(土) 18:19:45ID:jBy/EgFSその方法で出来るのなら、ちょっと試してみます
0158nobodyさん
2008/07/19(土) 18:24:34ID:jBy/EgFSApp::Importよりも、Controller::loadModel()の方がよくね
理由は何でしょうか?
どう違うのですか?
0159nobodyさん
2008/07/19(土) 18:36:14ID:???$usesの代わりと考えるのならば、
$usesで指定したのと同じ状態になるのが良い。
App::Importは単にクラスを読み込むだけ。
$this->Model にインスタンスを生成したりしない。
コードをざっと見ただけの意見だが、
コントローラの初期化処理で、$usersを見て値が入っていれば、
Controller::loadModelを呼び出してモデルを生成している。
loadModelはクラス生成以外にもなんかやってる。
だからloadModelを使ったほうがトラブルが少なくなりそうだと思った。
でも使ったことは無い。loadModelは外部から使うべきものじゃないかのうせいもある。
(普通は使うべきじゃないのなら _loadModelになっているはずだとは思うが)
0161nobodyさん
2008/07/19(土) 19:07:40ID:jBy/EgFSなるほど、よくわりました。
_loadModelてのは何ですか?
0162nobodyさん
2008/07/19(土) 20:12:00ID:???loadModel()に、_が付いていない以上、普通に呼び出して良い(ことが窺い知れる)
http://api.cakephp.org/class_controller.html
0163162
2008/07/19(土) 20:14:27ID:???特定のactionでしか使わないModelなんかは、これで動的に呼んだ方が良さそうだね。
修正しよっと
0164nobodyさん
2008/07/19(土) 23:06:40ID:jBy/EgFSコントローラ内でattach関数を使って読む込むyamlファイルを動的に選択させることで
モデルを増やさずにバリデーションyamlファイルだけ増加させることで解決できた
0165nobodyさん
2008/07/19(土) 23:10:53ID:jBy/EgFS0166nobodyさん
2008/07/20(日) 07:59:18ID:???フレームワークを使っている人が作っている感がでてる。
0167nobodyさん
2008/07/23(水) 16:23:08ID:???0168nobodyさん
2008/07/23(水) 20:47:49ID:???しかもsymfonyの遅い原因だったPropelも今度のバージョンで速くなったし
なんだかなー。
0170nobodyさん
2008/07/23(水) 22:31:35ID:bVhJ1Ly70171nobodyさん
2008/07/23(水) 22:32:47ID:pE/1LCdwチューンナップが進むのを期待するだな。
0172nobodyさん
2008/07/23(水) 22:39:51ID:???モッサリという感じ。
1.1はサクサクだったのに残念。
0173nobodyさん
2008/07/24(木) 01:13:17ID:v8PYU5tTデバッグモード解除してもモッサリするようなら
SQLがらみ、bindmodelで上手にやれば問題なし
0174nobodyさん
2008/07/24(木) 02:22:41ID:???0175nobodyさん
2008/07/24(木) 13:44:45ID:???0176nobodyさん
2008/07/24(木) 13:56:02ID:YLl3rq+tttp://pc11.2ch.net/test/read.cgi/php/1187333485/86
0177nobodyさん
2008/07/24(木) 18:43:29ID:???1.2のbetaの時にくらべ、デバッグ情報の量が
かなり増えているから。
0178nobodyさん
2008/07/24(木) 19:04:07ID:???Cakeが初めてのフレームワークでも、すんなり移れるフレームワークってないですか??
symfonyとかサッパリ;;
0179nobodyさん
2008/07/24(木) 19:13:11ID:???0180nobodyさん
2008/07/24(木) 19:43:19ID:???URLにセッションIDを埋める場合って
session.php内のuse_trans_sidを1にしないと使えないの?
PCサイトとプロジェクトが共通だから、なるべく共通的なところは
いじらずにやりたいと思うのだけど。
0181178
2008/07/24(木) 20:16:32ID:???さすがにライトすぎるというか;
使ってもみないで言うのもなんですが・・・
CIとかも流行ってきてますね。ちょっと気になる。。
0182nobodyさん
2008/07/24(木) 21:26:03ID:???そんなスレ違いなあなたにはここをオススメっ
【PHP】フレームワークについて語るスレ10【総合】
http://pc11.2ch.net/test/read.cgi/php/1202521438/
0183nobodyさん
2008/07/24(木) 23:50:55ID:???0184nobodyさん
2008/07/25(金) 18:19:46ID:???読み直し(=WAIT)が発生しているだけだろ?
謎でもなんでもない。
0185nobodyさん
2008/07/26(土) 16:44:09ID:???オイオイ、いつまでRCだすんだよ;
0186nobodyさん
2008/07/27(日) 10:13:15ID:???0187nobodyさん
2008/07/27(日) 21:27:08ID:???$ ./cake bake all
で、全部のテーブルの基本的な画面を一気に作ってくれんの?
順番に数字を指定するのが面倒・・・
MCVを対話式で一つ一つ作るよりはマシになってるけど。
テーブルの数が多いと、大変。しかも、いちいちtestのを
作るか?とか聞かないで欲しい。
0188nobodyさん
2008/07/29(火) 02:42:26ID:ab6DF8xC長くお付き合いできる方募集します。
https://hp.submit.ne.jp/i/13283/
0190nobodyさん
2008/07/29(火) 19:27:35ID:???www.cakephp.orgもbook.cakephp.orgもダメだ…orz
0191nobodyさん
2008/07/29(火) 20:10:31ID:2mZftY9A0192nobodyさん
2008/07/29(火) 20:24:56ID:???0193nobodyさん
2008/07/30(水) 19:42:29ID:g+nhVb89Database design and CakePHP
http://bakery.cakephp.org/articles/view/database-design-and-cakephp
0194nobodyさん
2008/07/30(水) 21:17:11ID:???0195nobodyさん
2008/07/30(水) 23:23:13ID:???「あるタグが含まれる投稿の一覧」を得るにはどうすればいいですか?
投稿だけじゃなくて付帯するタグのデータも引っ張ってきて欲しいんですが
・投稿のMemoタグをクリック
→Memoタグが付けられたPostの全情報を一覧表示
Title: メモその1 / Body: けーき始めました / Date:2008-07-28
Tag: CakePHP Memo PHP
Title: メモその2 / Body: けーきのためにPHP勉強中 / Date:2008-07-29
Tag: Memo Ruby
Title: らしくないメモ / Body: 内容は何でもイイんだけど / Date:2008-07-30
Tag: C++ Dlang Memo
↑こんな風に表示できるようにデータが欲しい
今はqueryを二回に分けて直発行でやってるんですが、もうちょいマシな方法はないものかと
0196nobodyさん
2008/07/31(木) 13:23:35ID:???commons.php内の関数から同じcommons.php内の関数を呼ぶにはどのように記述すればいいのでしょうか?
$this->関数名だと
Using $this when not in object context とエラーが出てしまうので・・・。
0198196
2008/07/31(木) 15:54:35ID:???自己解決しました。
Commons::関数名で呼び出すことができました。
(なにもつけなかった場合はundefined functionが出ました)
0199nobodyさん
2008/08/01(金) 00:59:56ID:CpiiU14kって認識でOK?
0201nobodyさん
2008/08/01(金) 16:36:12ID:???0202nobodyさん
2008/08/01(金) 17:12:36ID:???0203nobodyさん
2008/08/02(土) 11:01:20ID:???foreach ($部署['社員'] as $社員) {
echo $社員['氏名'];
echo $社員['性別']['性別'];
...
}
こんな感じになるの??
0204nobodyさん
2008/08/02(土) 11:52:56ID:???社員.php
http://example.com/社員/view/1
とか?
0205nobodyさん
2008/08/02(土) 12:07:43ID:aQY+T7Eo0206nobodyさん
2008/08/02(土) 14:11:43ID:???0207nobodyさん
2008/08/02(土) 22:07:43ID:???そういうのはuseTable使ってアルファベットだけにしてる。
作ってたら途中まで問題なかったんだけど、
SQLを""でクォートするところでちゃんとできずにSQLエラー。
正規表現がうまくいってないとこまで分かった。
0208nobodyさん
2008/08/03(日) 03:51:55ID:???0209nobodyさん
2008/08/03(日) 10:57:48ID:???0210nobodyさん
2008/08/04(月) 11:03:43ID:???0212nobodyさん
2008/08/04(月) 11:25:58ID:???1.1/1.2に対応してるようなことが書いてあったけど、
どこまで対応してるのかね?
0213nobodyさん
2008/08/04(月) 13:04:46ID:???0214nobodyさん
2008/08/04(月) 15:39:24ID:???現1.1ユーザーにとっては、1.2対応の基本は押さえられる
RC前なので、betaからRCになって変わったところとかは未対応。その辺把握していないと辛いかも。
ex Modelのconditions
1.2betaすら使ったことがない人は、買って損はない、と思う。
0215nobodyさん
2008/08/04(月) 15:42:55ID:???0216nobodyさん
2008/08/05(火) 12:11:46ID:???CakePHP徹底入門だったか。
0217nobodyさん
2008/08/05(火) 13:01:29ID:???0218nobodyさん
2008/08/05(火) 14:55:44ID:???まじか!
とりあえず買っておこうかな。
cakephp 全部持ってるけど一番役に立つのはリファレンスかな。
0219nobodyさん
2008/08/05(火) 16:49:14ID:???Amazonより
> CakePHPの最新バージョンである1.2をメインとした初の解説書
ほんとうかよ?
beta -> RC でずいぶんと変わったぞ?
時期的にあやしいんだよなぁ。
0220nobodyさん
2008/08/05(火) 21:22:57ID:???Cakeって本と相性悪いねぇ。
0221nobodyさん
2008/08/06(水) 00:46:37ID:???今Cake本出すならstableまで待って原稿上げる英断をして欲しい
0222nobodyさん
2008/08/06(水) 02:09:25ID:???仕事なら普通だよな?
0223nobodyさん
2008/08/06(水) 04:49:56ID:c9uoLYnSphp5が出てるのにphp3でやるといってるのと同じだぞ
0224nobodyさん
2008/08/06(水) 04:52:09ID:c9uoLYnS1.1と1.2の機能面での差は、かなりでかい
0225nobodyさん
2008/08/06(水) 10:41:07ID:???もう一年近く前になるかな?
CakePHPの本が何一つ出ていなかった頃。
海外の書籍でCakePHPがでると聞いて予約した。
いまだに出てないw 当然キャンセルしたw
0226nobodyさん
2008/08/06(水) 10:46:43ID:???機能面もそうだし、1.1と1.2じゃ仕様の変更が多いよな。
一番の基本である、findXXX系まで変わってるし。
1.1と1.2じゃなくて、1.1と2.0ぐらいのバージョンの差があるよ。
たしかに、RCは正式版じゃなくリスクもあるけど、流石にもう大丈夫だと思うな。
ただ作っているうちにstableでて入れ替えることになるだろうから、
UnitTestはちゃんとしとけ。でないと再テストが苦痛になる。
仕事だから当然だ。
0227nobodyさん
2008/08/06(水) 11:17:06ID:???これから新規開発するには1.2を選べってさ。
http://cakebaker.42dh.com/2008/07/30/rip-cakephp-11/
0228nobodyさん
2008/08/06(水) 12:25:03ID:???bakeで簡単に焼いたものをWeb上においておくと、グーグルボットが
deleteメソッドを踏んで、データを消してゆく、という話です。
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1323&forum=3
ワロタw
俺は以前CakePHPとは関係ない話で似たような話をどこかでみたので
それですぐにこうなることに気づいていたが恐怖だろうなぁw
というかPostで制限意味ねーw Postに対応したbotがあったらどうすんだよ。
お問い合わせフォームにまでスパム投稿してくる時代に。
0230nobodyさん
2008/08/06(水) 13:51:20ID:???おお。bakeで作って認証かけてないやつあるわ(笑)
googleに発見されたらアウトだ。
さて。手っ取り早く対応するには、どうしようかな。。
0233nobodyさん
2008/08/06(水) 14:38:16ID:???0234nobodyさん
2008/08/06(水) 17:06:11ID:???おっ。見つけられた。gigazineだったか。
Googleにサイトを全消去されたかわいそうなサイト
http://gigazine.net/index.php?/news/comments/20060331_google/
正確には、Googleがページのクロールに使用する「Googlebot」によって
CMS(コンテンツマネジメントシステム)のデータが全部消えてしまったというお話。
このCMSは従業員が各自で情報を入力していくという、まぁ一般的な方式で、
最終的なテストも終えて、インターネット経由でアクセスできるようになったわけです。
が、わずか2,3日後に悲劇発生。全ページが消えてしまい、
「内容を入力してね♪」
というような初期ページのみになってしまったのです
0235nobodyさん
2008/08/06(水) 17:12:05ID:???0236nobodyさん
2008/08/06(水) 17:14:45ID:???世の中には、robots.txtを守らないボットがあるから
気をつけよう。
スパムメール送信の為のアドレスを集めるボットとか。
0237nobodyさん
2008/08/06(水) 17:34:27ID:???こんな感じじゃないかなぁと思う。
1.クッキー対応していなくてもログインできるようにしたために
URLにセッションIDが追加されてしまっていた。
2.TinyMCEのようなブラウザで動くHTMLエディタを実装していた。
これにより、コピペをするとセッションIDが付加されたAタグまでコピペできる。
3.これが公開ページに置かれ、Googleが発見した。
つまりセッションハイジャック状態
4.セッションIDを含んだアドレスをgooglebotが発見、次々に
セッションIDを含んだリンクをたどる。
5.その中にdeleteリンクがあってgooglebotがそれをクリック。
ログインの仕組みを作るにはCookieを使うのが常識だけど、
携帯対応とかでCookieを使わずにアクセスできるようにしちゃうと大変だね。
URLにセッションIDが含まれているときは、携帯から
アクセスできないようにするという考えもあるけど、
そこに携帯サイトもクロールしてほしいとか言い出すと・・・
ワンタイムトークンでも使うのがいいのかな。
0239nobodyさん
2008/08/09(土) 19:03:49ID:z9jw78pxどうでもいいっちゃー、どうでもいい
■ このスレッドは過去ログ倉庫に格納されています