- 1 名前:nobodyさん [2013/09/09(月) 01:56:10.19 ID:m9OPw/HT]
- CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ 質問するときはCakePHPのバージョンを書きましょう ※他フレームワークとの比較等はスレ違いです ■本家 www.cakephp.org/ APIドキュメント api.cakephp.org/ github - cakephp github.com/cakephp the Bakery bakery.cakephp.org/ Issue cakephp.lighthouseapp.com/dashboard CheatSheet[1.2] (PDF) cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf ■日本語公式 cakephp.jp/ フォーラム cakephp.jp/modules/newbb/ cookbook(マニュアル) [2.x] book.cakephp.org/2.0/ja/index.html [1.3] book.cakephp.org/ja kohada.2ch.net/test/read.cgi/php/1354593996/l50
- 818 名前:nobodyさん mailto:sage [2014/01/23(木) 13:22:37.04 ID:???]
- 教えてください。
1.3で作成したAPIに、SecurityコンポーネントでBasic認証をかけたいと思っています。 そこで1.3の該当マニュアルを読んで進めておりますが、 requireAuth() requireLogin() loginCredentials(string $type) この3つのどれを使うのが良いのか分かりません。 違いと実装の例など教えていただけませんか。
- 819 名前:nobodyさん mailto:sage [2014/01/23(木) 23:16:39.26 ID:???]
- >>817
parent::__construct();が抜けてんじゃねーの?
- 820 名前:nobodyさん mailto:sage [2014/01/24(金) 00:03:19.65 ID:???]
- コントローラのコンストラクタなんて触ったこと無いな。
変わったことやってんのか?
- 821 名前:nobodyさん mailto:sage [2014/01/24(金) 01:25:22.59 ID:???]
- >>818
1.3なんてもう覚えてないけど、認証はAuthコンポーネントじゃないの? CakePHP2ではAuthだぞ。 SecurityコンポーネントはCSRF対策とか、そういうの用だと思うが。
- 822 名前:nobodyさん [2014/01/24(金) 08:54:07.70 ID:OhuU+SsS]
- cakePHPの入門書でオススメあったら教えてくだしあ><
- 823 名前:nobodyさん mailto:sage [2014/01/24(金) 09:17:20.30 ID:???]
- >>821
ありがとう。CakeでウェブAPIをつくっているので、Authコンポーネントではなく、 Securityのベーシック認証にしたいのです。
- 824 名前:746 [2014/01/25(土) 00:27:35.89 ID:fnA/g+QM]
- コントローラをFacadeパターンにして実務処理は自作のちっさいコントローラクラスにやらせれば良いの?
クラス設計するなら
- 825 名前:nobodyさん mailto:sage [2014/01/25(土) 00:34:45.21 ID:???]
- Model だろ普通
- 826 名前:nobodyさん mailto:sage [2014/01/25(土) 00:38:00.50 ID:???]
- CakeがMVC2の勘違いをkskする
- 827 名前:nobodyさん mailto:sage [2014/01/25(土) 00:42:48.60 ID:???]
- >>822
これ、というのは無いなぁ ただ、「CakePHP事典」と「レシピ119」だっけ? あれはひと通り目を通すといいと思う。 CakePHPの機能を結構カバーできてる。 ただ、レシピの方は今ひとつ癖があるなぁって思った。 まぁ、ひとつの参考としては良いと思うよ。 網羅性に欠けるけど「実践」もいい。 まぁ、この3冊に全部目を通して損はないと思うよ。
- 828 名前:746 [2014/01/25(土) 00:46:35.74 ID:fnA/g+QM]
- あ、モデルだよなw
CakeでモデルつーとDBのテーブルを連想してしまってた
- 829 名前:822 mailto:sage [2014/01/25(土) 05:12:01.03 ID:???]
- >>827
あざっす m(_ _)m
- 830 名前:746 [2014/01/25(土) 13:37:17.68 ID:fnA/g+QM]
- いきなりbakeを使わせる本を入門書には向かないと思うが>>実践
- 831 名前:nobodyさん mailto:sage [2014/01/25(土) 13:56:53.37 ID:???]
- 知らない
- 832 名前:nobodyさん mailto:sage [2014/01/25(土) 14:52:32.45 ID:???]
- >>828
CakePHPのモデルはDBとくっつきすぎていて、 そこにロジックを入れるのはちょっと違う感じもするようになった。
- 833 名前:nobodyさん mailto:sage [2014/01/25(土) 14:55:02.37 ID:???]
- CakePHP辞典も入門としては使えないと思った。
いやいい本だし、入門時でも慣れてきても、 ソースコードを見るかCakePHP辞典を見るかって時はあるから、 持っといて損はないと思うけど。 あれで入門しようというのは難しいとおも。
- 834 名前:nobodyさん mailto:sage [2014/01/25(土) 15:06:07.31 ID:???]
- だから、コレというのはないと言ったんだ。
1系の時みたいな手取り足取りのチュートリアル本は無いからな。 もし本当に初心者で一からCakePHPをやりたいっていうんなら ブログチュートリアルを暗記できる程度まで繰り返し覚えろとしか言えない。 ただ、実践本が初心者向けでないことは確かだった。あれは奨めない。
- 835 名前:nobodyさん mailto:sage [2014/01/25(土) 15:07:52.67 ID:???]
- ActiveRecord=モデルみたいな誤解を広めたRailsが全ての元凶
Cakeは犠牲になったのだ
- 836 名前:827, 834 mailto:sage [2014/01/25(土) 16:41:20.78 ID:???]
- 「はじめてのCakePHP (I・O BOOKS)」っていう本があるみたい。
読んでないんでなんとも言えないけど、 Amazonの書評とサンプルコードダウンロードしてみた感じ、 入門書として、ひょっとしたら良いかもしれない。 コードの一部が古いので注意する必要ありだろうけど。 (パッと見て、コントローラのプロパティ宣言キーワードに public を使わずに var を使ってるのはヤバイわ)
- 837 名前:827, 834 mailto:sage [2014/01/25(土) 17:56:10.31 ID:???]
- そういえばCakePHP辞典って正誤表を公開するって
随分前に著者がツイッターで言ってたんだけど 音沙汰なしだな。。。
- 838 名前:nobodyさん mailto:sage [2014/01/25(土) 18:59:02.53 ID:???]
- >>837
まさぴーだな。 あの人のソースが一番わかりやすいし綺麗。 本もわかりやすい。 俺はお勧め。
- 839 名前:nobodyさん mailto:sage [2014/01/25(土) 22:40:50.09 ID:???]
- CakePHP2でvarを使ってるってだけで敬遠したい。
- 840 名前:746 [2014/01/26(日) 00:18:39.58 ID:2eFTwFkL]
- メンバ変数、みたいなのは$componentsに入れなきゃダメなのか?
コントローラで $this->hogehoge みたいな使い方したい場合
- 841 名前:746 [2014/01/26(日) 00:27:11.25 ID:2eFTwFkL]
- 多少、誤植とかあるけど
WebデザイナーのためのCakePHPビューコーディング入門 ttp://www.amazon.co.jp/dp/4798033146/ はプログラマ向け入門書としてもそこそこよかったと思った。前半しか読んでねーが
- 842 名前:nobodyさん mailto:sage [2014/01/26(日) 00:45:57.89 ID:???]
- >>839
俺もvarだけどなんかダメなん?
- 843 名前:nobodyさん mailto:sage [2014/01/26(日) 02:18:11.54 ID:???]
- >>842
PHP5になって何年たったと思ってるんだ。
- 844 名前:nobodyさん mailto:sage [2014/01/26(日) 02:19:40.46 ID:???]
- >>798
俺モデルにstaticで関数作って使うクラスだけapp::usesして使ってるけど(bootstrapまわりのグローバル層には置かない) これって少数派なのかね
- 845 名前:nobodyさん mailto:sage [2014/01/26(日) 02:20:44.56 ID:???]
- >>746
あなたの書き込み最初から読ませてもらったけど、 フレームワークって、あなたの思ってる「プログラミング」にくらべると すごく不自由なもんだと自覚した方が吉。 何しろ他人が「型」を作って、それに自分を嵌めこむ作業だから。 特にCakePHPはCodeIgniterやYiiなんかと比べるとその傾向は強いと言われる。 まずは開発者の意図を極力咀嚼して定形と言われる方法で開発するところから始められないなら、 フレームワークなんて使う意味ないよ。
- 846 名前:nobodyさん mailto:sage [2014/01/26(日) 02:25:24.29 ID:???]
- array()はまだいいけど、varはさすがにちょっと…。
- 847 名前:nobodyさん mailto:sage [2014/01/26(日) 02:25:56.65 ID:???]
- >>840
PHP初心者なのか。 メンバ変数って単語を知っててなぜそうなるのか疑問だが、 class Foo{ public $foo = 1; public function bar(){ return $this->foo; } } な
- 848 名前:nobodyさん mailto:sage [2014/01/26(日) 02:26:09.48 ID:???]
- >>844
全然いいんじゃない? static ならテスト書きやすいし ただ、Modelに入れずにLibに入れるかってのはある。 Modelにしちゃうと色々副作用とか考慮する必要もあるし。
- 849 名前:nobodyさん mailto:sage [2014/01/26(日) 02:32:12.27 ID:???]
- >>848
とっ散らかるのイヤだなーとモデルごとに置いてて、今まで特に問題は起きてないけど Lib層の使いこなしは考えていきたいね ロジックはMVCで分けても、定義まわりは汎用的に使いまわしたいこと多いしな
- 850 名前:nobodyさん mailto:sage [2014/01/26(日) 02:51:45.24 ID:???]
- マジか!もうvar使わないのか。
時代が流れるの早いなー!
- 851 名前:nobodyさん mailto:sage [2014/01/26(日) 03:30:04.12 ID:???]
- >>847
いや、>>840 が言ってるのは Component のオブジェクトプロパティを 直接指定できないかってことでしょ。 で、フレームワークが $components の内容を参照して勝手にセットする しか方法がないのかってことにイラついてるんだろ。
- 852 名前:nobodyさん mailto:sage [2014/01/26(日) 04:22:27.54 ID:???]
- >>851
ああそういうことか。 じゃぁ $this->Foo = $this->Components->load('Foo');
- 853 名前:nobodyさん mailto:sage [2014/01/26(日) 04:25:33.67 ID:???]
- >>850
おいおい、俺がこの業界にまだ入りかけで、アルバイトでPHP書いてたときですら、 アクセス修飾子書いてたぞ。 もう5年以上は前の話だ。
- 854 名前:nobodyさん mailto:sage [2014/01/26(日) 04:51:42.85 ID:???]
- >>853
PHP歴、俺は10年以上だな。おっさんだ。。。 プログラムだけは経験多くても新しいのについてけないとダメだな。 var でも privateでもpublicでも何も変わらん気がするんだけどどうなん? で、varが3文字で無難だからという理由で使ってるんだけど。 教えてください。
- 855 名前:nobodyさん mailto:sage [2014/01/26(日) 05:06:46.50 ID:???]
- >>854
テスト書いてる? 変えちゃいけないインターフェース(public){=テストする}と 変えてもいい内部でだけで使うメソッド(private){=テストはpublicメソッド経由で行う}を varでどうやって区別するんだい? どっちでもちゃんと動くからいいというものではなく、 重要なのは、コードに"意図"を記述できるかどうかだよ。
- 856 名前:nobodyさん mailto:sage [2014/01/26(日) 05:09:49.74 ID:???]
- >>855
すげー! そんな違いがあるのか。 勉強になりました。 テストは書いてないです。 ありがとう。
- 857 名前:nobodyさん mailto:sage [2014/01/26(日) 05:21:51.60 ID:???]
- >>854
アルバイトが長かっただけで俺もそれなりにおっさんだけど。 varで書かれたコードは見た目が気に食わない。 というのも、varは互換性のためpublicと同じになるから、 private, protectedが使えないわけだけど、 JavaScriptみたくアクセス修飾子がないけどうまくやってる言語もあったりするから。 とはいえ、途中参加のPHPプロジェクトに入ったりしたら、既存のコードを読むときに、 publicなのかそうじゃないかは、コードを読むときに手がかりにするし、 というかpublicメソッドだけ追ったほうが概要がつかみやすいと思う。 まぁ、1人で作ってたり少人数チームだったりすると、アクセス修飾子なんてなくても、 なんとなくわかったりするし、privateには _ つけるといった運用カバー的方法もあったりするし、 どうしても徹底しないととは、正直言いづらい。 だから、見た目が気に食わない。
- 858 名前:nobodyさん mailto:sage [2014/01/26(日) 09:20:27.99 ID:???]
- >>854
varもpublicも変わらんというならまだしも、 privateとpublicが何も変わらんと思ってるってことは、手続き型しかやってなさそう。 テストの無い数千行の神クラス・・・。
- 859 名前:746 [2014/01/26(日) 10:00:51.56 ID:2eFTwFkL]
- >>847
> >>840 > PHP初心者なのか。 PHPもCakeも3ヶ月くらいしか経験はない 練習で掲示板を作ったくらいだ > > class Foo{ > public $foo = 1; > public function bar(){ > return $this->foo; > } > } できるんだな。サンクス 今作らされてる仕事でコントローラーばかりにコードを書くとクラスが肥大してヤだから URLから呼ばれるコントロールをFacadeにして個別機能を小さくクラスわけて new したいな、 と思ってる所なんだ
- 860 名前:nobodyさん mailto:sage [2014/01/26(日) 10:25:55.73 ID:???]
- >>859
じゃぁ コントローラをFacadeにするのは正解。 ビジネスロジックを別クラスにするのも正解。 一般的に、ビジネスロジックはModelに書くのが良いとされている。 一つのModelばかりになんでも詰め込んで肥大化させるのはあまり良くない。 複数のモデルで共通する振る舞いはBehaviorを作るのが正解。 Modelとテーブルの関係を外して新たなModelを書くのはOK。 Libに新しいクラス作ってもいいよ。 ってところ。
- 861 名前:746 [2014/01/26(日) 10:42:05.01 ID:2eFTwFkL]
- >860
ありがとう。少し光が見えてきた
- 862 名前:nobodyさん mailto:sage [2014/01/26(日) 12:35:40.50 ID:???]
- 作るものにもよるかもしれんけど、コントローラーやモデルに、
そんな沢山書かないとな場合て、そんなにないよな。 もしそうなら、コントローラーも、新たに作ったコントローラーもモデルも、 数行しか書いてないみたいには、しないほうがいいと思うよ。 find2回して、片方をforeachでまわしてちょっと加工して、 あとは表示なんてのは、そのページでしか使わないんだったら、 もうコントローラーに書いておけばいいと思ってる。
- 863 名前:nobodyさん mailto:sage [2014/01/26(日) 12:57:42.83 ID:???]
- >>862
それだと、テストが難しくなる。
- 864 名前:nobodyさん mailto:sage [2014/01/26(日) 13:08:34.52 ID:???]
- >>863
すべてをテストする必要はないんじゃね。 find2 foreach1だけなら、ほぼ間違えないし、 テスト可能にする事も含めて、テストのコストのほうが高いと思う。 foreachの中身が1行2行という想定だけど、 もしこれが複雑なものなら、foreachのとこだけ切り出してテストできるようにはしてもいいと思うけど。
- 865 名前:nobodyさん mailto:sage [2014/01/26(日) 15:09:54.48 ID:???]
- >>860
Cakeって案外不親切だよな 自由度が高いといえば聞こえはいいが
- 866 名前:nobodyさん mailto:sage [2014/01/26(日) 17:52:52.45 ID:???]
- CakePHPは自由度高くないでしょ
- 867 名前:nobodyさん mailto:sage [2014/01/27(月) 08:26:21.27 ID:???]
- 2014年にもなって「varって何が悪いの?」レベルのことを言う経験10年って・・
不勉強とかそういうレベルじゃねーだろ
- 868 名前:nobodyさん mailto:sage [2014/01/27(月) 09:15:59.49 ID:???]
- 化石だな
- 869 名前:nobodyさん mailto:sage [2014/01/27(月) 10:27:59.61 ID:???]
- (俺も正確に理解せずに使ってた、なんて言えない・・・)
- 870 名前:nobodyさん mailto:sage [2014/01/27(月) 13:43:50.37 ID:???]
- var使ってますってのは
私はいまだにOOも理解してない手続き型しか書けない老害です って宣言と同義
- 871 名前:nobodyさん mailto:sage [2014/01/27(月) 17:32:39.84 ID:???]
- アクセス権はOOに必須ではないがな
- 872 名前:nobodyさん mailto:sage [2014/01/28(火) 09:32:01.09 ID:???]
- カプセル化はOOのキモだと思う
- 873 名前:nobodyさん mailto:sage [2014/01/28(火) 11:26:46.25 ID:???]
- そりゃそうだ
- 874 名前:nobodyさん mailto:sage [2014/01/28(火) 12:09:08.34 ID:???]
- 全部publicにstaticに…ってただのファイル分割だわ
そういやそんなおじさんがいたな…
- 875 名前:nobodyさん mailto:sage [2014/01/28(火) 12:36:13.58 ID:???]
- varおじさん
- 876 名前:746 [2014/01/29(水) 08:28:57.79 ID:4MhCoapX]
- アクション名と違うファイル名のctpを使うにはどうしたらいいの?
アクション名がかぶりそうなんだよ
- 877 名前:nobodyさん mailto:sage [2014/01/29(水) 08:47:04.63 ID:???]
- Viewフォルダ内をコントローラごとにフォルダ分け
同一コントローラで名前がかぶりそうなら設計があやしい
- 878 名前:nobodyさん mailto:sage [2014/01/29(水) 17:13:25.95 ID:???]
- >>876
コントローラの中で $this->render('任意の名前');
- 879 名前:nobodyさん mailto:sage [2014/01/29(水) 22:52:44.55 ID:???]
- かっこいいbake用skeletonどこにありますかね…
なかなか見つかりません
- 880 名前:746 [2014/01/29(水) 23:39:01.19 ID:4MhCoapX]
- >>878
サンクス。調べてたら$layerの使い方もなんとなくわかった気がしてきた
- 881 名前:nobodyさん mailto:sage [2014/01/30(木) 02:58:52.18 ID:???]
- Amazonみたいにさ、
この商品を見た人は、以下の商品も見ています。 ってのを作りたい場合、どのように作ればいいか教えてもらえませんか?
- 882 名前:nobodyさん mailto:sage [2014/01/30(木) 03:35:25.70 ID:???]
- 閲覧ページのURL、ページ遷移、滞在時間とかを取得して、
統計データから商品Aから商品Bへのスコアを計算して、 閾値を設定して、それを超えたものをスコア順に並べる みたいな感じじゃないの?
- 883 名前:nobodyさん mailto:sage [2014/01/30(木) 03:39:02.25 ID:???]
- FacebookとかAmazonレベルだと複雑なスコア算出の式をしてるだろうが、
とりあえず何らかの指標で弾き出したスコアを元にリストアップってのはどこも同じはず。
- 884 名前:nobodyさん mailto:sage [2014/01/30(木) 07:39:44.50 ID:???]
- オライリーから、集合知プログラミングって本が出てたはず
わりとそのものズバリな内容が書いてあった 中のコードはphpじゃないけどpythonだから読みやすいし
- 885 名前:nobodyさん mailto:sage [2014/01/30(木) 09:24:11.61 ID:???]
- 奥が深い分野だから、Amazonと同じ精度出すだけでも、
難易度相当高いよ。
- 886 名前:nobodyさん mailto:sage [2014/01/30(木) 09:35:06.95 ID:???]
- 同じ精度出す必要無いよ。過剰実装だ。
単純に文字通り受け取って、リファラから商品IDを集計すれば良いだけだろ。
- 887 名前:nobodyさん mailto:sage [2014/01/30(木) 10:50:07.49 ID:???]
- >>884
881じゃないけど横からサンキュー
- 888 名前:746 [2014/01/31(金) 01:19:24.89 ID:nps2dTDl]
- アクションとURLの関連性を任意にしたい場合、config/route.phpのRoute::connectで指定してやればいいの?
- 889 名前:nobodyさん mailto:sage [2014/01/31(金) 09:22:20.73 ID:???]
- >>888
おっけーです
- 890 名前:nobodyさん mailto:sage [2014/01/31(金) 13:18:43.14 ID:???]
- CakePHPがあまり関係ない+そんな基礎的なことをと言われそうだけど、
よく見てるスレってここくらいだし、一応CakePHP使って作るし、質問させてくれ。 入力、確認、完了というよくあるフローの投稿機能なんだけど、 入力の段階でテキストやプルダウンなどのほかに、画像アップロードがあるんだ。 確認ページでは画像アップロードは完了させて、確認できるように表示する。 完了すれば、画像は所定のディレクトリに保持されて、ファイルパスが他のテキストとあわせてDBに入る。 確認の段階で戻ったり、完了に到達しなかったら、テキストも画像も保持しない。 良くある話だとは思うけど、確認ページ+画像アップロードが、なんか久しぶりで、 さらにcronが使えないサーバーで動かす予定なんだ。 前やったときは、daily cronで完了に至らなかったケースの画像を削除してたんだけど、 その方法が使えないから、どうしたものかと悩んじゃって。 この画像の後始末って、普通どうやってやるもんなのかな?
- 891 名前:nobodyさん mailto:sage [2014/01/31(金) 21:38:59.99 ID:???]
- >>890
俺ならcron使えるサーバー使う。
- 892 名前:nobodyさん mailto:sage [2014/01/31(金) 21:40:33.68 ID:???]
- >>890
というか、いちいち俺は削除しないな。 下手に削除プログラム走らせるとバグの原因になる。 ゴミデータあっても誰も見ないし。
- 893 名前:nobodyさん mailto:sage [2014/01/31(金) 22:07:45.62 ID:???]
- トリガなんてなんでもええやろ
ユーザリクエストでもいいし外部Cronでもいいし脳ミソ0か
- 894 名前:nobodyさん mailto:sage [2014/02/01(土) 01:04:49.93 ID:???]
- 乱数でハズレ引いたユーザーに負担してもらう
- 895 名前:nobodyさん mailto:sage [2014/02/01(土) 11:45:31.12 ID:???]
- >>890
俺は正式アップロード用のフォルダとそうでないのと分けてるよ。 後から手動で消しても大差ないし、SSHからなら一瞬だしな。
- 896 名前:nobodyさん mailto:sage [2014/02/01(土) 12:00:34.17 ID:???]
- 今まさに正式アップロードになろうとしてるやつを手動で消さないように注意ね
- 897 名前:nobodyさん mailto:sage [2014/02/01(土) 14:32:58.78 ID:???]
- それは日付指定して削除すればいいだけだよね
- 898 名前:nobodyさん mailto:sage [2014/02/01(土) 14:57:34.78 ID:???]
- 解決
しゅーーりょーー!
|

|