1 名前:nobodyさん [2014/03/01(土) 17:03:24.57 ID:8AJ9GD6E] 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/1378659370/
762 名前:nobodyさん mailto:sage [2014/06/21(土) 00:48:00.43 ID:???] それは再エンコードじゃなくてサムネイル作ってるだけでは。 まあサムネイル作って無効な画像かどうか(ライブラリによるがnullが返ったり真っ白画像になったり)を調べるという手はあるかも。
763 名前:nobodyさん mailto:sage [2014/06/21(土) 01:03:27.67 ID:???] 今どき、JPEGだけのアップローダーにどんな役割があるのか興味あるな。
764 名前:nobodyさん [2014/06/21(土) 03:26:03.92 ID:f1vlSuIg] ↑ jpgでいいやん。jpgでエロ画像みえるやん。jpgで072できるやん。
765 名前:nobodyさん mailto:sage [2014/06/22(日) 12:51:34.63 ID:???] 以下のテーブル2つ(hasOne)で、profilesデータをsaveする際に insertは問題ないのですがupdateが上手くいきません。 (上書きされずに毎回insertされる) saveメソッドでupdateするには主キーを渡す必要があるのは分かっているのですが、 その方法がよく分かりません。このような場合はどうすれば良いのでしょうか? usesテーブル -id//主キー -username -password profilesテーブル -id//主キー -user_id//外部キー -birthday class ProfilesController extends AppController{ public function edit(){ $id=$this->Auth->user('id'); if($this->request->is(array('post','put'))) { $this->request->data['Profile']['user_id'] = $id; if ($this->Profile->save($this->request->data)) { $this->Session->setFlash(__('The profile has been saved.')); } } } テーブルを1つにまとめてしまえば話しは早いのですが 別の都合でそれができません。
766 名前:nobodyさん mailto:sage [2014/06/22(日) 14:20:31.99 ID:???] >>765 profileにuser_idを渡すはX profileにidを渡さないと。
767 名前:nobodyさん mailto:sage [2014/06/22(日) 15:16:50.54 ID:???] >>766 ありがとうございます。 解決しました。
768 名前:nobodyさん mailto:sage [2014/06/22(日) 22:23:19.92 ID:???] Model::create()したらテーブルカラムのDEFAULT値が勝手にdataにセットされるの止めて欲しいわ。 おかげでUPDATE処理時に更新対象じゃないカラムが勝手にDEFAULT値に変わってえらい事になった。 なにしてくれるんじゃい。
769 名前:nobodyさん mailto:sage [2014/06/22(日) 23:25:35.42 ID:???] whitelistつかえ
770 名前:nobodyさん mailto:sage [2014/06/24(火) 16:40:44.26 ID:???] Cakeでシステム作って、Apache benchしたらRequests per secondが1.5ぐらいと激遅。 DBアクセスやめて固定のJSONを1行返すだけにしても大きく変わらず。 Core i7のWin8のXampp環境でもCentOSのVPS環境でもそんな感じ。 いくらCakeが遅いって言っても遅すぎると思うのだが、なにかおかしいです?
771 名前:nobodyさん mailto:sage [2014/06/24(火) 17:44:24.00 ID:???] キャッシュ使えや
772 名前:nobodyさん mailto:sage [2014/06/24(火) 17:59:57.86 ID:???] そういうレベルではない 根本何か間違えてるだけだろ
773 名前:nobodyさん mailto:sage [2014/06/24(火) 21:11:44.93 ID:???] ネットワークの問題かApache benchの使い方間違えてるに1ペリカ
774 名前:nobodyさん [2014/06/24(火) 23:54:56.03 ID:NjjfXiKQ] 検索ボタンを押した際に GETパラメータでcakeのコントローラにアクセスを掛けたいのですがどうすれば良いでしょうか? 本来は、検索ボタンを押した際に@でコントローラのメソッドにアクセスを したいのですが、Aになってしまいます。 @・・・期待しているGETアクセス test.com/hoge/buta/123/tarou A・・・想定外に生成されるURL test.com/hoge/buta?id=123&name=tarou コントローラ HogeControler { public function Buta($id , $name) { //ここで「/」区切りでアクセスされた値を取得する。 } } HTML <form name="name_form" action="/hoge/buta" method="get"> <input type="text" id="id_test" name="id" value=""> <input type="text" id="id_test" name="name" value=""> </form>
775 名前:nobodyさん mailto:sage [2014/06/25(水) 00:05:21.21 ID:???] javascript
776 名前:nobodyさん mailto:sage [2014/06/25(水) 00:44:49.49 ID:???] >>774 GETパラメータならAで正しいだろ
777 名前:nobodyさん mailto:sage [2014/06/25(水) 00:53:52.36 ID:???] >>774 HTTPのお勉強からやり直しましょう
778 名前:774 [2014/06/25(水) 01:07:07.36 ID:1IpoS71w] >>776 >>775 やはり通常のFormではCakePHP用のURLを生成する事は出来ないみたいですね。 仕方無いので検索ボタンをクリック時に動的にURLを組み替えてリダイレクトする事により実装する事にします。
779 名前:nobodyさん mailto:sage [2014/06/25(水) 01:11:23.04 ID:???] 例に突っ込むのもアレだが ID指定した時点で検索というよりただの詳細表示のような
780 名前:nobodyさん mailto:sage [2014/06/25(水) 01:50:00.94 ID:???] javascriptでやるのが無難だな。俺もそうしてるし。
781 名前:nobodyさん mailto:sage [2014/06/25(水) 12:47:26.75 ID:???] 検索項目が増える時のことを考えると、 2の方がいいと思うんだが
782 名前:nobodyさん [2014/06/25(水) 13:46:34.28 ID:cgps1MKk] >2の方がいいと思うんだが どういうこと?
783 名前:nobodyさん mailto:sage [2014/06/25(水) 14:13:35.35 ID:???] そのあたりはAPIの設計に関わることだからなんとも言えない
784 名前:nobodyさん mailto:sage [2014/06/25(水) 14:21:54.78 ID:???] 検索項目が増えるのにGETでやりたいってのは、設計ミスじゃね? それならPOSTにしろよ
785 名前:nobodyさん mailto:sage [2014/06/25(水) 15:45:34.59 ID:???] >>782 ルーティングや引数の設定が面倒。 ていうか大体の検索エンジンとかgetパラメータでやってね?
786 名前:nobodyさん mailto:sage [2014/06/25(水) 20:30:38.80 ID:???] 冪等かつ安全な処理はGETが普通っすね POSTだとキャッシュもされないし
787 名前:nobodyさん mailto:sage [2014/06/25(水) 21:43:08.93 ID:???] 記事中の hoge.com/app/webroot/media/tarot.jpg が読まれた際、 hoge.com/media/tarot. jpg が読まれるようにしいのですが、良い方法ないでしょうか? nginxでやってます。 ちなみにhoge.comは自分のドメインです。
788 名前:nobodyさん mailto:sage [2014/06/25(水) 21:50:26.46 ID:???] >>787 意味わからん
789 名前:nobodyさん mailto:sage [2014/06/25(水) 22:32:59.91 ID:???] >>788 すいません。自己解決しました。
790 名前:nobodyさん mailto:sage [2014/06/26(木) 02:12:49.47 ID:???] せっかくだから張っておけよ www.matomater.com/16864/
791 名前:nobodyさん [2014/06/26(木) 21:12:17.80 ID:ceT3Qpnq] linux のシェルについての話しはどこですれば良いですか? ここだとすれ違いですよね?
792 名前:nobodyさん mailto:sage [2014/06/26(木) 21:39:46.70 ID:???] php で日付の正規表現を行いたいのですが 以下の形式の日付型文字列であればOK、違っていればNGと厳密なバリデーションチェックを掛けたいのですが どうすれば良いでしょうか? 2014-06-10 - で split してチェックを掛けるしかないのでしょうか?
793 名前:nobodyさん mailto:sage [2014/06/26(木) 22:09:00.35 ID:???] $check = '2014-06-10'; $isValid = date('Y-m-d', strtotime($check)) === $check;
794 名前:nobodyさん [2014/06/26(木) 22:17:51.48 ID:h6oXqOHu] >>793 サンクス! ここまで短く判定出来るなんて、、、 驚きです。
795 名前:nobodyさん mailto:sage [2014/06/26(木) 22:29:39.04 ID:???] PHPって質問スレないのか?
796 名前:nobodyさん mailto:sage [2014/06/26(木) 22:32:22.88 ID:???] date関数って第二引数にfalse突っ込んでも0と同じ扱いで動くのか きめえな
797 名前:nobodyさん mailto:sage [2014/06/26(木) 22:57:46.67 ID:???] >>796 大丈夫だよ。あなたの顔に比べれば断然綺麗なものですよ^^b
798 名前:nobodyさん mailto:sage [2014/06/26(木) 23:04:09.80 ID:???] これがPHPerです
799 名前:nobodyさん mailto:sage [2014/06/26(木) 23:54:58.72 ID:???] キモくても何でも動けばいいんだよ。形にこだわり過ぎるのはよくない
800 名前:nobodyさん mailto:sage [2014/06/27(金) 11:40:50.24 ID:???] デザインやHTMLコーディングもやっている人に聞きたいんだけど、 先にHTMLコーディングをしてある程度のファイルを作って、 その後にViewファイルを作る?それともいきなりViewから作る? 俺はトップページとか主要なページのHTMLコーディングを先にして それからView化するだけど、後から変更する事が多くて二度手間になるのを感じる。 だから、先にデザインとかレイアウトとか全て完璧に決めて、 それからView化した方が良いのかな?とも思うんだけど、 すぐに動きを見たいから、Controllerと同時に作りたくなる。 結果、直してばかりで面倒になって投げ出したくなるw そんなアプリばかり作ってるんだけど、何か良いやり方はないかな?
801 名前:nobodyさん mailto:sage [2014/06/27(金) 12:27:28.48 ID:???] 手書きラフ ↓ Photoshop ↓ マークアップ ↓ CSS
802 名前:nobodyさん mailto:sage [2014/06/27(金) 12:28:38.18 ID:???] >>800 後からの変更を少なくする調整力があれば問題なし。
803 名前:nobodyさん mailto:sage [2014/06/27(金) 13:16:39.40 ID:???] >>801 俺も同じやり方なんだが、後からマークアップを変えたくなる。 >>802 Cakeの場合、レイアウトやエレメントに分けるだろ? その後にマークアップの変更やデザインの追加・変更などが入ると、 何度もやり直したりして、投げ出したくなる
804 名前:nobodyさん mailto:sage [2014/06/27(金) 16:32:32.36 ID:???] たしかにビューは混沌とするからな 俺はややこしくなりそうな場合だけは ビューには echo 以外は一切記述しないのを目標に、 専用のヘルパーを作って加工のロジックは隠ぺいするようにしてる。 それなりに扱い易くはなるが、万能ではない。
805 名前:nobodyさん [2014/06/29(日) 22:38:39.46 ID:qTkMeLPd] JavaScriptを用途ごとにファイルに分けると、本番環境にアップする最に圧縮する手間が凄くかかります。 そこで、1ファイルにゴリゴリ共通関数も纏めて書いてますが、皆さんはどうしてますか?
806 名前:nobodyさん mailto:sage [2014/06/29(日) 22:52:42.19 ID:???] >>805 gruntでまとめて処理 coffeescriptで用途ごとにファイル作成ってやってるよ
807 名前:nobodyさん mailto:sage [2014/06/30(月) 08:44:32.98 ID:???] 僕はgulpちゃん!
808 名前:nobodyさん mailto:sage [2014/06/30(月) 14:03:48.42 ID:???] そもそも圧縮アップしない。ファイルサイズが少々減る程度で、大して変わらん
809 名前:nobodyさん mailto:sage [2014/06/30(月) 16:21:21.70 ID:???] phpstormで自動圧縮できるんじゃないだろうか。
810 名前:nobodyさん [2014/06/30(月) 17:47:06.48 ID:cdSjRfUN] >>808 圧縮しないとソースコード筒抜けじゃん。 難読化しないといけないんとちゃいまっか?
811 名前:nobodyさん mailto:sage [2014/06/30(月) 20:09:23.46 ID:???] >>810 Javascriptだろ?筒抜けで困ることなんて無いと思うが
812 名前:nobodyさん [2014/06/30(月) 20:22:22.30 ID:cdSjRfUN] >>811 我ながらコードセンスが良い 綺麗なコードなのでぱくられたくないなーとw
813 名前:nobodyさん mailto:sage [2014/07/01(火) 19:58:59.95 ID:???] Cakeでtwigを使いたいんだが TwigView以外で使えるのない?
814 名前:nobodyさん mailto:sage [2014/07/02(水) 17:32:38.36 ID:???] Cake2系でhasManyの絞り込みってどうすれば良いのでしょうか? $this->Model->hasMany['Hoge']['conditions'] = array('Hoge.type' => 1); $data = $this->Model->find('all'); とすれば、hasMany先のテーブル内で絞り込みは出来るのですが、 絞り込みの結果、「一致するデータがない」場合でも、 Modelのデータは取得できてしまいます。 なにか良い書き方、方法は無いでしょうか?
815 名前:nobodyさん mailto:sage [2014/07/02(水) 23:13:55.69 ID:???] cakeのmodelのリレーションってみんな使ってるのかな。 俺的には使わないほうが後々面倒がないという考えなんだが。
816 名前:nobodyさん mailto:sage [2014/07/03(木) 00:15:43.70 ID:???] >>814 Hoge モデルを、hasMany とは別に存在チェック用に hasOne でアソシエーション張る $hasOne = array('HogeOne' => array('className' => 'Hoge')); で、検索条件に HogeOne.id != null を加える。
817 名前:nobodyさん mailto:sage [2014/07/03(木) 00:16:37.86 ID:???] >>815 何のためにCake使ってんのか意味不明すぎる
818 名前:nobodyさん [2014/07/03(木) 00:28:54.40 ID:Gi3lwfX6] 仮に2chの様な規模の掲示板をcakeで構築しようとしたら (寧ろ構築は出来るかもしれないけど) パフォーマンス劣化が半端無い気がするのですが如何でしょうか? 2chがDBを使わずにログファイルで管理しているのは やはりFW何かを使うと速度低下が否めないからでしょうね。
819 名前:814 mailto:sage [2014/07/03(木) 00:36:46.85 ID:???] >>816 出来ました!!!こんな方法があったんですね。 大変勉強になりました。ありがとうございました。
820 名前:nobodyさん mailto:sage [2014/07/03(木) 00:56:55.55 ID:???] 2chのread.cgiってmod_cgidso使っててC言語製じゃなかった? どの程度の性能なのかしらんけどFW以前にPHP使ってる時点ですでにサーバの数増やさざるを得なさそうな気が ORMやFW使うとさらに遅くなるってのは間違いない
821 名前:nobodyさん mailto:sage [2014/07/03(木) 01:07:33.29 ID:???] >>818 cakeが他のFWより極端に遅いってのがあるから FW以前の話だな
822 名前:nobodyさん mailto:sage [2014/07/03(木) 01:11:12.39 ID:???] www.techempower.com/benchmarks/#section=data-r9&hw=peak&test=query FacebookみたいにHHVM使うなら話は別かもな Cakeがまともに動くのかしらんが
823 名前:nobodyさん mailto:sage [2014/07/03(木) 01:28:28.14 ID:???] >>822 hhvmが早いといっても、php-raw(素のphp)の2倍しか速くない cakeは遅すぎて計測不能 cakeよりちょっと速いといわれる railsやsymfonyでphp-rawで書いたのの1/10の速さでしかない cakeじゃ無理だな fuelでphp-rawの半分、phalconでphp-rawと同じぐらいだからここら辺で書かないと 他はyafやphpixieな
824 名前:nobodyさん mailto:sage [2014/07/03(木) 01:37:08.52 ID:???] Cakeで頑張るならPHPの中間コードキャッシュ入れて DBスレーブサーバ(ないしAmazon RDS)とロードバランサ使って ユーザが増えた時はサーバ台数多めで対応 徐々にコードやキャッシュを調整して台数や一台あたりに要求される性能を減らしていくって感じか 速度もある程度はスケールアウトでカバーできるいい時代になった まず新サービスに大勢の人が来る保証もないし 動作速度より開発速度や書きやすさを優先するからこそのFWっしょ そんなに速度が気になるなら最初からPhalconやJavaやJVM系言語やC#でも使うよろし
825 名前:nobodyさん mailto:sage [2014/07/03(木) 01:41:59.54 ID:???] >>824 バランスじゃないのかな? railsは突出して開発速度?が速いけど cakeだとphalconと比べてもあまり大差ないみたいだしな 流石に10倍速度が違う≒アクセス10倍の差があるだからな あくまで、速度が重要視される場合な。 cakeで捌ける人数しかこない前提なら問題ないし 元の話の2chなら話にならないよな
826 名前:nobodyさん mailto:sage [2014/07/03(木) 01:56:21.45 ID:???] www.techempower.com/benchmarks/#section=data-r5&hw=i7&test=query www.techempower.com/benchmarks/#section=data-r7&hw=i7&test=query CakePHPが遅すぎて計測不能なんじゃなくてフレームワークが増えすぎて中の人が徐々に手が回らなくなっているのでは? 過去のを見るとちゃんと結果が載ってる回もある ところでDartの結果良いな いつの間にこんなに
827 名前:nobodyさん mailto:sage [2014/07/03(木) 02:01:52.84 ID:???] >>826 githubでコード集めてるから 人気がなくなった(外部のコードを書く人がいなくなった)ってほうになるな
828 名前:nobodyさん mailto:sage [2014/07/03(木) 02:04:48.87 ID:???] >>826 r7でrailsぐらいか
829 名前:nobodyさん mailto:sage [2014/07/03(木) 02:05:10.64 ID:???] 開発者がCakePHPから他に移ってるのもあるだろうし Cakeでベンチ対決に参加しても悲しくなるだけだし
830 名前:nobodyさん [2014/07/03(木) 02:09:04.71 ID:JnE+cuIZ] >>820 >>821 >>822 >823 そもそも2ch位のトラフィックを捌けるFWとかなさそうですね。
831 名前:nobodyさん [2014/07/03(木) 02:10:17.86 ID:JnE+cuIZ] >>824 流石に2chクラスだとCakeじゃ無理でしょ。
832 名前:nobodyさん [2014/07/03(木) 02:11:15.57 ID:JnE+cuIZ] cakeで作られている大規模サイトで有名なのはどこですか?
833 名前:nobodyさん mailto:sage [2014/07/03(木) 02:14:41.70 ID:???] 2chクラスの人が集まるコンテンツを作る方が大変なんですけど
834 名前:nobodyさん mailto:sage [2014/07/03(木) 02:33:52.59 ID:???] >>830 '捌ける'の前提がよく分からんが RDBとORMありのFW使った上で2chと同じサーバスペック同じ台数で捌けるかどうかってことか? Cakeには無理だろうが全FWが駄目と判断するのは早計でしょ 2chのWebサーバって未だにEvent MPMがまともに使えないVer.のApacheだし 書き込みのほうのbbs.cgiは所詮Perlだしガチガチに高速化されてるとも思えないな www.techempower.com/benchmarks/#section=data-r9&hw=i7&test=json >>833 まったくだ
835 名前:nobodyさん mailto:sage [2014/07/03(木) 02:34:55.37 ID:???] >>832 nanapiとランサーズ
836 名前:nobodyさん [2014/07/03(木) 02:56:35.42 ID:JxPD7Z4w] >>834 >>835 ランサーズの重たさを見てやはりcakeの底が見えました。 ところでなんで ランサーズ がcake使ってるってわかったの?
837 名前:nobodyさん mailto:sage [2014/07/03(木) 03:02:55.42 ID:???] 公式ブログで公表してるから。
838 名前:nobodyさん mailto:sage [2014/07/03(木) 14:01:04.31 ID:???] >>826 やっぱJVM系優秀だなぁ。