1 名前:nobodyさん [2008/03/14(金) 15:16:00 ID:HF9x5ODX] www.cakephp.org/ 10分で作るCakePHPアプリ for Windows p4life.jp/cake/ マニュアル日本語化 www.cakephp.jp/doc/ 日本語フォーラム cakephp.jp/modules/newbb/ あとこのへんとか(初心者向けTIPS) www.avatarfinancial.com/pages/cake/ CakePHP入門リンク集 ttp://pub.studio15.jp/2007/11/13/cakephp-links/ 【PHP】フレームワーク CakePHP 2ホール目 pc11.2ch.net/test/read.cgi/php/1194976228/ 【PHP】フレームワーク CakePHP pc11.2ch.net/test/read.cgi/php/1163850802/
775 名前:773 mailto:sage [2008/05/07(水) 00:29:55 ID:???] >>774 というと、複数のviewで使いたい場合は、各コントローラ、各アクションで setするという事でしょうか? あるいは、全てのコントローラの前に読み込まれる、共通コントローラみたいのが あったりするのでしょうか。
776 名前:nobodyさん mailto:sage [2008/05/07(水) 00:37:17 ID:???] >>775 そう ある
777 名前:nobodyさん mailto:sage [2008/05/07(水) 14:32:05 ID:???] そうあるよ
778 名前:nobodyさん mailto:sage [2008/05/07(水) 14:48:46 ID:???] >>775 チートシート手に入れるべし
779 名前:773 mailto:sage [2008/05/08(木) 01:09:40 ID:???] 結局レスの内容はよく分かりませんでしたが、下記ページを参考に、 requestActionで取得する事にしました。 cakephp.jp/doc/ch07s02.html /views/layouts/default.thtml <?php echo $this->set('users', $this->requestAction('/users/getUserList'), array('return')); ?> <p><?php $user_numbert = array_rand($this->viewVars['users']); echo $this->viewVars['users'][$user_numbert]['User']['name']; ?></p>
780 名前:nobodyさん mailto:sage [2008/05/08(木) 01:42:10 ID:???] >>779 ちょwwwww志村上上
781 名前:nobodyさん mailto:sage [2008/05/08(木) 09:23:20 ID:???] app_controller.php function beforeRender() { # ここに/users/getUserListの中身とかを $this->set('user_numbert' , $user_numbert); } default.thtml <?php e(h($user_numbert['User']['name'])) ?>
782 名前:nobodyさん mailto:sage [2008/05/08(木) 09:34:15 ID:???] ちょwwwww志村上上下下右左右左BA
783 名前:nobodyさん mailto:sage [2008/05/08(木) 19:24:13 ID:???] 以前にもこんな話題があったような気がするのですが、 フォームの画面遷移のときのデータの持ち回り方について・・・ 1.普通にhiddenで埋め込む 2.serializeしてbase64_encodeしたものをhiddenで埋め込む 3.serializeしてbase64_encodeしたものをセッションに書き込む などが考えられますが、 CakePHP的には、どの方法がベターでしょうか?
784 名前:773 mailto:sage [2008/05/09(金) 01:55:42 ID:???] サンプルコードまでご提示下さり、ありがとうございます。おかげでフル装備 じゃないや、スマートな実装ができました。 どうもありがとうございました。
785 名前:nobodyさん mailto:sage [2008/05/09(金) 09:23:43 ID:???] >>783 質問だけど。 3でbase64_encodeする意味合いって何があるの?
786 名前:nobodyさん mailto:sage [2008/05/09(金) 18:49:37 ID:???] >>783 自分は 1。 セキュリティがどうこうっていうプログラマーさんがいるでしょうけど・・・。
787 名前:783 mailto:sage [2008/05/09(金) 18:55:31 ID:???] >>785 すみません。よくわからないで書いてしまいました;; シリアライズだけで十分ですか? >>786 最終的にsaveするまえにしっかりバリデートすれば、それでも問題ないのかもしれませんね・・・ でもやっぱりソース見たときに、パスワードとかメールアドレスがもろに書いてあると、 このサイト大丈夫か??って気になりますが・・・ ちょっと気になったのですが、PEARのHTML_QuickForm_Controllerなんかは どの方法なんでしょうか??
788 名前:nobodyさん mailto:sage [2008/05/09(金) 20:19:38 ID:???] 貧乏人は贅沢だ 不満を言う余裕はあるくせに 戦争する暇もある
789 名前:nobodyさん mailto:sage [2008/05/10(土) 00:11:55 ID:???] >>787 ソース見られたらっていうのは確かにある。 しかもそれを無理矢理改ざんして入力不可の文字を入力される可能性もある。 しかし、よほどのサイトじゃないとそこまでハッカーも暇じゃないから攻撃しないのでは? と思います。 現に、ここ 5年ほど、何も問題ありませんでした。
790 名前:nobodyさん mailto:sage [2008/05/10(土) 16:35:26 ID:???] >>789 問題があってからじゃ遅いんだぞ! と思いつつも、もりもりhiddenに入れ込んでしまう。。
791 名前:nobodyさん mailto:sage [2008/05/10(土) 17:55:53 ID:???] >>787 セキュリティ目的ならbase64_encodeは用をなさないという認識。 >>789 データはhiddenで埋め込んでおいて、$this->dataをserialize後saltつけてハッシュ化したやつを別でhiddenに埋め込む ↑のふたつを比較して整合性チェックとか?
792 名前:nobodyさん mailto:sage [2008/05/10(土) 18:59:59 ID:???] 今、ここを覗いている筑波大学へ ばれてるぞ!
793 名前:nobodyさん mailto:sage [2008/05/10(土) 19:29:59 ID:???] 別に半角文字列板とかじゃないんだからバレたっていいだろうに。
794 名前:nobodyさん [2008/05/11(日) 11:28:50 ID:qWqUPYxD] 日本語フォーラムと2ちゃん、どっちの方がコメントもらえるのかな? と言いつつ、いつもこっちに書くのだけど・・・。 下の記事を参考に、携帯用ページを作っています。 ttp://www.1x1.jp/blog/2008/04/cakephp_12_routing_prefix.html で、paginateでページングされているのですが、ひとつ問題が。 pagineateの結果、下のようにURLが生成されるのですが、 携帯エミュレータ(P1エミュレータを使用)で確認したところ、 どうやら「page:2」のセミコロンが、有効な値ではないとエラーになるっぽいです。 <a href="/~recipe/m/responses/view/page:2">2</a> これって、どう対応すればいいのでしょう?
795 名前:nobodyさん mailto:sage [2008/05/11(日) 12:01:33 ID:???] app/config/routes.phpにRoute::connectNamed(array(),array('argSeparator'=>'=')); を追加
796 名前:794 mailto:sage [2008/05/11(日) 13:42:34 ID:???] >>795 Router::connectですね。 ふぉぉ、すぐに答えていただきありがとうございます! PC側の方もちょっと調整が入りますが、おかげで解決しました!
797 名前:nobodyさん [2008/05/12(月) 02:29:40 ID:8yg2YXGe] CakePHP1.2のバリデーションについてよく整理されたマニュアルとかってないかな バリデーションルールが多様になったほかに、create時update時それぞれに有効無効に できるなんてこと知ったのだけど、その他含めてちゃんとまとまった情報ってないかな
798 名前:nobodyさん mailto:sage [2008/05/12(月) 18:22:39 ID:???] AuthComponentsで、ユーザー情報を取得し直したいとき、どのようにすればよいでしょうか? たとえば、 ログイン後にユーザーメニューからユーザ名の変更などを行った場合、 セッションには変更前のユーザ名が格納されているため、 ヘッダーなどに表示されている 「ようこそxxさん」のような表示が変わらない、ということになってしまいます。 いちおうの解決策としては、 セッションにはIDのみを格納しておいて、 app_controllerで 毎回、$this->User->findByIdしてセッションに記憶させるという方法をとっていますが、 あまりスマートではありません; ユーザ名の変更処理の直後のみユーザ情報を取得しなおしたいのですが、 なにかよいアイデアはないでしょうか?
799 名前:nobodyさん mailto:sage [2008/05/12(月) 20:51:58 ID:???] >>798 なんとなくでレスしてるが変更と同時にセッション内容も書き換えればいいんじゃないの?
800 名前:nobodyさん mailto:sage [2008/05/12(月) 22:27:51 ID:???] 公開用Webサイトに1.2系使ってる人っている? DBからデータをviewで表示するだけなら1.2でも大丈夫かな? 現在は1.1で運用中。 多言語対応が1.2でやりやすいのなら、1.2で作りかえるんだけど。
801 名前:nobodyさん mailto:sage [2008/05/12(月) 22:35:05 ID:???] >>800 俺はやっちゃったw 半年ぐらいCakePHP使っていて、コアの中まで見てると 大丈夫なんじゃないかなぁと思う。 バグではないが、ベータ版だから仕様が変わるのが ちょっとネック。
802 名前:794 mailto:sage [2008/05/13(火) 00:21:01 ID:???] >>800 いま、2ちゃんねるのレシピ集のサイトをCakePHP1.2で作ってます。 paginatorなどが使いたかったのと、バグっても差し支えないので。 で、ひとつバグらしきのに当たりました。 先に書いた通りのページを参考に、URLルーティングのprefixを使って 携帯用とPC用のページを作り分けしたのですが、この状態でpaginatorを使うと、 PC側のページで、$paginator->prev、nextで何故か携帯用のURL (/m/:controller・・・)へ飛ばされる事象が。 prefixを設定する前は発生していませんでした。 原因は不明ですが、これまた何故か$paginator->optionsの設定次第で 事象が発生したりしなかったりするので、発生したPC用ぺージでは、 $paginator->options(array('url'=>array("test" => 'test'))) と、ダミーのURLオプションを追加してごまかしています。
803 名前:nobodyさん mailto:sage [2008/05/13(火) 02:42:36 ID:???] 1.2の正式バージョンていつごろ出るのかな? 乗り換えるべきかどうか迷う・・・
804 名前:nobodyさん mailto:sage [2008/05/13(火) 13:48:12 ID:???] >>800 cakephp 1.1 も 1.2 も両方開発してアップしてますけど両方問題ないですよ。 ただ、モバイルサイトも作ろうと思えば 1.1 の wevservices が便利です。
805 名前:nobodyさん mailto:sage [2008/05/13(火) 18:13:48 ID:???] 1.2じゃなきゃ使いたくないズラ
806 名前:nobodyさん mailto:sage [2008/05/13(火) 19:48:08 ID:???] 画像表示系のコンポーネントを作って使うとき、 最後にheaderでContent-typeなどを指定するわけですが、 controller.phpのheader(”location...とかぶってしまって、エラーが出てしまいます。 みなさんはどのように処理しているのでしょうか? わかりずらくてすみません・・・;
807 名前:nobodyさん mailto:sage [2008/05/13(火) 19:56:04 ID:???] >>806 わかるわかる。 <img src="hoge.php?="> みたいなので読み出すやつでしょ? 僕はギブアップしましたね。 ttp://www.hideblog.net/thumbnails/ を使ってます。
808 名前:806 mailto:sage [2008/05/13(火) 20:02:52 ID:???] >>807 それです! わかってもらえて安心しました。 リンク先のものは、キャッシュに保存してそれを表示する、というものでしょうか? これはこれで便利ですが、やはりできればストレートに表示したいですね・・・
809 名前:nobodyさん [2008/05/13(火) 22:25:09 ID:Akbr9Dkj] >>806 ob_clean()はどうでしょう。
810 名前:nobodyさん mailto:sage [2008/05/13(火) 22:27:45 ID:???] >>807 まったくもって意味がわかりませんが たぶんこれで解決でしょう。 www.ideaxidea.com/archives/2008/01/cakephpcsv.html
811 名前:nobodyさん mailto:sage [2008/05/14(水) 09:31:44 ID:???] CakePHPの話題ではないかもしれませんが・・・ たとえばタスクをステータス別に表示する場合 コントローラ側で、 $this->set('yet_tasks', $this->Task->findAllByStatus('yet')); $this->set('done_tasks', $this->Task->findAllByStatus('done')); のように二度取得するのと、 $this->set('tasks', $this->Task->findAll()); として、 ビューで foreach ($tasks as $task) { if ($task['Task']['status'] == 'yet') { echo .... とするのでは、 どちらのほうがパフォーマンスが優れているのでしょうか? ご教授お願いします。
812 名前:nobodyさん mailto:sage [2008/05/14(水) 09:48:17 ID:???] どっちもだめ
813 名前:nobodyさん [2008/05/14(水) 09:49:25 ID:XltYBCAy] 前者のほうが毎回DBアクセスが発生するため速度という点でのパフォーマンスは悪いでしょうね。 後者のほうは、、ビューにあまりそこまで複雑なロジックを記述することによるコードの効率の悪さ という点でパフォーマンス難ありかも。 対象となるデータ量次第だけど、そこまでデータが多くなくてサーバのスペックが十分であれば前者の方が コーディングは早いんじゃね?個人的な意見だけど。
814 名前:nobodyさん mailto:sage [2008/05/14(水) 13:49:50 ID:???] 806です。 >>809 >>810 その方法は試してませんでした。 次回やってみようと思います。 ありがとうございます。
815 名前:nobodyさん mailto:sage [2008/05/14(水) 14:46:18 ID:???] デザイナーの要望に応えてちょちょっと変更するときなんて、 viewいじった方が早かったりするんで、 ついついやっちゃうんだよなぁ。 んで、気づいたらviewがえらいことにw
816 名前:nobodyさん mailto:sage [2008/05/15(木) 00:40:28 ID:???] CakePHPかRuby on Railsかで迷ってます。 サーバー関連の知識が全くないのですが、 アプリ完成後の公開寸前で困らないためには、 CakePHPを選んでおいたほうが、すんなり公開できるでしょうか?
817 名前:nobodyさん mailto:sage [2008/05/15(木) 00:57:18 ID:???] >>816 どっちも自分で試したほうがいいと思う。 俺は慣れてるからCake好きだけど。 最低限のアプリ作って鯖置くまで試してみる事をオススメする。
818 名前:816 mailto:sage [2008/05/15(木) 01:04:37 ID:???] >>817 レスありがとうございます。 Cakeならば格安のレンタルサーバで試してみることもできるのですが、 Rubyとなるとそこそこ値の張るところでないとダメみたいで、 それだけのお金を出して、設置できなかったとなると・・・ 1.2の安定版ももうすぐみたいですし、 やっぱり初心者にはCakeなんですかねぇ・・・
819 名前:nobodyさん mailto:sage [2008/05/15(木) 01:14:45 ID:???] >>818 つ仮想サーバ または 適当な空きマシンでlinux
820 名前:nobodyさん mailto:sage [2008/05/15(木) 17:54:14 ID:???] レンタルサーバーで問題なのはお金よりも むしろサーバーを管理できるかどうか。 www.fs-virtual.jp/spec/hikaku.html 945円/月〜 www.tsukaeru.net/plans/vps/ 2480円/月〜 www.ymc.ne.jp/service/managed/plan/index.html 4950円/月
821 名前:nobodyさん mailto:sage [2008/05/15(木) 21:43:23 ID:???] ☆ チン ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・)< 1.2まだー? \_/⊂ ⊂_)_ \_______ / ̄ ̄ ̄ ̄ ̄ ̄ ̄/| |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :| | .|/
822 名前:nobodyさん mailto:sage [2008/05/19(月) 16:23:52 ID:???] MediaView(/cake/lib/view/media.php)ってどう使うんだろう? dsi.vozibrale.com/articles/view/mediaview-is-a-bleeding-bastard bin.cakephp.org/view/1026359650 を読む限り、特殊なファイルをダウンロードさせたいときとかに使うみたいだけど、 適当に読む限りファイルを出力するヘッダー情報の段階のことしか書かれていない。(あ、Viewの部分だから当然か) おそらく、データーベースからグラフをGDとかでスクリプト側で作ったものを表示する場合なんかで 使うんだろうけど、このスクリプトで合成した画像のバイナリデーターはどのタイミングで、どこの関数に格納すればいいのやら?
823 名前:877 [2008/05/20(火) 09:40:48 ID:xs/omlLe] IP/controller/ にアクセスするとIP/controller/index が デフォルトで実行されますけど、このアクションを変えるには どうしたらいいですか?
824 名前:nobodyさん mailto:sage [2008/05/20(火) 11:01:51 ID:???] >>823 cakephp.jp/doc/ch04s03.html かな
825 名前:nobodyさん mailto:sage [2008/05/20(火) 11:16:01 ID:???] CakePHP 1.2 stable coming soon と言ってるから、そろそろ 1.1 -> 1.2 移行手順をまとめたいな 絶対に手を入れるところ 推奨されているところ とか はまりポイント とか
826 名前:nobodyさん mailto:sage [2008/05/20(火) 11:38:08 ID:???] ttp://puyo2.upper.jp/cake/ のPDFを中心に ■絶対に手を入れるところ ・設定ファイルの変更(Warning出しながら動くけど) # /app/config/core.php define('DEBUG', 1); → Configure::Write('debug', 2); → Configure::write('Security.salt', 'your original string'); # add ・ヘルパー変更に伴い、view全般 非推奨または廃止されたもの $html->input $html->submit $html->tagErrorMsg etc... 新たに強化・追加されたもの FormHelper PaginatorHelper XMLHelper ■推奨されている ・validatesに引数を渡さない $this->ModelName->validates($this->data); → $this->ModelName->data = $this->data['ModelName']; → $this->ModelName->validates(); ・viewの拡張子 action_name.thtml → action_name.ctp 間違いあったら訂正よろしく
827 名前:nobodyさん mailto:sage [2008/05/20(火) 13:22:09 ID:???] find系もなんか修正あったんじゃなったけ?
828 名前:nobodyさん mailto:sage [2008/05/20(火) 19:13:39 ID:???] 検索してもうまく見つけられなかったので、教えてください。 SELECT * from `Model` WHERE ( `Model`.`field_1` like '%xxx%' OR `Model`.`field_2` like '%xxx%' ) AND `field_3` = 'yyy'; みたいなSQLを発行したい場合の$conditionsの指定はどうしたら良いのでしょう? また、 SELECT * from `Model` WHERE concat( `Model`.`field_1` , `Model`.`field_2` ) like '%xxx%'; というのも知りたいです。
829 名前:nobodyさん [2008/05/20(火) 19:19:52 ID:wZOYKZBI] バージョン1.2のAuthComponentでの認証で二重ログインを防ぎたいんだけど、 良い方法か参考ページがあったら教えて下さい。
830 名前:nobodyさん [2008/05/21(水) 01:03:54 ID:+T6Kz2/1] CakePHPってDBのカラム名まで縛るのね。 その時点で候補から外れたね。
831 名前:nobodyさん mailto:sage [2008/05/21(水) 01:16:01 ID:???] >>830 さようなら。 その縛りなしで行こうと思えば行けるんだけどな。 じゃぁの。
832 名前:nobodyさん mailto:sage [2008/05/21(水) 01:57:45 ID:???] >>830 そんなに大変? たしか、RoRでもあったと思うけど。 idとcreatedとmodifiedくらいしか意識した事ないけど、 他にもあるのかな?
833 名前:nobodyさん mailto:sage [2008/05/21(水) 02:29:51 ID:???] というかしばるから便利なわけですが
834 名前:nobodyさん mailto:sage [2008/05/21(水) 10:27:32 ID:???] >>832 name or title フィールドでgenarateListが自動的にidと配列を返す あとは、xxx_id とか xxx_yyy とかのアソシエーション系かな? いずれにせよCoCの理念に同調できない人はRoRをはじめとしたフレームワークは無理だわな。 RoRではなく、Cakeスレに書き込む>>830 に乾杯
835 名前:nobodyさん mailto:sage [2008/05/21(水) 12:50:06 ID:???] > name or title フィールドでgenarateListが自動的にidと配列を返す そういえばそんなものもあったね。1.2では find('list')にかわるわけだけど。 ソース見たけど、1.2betaの段階では、フィールド名指定する方法 無かった気がする。なんでだろうね。 結局は、genarateListを1.2で動かしたときの警告の通り find('all')の検索結果をSet::combine($results, $keyPath, $valuePath); しているだけなんで、自分でやればいいんだけどね > あとは、xxx_id とか xxx_yyy とかのアソシエーション系かな? これはなぁ・・・みんな同じような名前のつけ方しない? ○○テーブルのIDなんだから○○_idって。
836 名前:nobodyさん mailto:sage [2008/05/21(水) 18:07:50 ID:???] カラム名とか考えるの苦手なんで縛られてた方が楽だな俺は。 コントローラ名とかメソッドの名前とか考えるのホント嫌。かっこいい名前考えるセンス無くて。
837 名前:nobodyさん mailto:sage [2008/05/21(水) 18:10:51 ID:???] スペル調べたりするのも面倒だから、ローマ字とかw
838 名前:nobodyさん mailto:sage [2008/05/21(水) 18:29:28 ID:???] たしかに項目全部のスペル調べるのって時間かかるよなw 非英語圏の俺涙目
839 名前:nobodyさん mailto:sage [2008/05/21(水) 22:53:45 ID:???] >>838 あれ、こんなところに俺がいるぞ?w 最近、アルクで調べるようになって、ちょっと楽になった。 ttp://www.alc.co.jp/ カラム名は適当な英語でいいが、テーブル名はきちんとした英単語になってないと、 単複の変化がねぇ。。。
840 名前:nobodyさん mailto:sage [2008/05/21(水) 22:58:34 ID:???] ローカルに辞書ソフト入れておいたほうがいいぞ。 どうもウェブだと時間がかかる。 おれはMS Officeについていたbookshelfを使っている。
841 名前:839 mailto:sage [2008/05/21(水) 23:38:50 ID:???] >>840 Bookshelfか。懐かしいなぁ。 Bookshelfもいいんだけど、アルクは例文がいろいろ出てくるので、 そこがおすすめ。 たしかにローカルの方が速いけどね。
842 名前:nobodyさん mailto:sage [2008/05/22(木) 00:42:45 ID:???] >>839 俺発見!
843 名前:nobodyさん mailto:sage [2008/05/22(木) 09:57:07 ID:???] □cake.phpがapp/webroot以下のsqliteファイルを見てない? sqliteファイル(app/webroot/cake.sqlite)を用意してから cake.phpを実行しているけどエラーメッセージが出て怒られる。 sqliteファイル(app/webroot/cake.sqlite)を ./cake.sqliteに移動してやると「Bake All complete」。 □エラーメッセージ $ php cake/console/cake.php bake all Post ... Error: Missing database table 'posts' for model 'Post' □app/config/database.php <?php class DATABASE_CONFIG { var $default = array( 'driver' => 'sqlite', 'persistent' => false, 'host' => 'localhost', 'port' => '', 'login' => '', 'password' => '', 'database' => 'cake.sqlite', 'schema' => '', 'prefix' => '', 'encoding' => '' ); } ?>
844 名前:nobodyさん mailto:sage [2008/05/22(木) 13:44:12 ID:???] 英語の豆知識 Data : 複数形 Datum : Dataの単数形 CakePHPやるまで知らんかった。。。