[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 02/18 06:00 / Filesize : 225 KB / Number-of Response : 899
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】フレームワーク CakePHP 16ホール目【v2.4】



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

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:???]
解決
しゅーーりょーー!






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<225KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef