- 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/
- 662 名前:nobodyさん mailto:sage [2014/06/11(水) 10:34:05.54 ID:???]
- あれ?
ユーザー情報の更新のリクエストにユーザーIDを含むようなフォームを作ったとしても Cakeのパラメータ改ざんとCSRFのチェックが有効なら 悪意あるユーザーがフォームを改ざんして他のユーザーIDに変えたら パラメータ改ざんチェックで引っかからんのかい? 教えてエロい人 まあそれでも>>661みたいに根本的に他のユーザの情報を更新できないようにしたほうが安心安全か 人為的なミスも起きにくいし データベースを変更しないユーザー情報表示画面の時だけリクエストにユーザーIDを含める ユーザー更新・削除時は対象レコードの選択にログインユーザのIDをそのまま使う
- 663 名前:nobodyさん mailto:sage [2014/06/11(水) 17:28:51.09 ID:???]
- >>662
CSRF対策は、そのページに行くまで正しい経路をたどってるかどうか フォーム改ざんは、そのページに含まれるポスト対象のフィールドが正しいかどうか のチェックだったはず。なので、POSTされるフィールド値を変更されたとしても、 Cake側では対応できないはず。
- 664 名前:nobodyさん mailto:sage [2014/06/11(水) 20:19:39.05 ID:???]
- ありがとうございます。
皆様のおかげでテストケースの有用性がわかるようになりました。 composerの便利さも。 jenkinsとかはどうなんですか?
- 665 名前:nobodyさん mailto:sage [2014/06/11(水) 21:00:28.09 ID:???]
- >>568の問題、2.5でも直ってねーじゃねーか
AppControllerを継承したAdminControllerを継承したEventControllerを動かしたら AdminControllerのusesに書いてあるモデルが、AdminControllerのbeforeFilter内で使えなかったぞ EventControllerのusesに追加したら動いたが、なんだかなー
- 666 名前:nobodyさん mailto:sage [2014/06/11(水) 21:09:11.43 ID:???]
- >>665
マージする継承クラスを指定できるパラメータがあったはず。 ドキュメント読んでみて。
- 667 名前:nobodyさん mailto:sage [2014/06/11(水) 21:52:04.25 ID:???]
- >>666
$_mergeParentのことか? これでAdminControllerを指定したら、今度はAppControllerをマージしてくれないからダメ。 ぐぐったらこれ皆困ってるらしくてそれぞれ独自に_mergeVarsを改造したりして直してるな。 なんでこの問題公式が放置してるんだ?
- 668 名前:nobodyさん mailto:sage [2014/06/11(水) 22:06:20.17 ID:???]
- >>667
あ、本当だな。 CakePHPが糞と言われるのがよく分かるwww
- 669 名前:nobodyさん mailto:sage [2014/06/11(水) 22:07:34.04 ID:???]
- それがCakeクオリティ!
3の開発で忙しいんじゃないかな(*´∀`*)
- 670 名前:nobodyさん mailto:sage [2014/06/11(水) 22:43:50.86 ID:???]
- 糞とか言ってる暇があったら issue 出すか、プルリクしろよ。
オレはやんないけど。
- 671 名前:nobodyさん mailto:sage [2014/06/12(木) 01:35:46.71 ID:???]
- >>670 出したところで却下かと。
>>667 はいくつかのコントローラに共通する機能が必要なら、 その時は継承ではなくてコンポーネントを作ったらどうかな? コンポーネントはそのために存在しているわけだし。 共通機能を継承で得ようとするのは、言語やフレームワークを問わず、 あんまり良い選択ではないと思うけど。
- 672 名前:nobodyさん mailto:sage [2014/06/12(木) 01:39:01.21 ID:???]
- え?
うーむこれがPHP脳というやつか
- 673 名前:nobodyさん mailto:sage [2014/06/12(木) 01:48:11.52 ID:???]
- >>672
言語は問わないと書いたがな。 たとえば EffectiveJava 第4章 項目14「継承よりコンポジションを選ぶ」 コンポーネントは文字通りこのコンポジションパターンだよ。
- 674 名前:nobodyさん mailto:sage [2014/06/12(木) 02:42:37.90 ID:???]
- >>671
>>665の例で言うと、EventController(他にもあるが)は管理者専用機能のコントローラである。 管理者用コントローラに共通の処理(ログインなど)をAdminControllerに書き、EventControllerはそれを継承した。 同じことをコンポーネントでやろうとすると、すべての管理者用コントローラーに まったく同じコード(コンポーネントのメソッドを呼び出すコード)を書かねばならないのでは? 非常に不便だと思うが、俺が勘違いしてたら教えて欲しい。
- 675 名前:nobodyさん mailto:sage [2014/06/12(木) 02:56:04.36 ID:???]
- Controller::beforeFilter() に言及してたから、
その処理なら Component::startup() でいいんじゃないかと思ったんだけど、どうだろう? 場合によってはメソッドの呼び出しも必要になるけれども けど、それは parent:: で親クラスのメソッドを呼ぶのとそれほど変わりないのかなと。
- 676 名前:nobodyさん mailto:sage [2014/06/12(木) 02:57:29.99 ID:???]
- >>671 がややずれてるのは
>いくつかのコントローラに共通する機能 としてるけど、>>665 で問題にしてるのは 広い意味では機能で間違いないんだけど 単に設定値である点においてズレてる。 ここではそれこそ、コンポーネントの 使い方なんかを指定しているわけで、 これは継承してほしいと思うよ。
- 677 名前:nobodyさん mailto:sage [2014/06/12(木) 03:11:49.49 ID:???]
- >>676
1.x系からのふるまいだから、仕様変更が入る可能性は低くないかな。 どうしても継承の継承が必要なケースで さらに、孫クラスに基底クラスから継承させたいパラメータがあるなら 基底クラスのコンストラクタで $this->uses に入れればいいわけだし。
- 678 名前:nobodyさん mailto:sage [2014/06/12(木) 09:12:51.74 ID:???]
- こんなゴミなもの対応されたら
また名が廃る
- 679 名前:nobodyさん mailto:sage [2014/06/12(木) 11:19:04.70 ID:???]
- 3のソースからは $_mergeParent は消えてるみたいだな。
- 680 名前:nobodyさん mailto:sage [2014/06/12(木) 11:22:15.38 ID:???]
- 常識的に考えて、マージしないとおかしいだろ
何だこの仕様
- 681 名前:nobodyさん mailto:sage [2014/06/12(木) 11:22:23.38 ID:???]
- 3使ってる人いるん?
どんな感じですか?
- 682 名前:nobodyさん mailto:sage [2014/06/12(木) 11:28:47.32 ID:???]
- 3は継承全部マージされるよ
パフォーマンスはお察し
- 683 名前:nobodyさん mailto:sage [2014/06/12(木) 12:11:49.21 ID:???]
- 3に苦労して移行するくらいなら、LaravelとかRailsに移るかな。
使ってこそのフレームワークだから、コミュニティの勢いは重要。
- 684 名前:nobodyさん mailto:sage [2014/06/12(木) 12:25:24.65 ID:???]
- cakeとsymfonyが本命FWとして争っていた時期が懐かしい
- 685 名前:nobodyさん mailto:sage [2014/06/12(木) 13:23:35.06 ID:???]
- みんな良く勉強できるな。他の言語に移るのは辛いわ。。。
- 686 名前:nobodyさん mailto:sage [2014/06/13(金) 08:29:35.00 ID:???]
- Cake使い続けるほうが長期的に見て辛い
- 687 名前:nobodyさん mailto:sage [2014/06/13(金) 08:39:23.01 ID:???]
- それはあるw
書いたコードの分だけ、負債がどんどん増えていく
- 688 名前:nobodyさん mailto:sage [2014/06/13(金) 09:00:43.34 ID:???]
- その負債の原因がCakeではなく自分にあるとも気づかぬままにw
- 689 名前:nobodyさん mailto:sage [2014/06/13(金) 10:44:08.86 ID:???]
- 管理者用の機能って、Adminコントローラを作るんじゃなくて
adminプレフィクスを使うのが一般的な方法だと思っていたんだが 実際のところみんなはどうやっているんだ?
- 690 名前:nobodyさん mailto:sage [2014/06/13(金) 11:00:42.12 ID:???]
- >>689
俺はクッキーでログイン画面作って、セッション有る無しでview表示を少し変えてる。 ずっとこれでやってるけど。。。 ダメかな?
- 691 名前:nobodyさん mailto:sage [2014/06/13(金) 12:20:32.10 ID:???]
- 一般利用者も管理者も同じaction通してるってことか。
全体的に管理者の機能が一般利用者とそんなに変わらなければそれでもいいのかもね。 プレフィクスを切っている場合でも public function admin_search() { $this->search(); } なんてコードは実際に書かれるわけで。
- 692 名前:nobodyさん mailto:sage [2014/06/13(金) 14:29:24.42 ID:???]
- >>689
面白そうだったんで最初やってみたけど、 同じクラスにヤバいアクションが混在するのが気持ち悪い。 それ以降やったこと無いな。 >>690 表示だけならそれでいいんじゃない?
- 693 名前:nobodyさん mailto:sage [2014/06/13(金) 17:20:45.32 ID:???]
- 俺は管理画面と一般画面のappは分けてるよ
管理画面だけ変えたい設定(キャッシュしないとかdebug2とか)があるし。
- 694 名前:nobodyさん mailto:sage [2014/06/14(土) 17:11:30.81 ID:???]
- みなさん、ホーム画面ってどのコントローラーでやってます?
ホーム用のコントローラーを作るか既存のコントローラーでやるか
- 695 名前:nobodyさん mailto:sage [2014/06/14(土) 17:15:43.40 ID:???]
- ホーム専用
- 696 名前:nobodyさん mailto:sage [2014/06/14(土) 17:19:19.02 ID:???]
- 専用じゃないや
HomesControllerだけど他にもaboutとかシンプルなページと兼用
- 697 名前:nobodyさん mailto:sage [2014/06/14(土) 17:26:13.81 ID:???]
- >>696
その場合、コントローラー付きで直アクセスされた場合、 何かリダイレクト処理を入れてるんですか? (/homes/indexとか/homes/aboutでアクセスされた場合)
- 698 名前:nobodyさん mailto:sage [2014/06/14(土) 17:37:45.91 ID:???]
- >>697
routes.php弄る
- 699 名前:nobodyさん mailto:sage [2014/06/14(土) 17:42:44.81 ID:???]
- あ、違うな
対策はしてない 最近やってないから忘れてる…
- 700 名前:nobodyさん [2014/06/14(土) 18:59:09.94 ID:dq/AB5k+]
- ルーティングについて質問です。
URLに「hoge」がついていたら、パラメーターをhogeとして受け取りたいです。 /users/ →UsersControllerのindexアクション /users/detail →UsersControllerのdetailアクション /hoge/users/ →UsersControllerのindexアクションでパラメーターhoge /hoge/users/detail →UsersControllerのdetailアクションでパラメーターhoge というイメージなのですが、こういう事はルーティングの設定で可能でしょうか? 可能なら書き方を教えてください。2.4系を使用しています。
- 701 名前:nobodyさん mailto:sage [2014/06/14(土) 21:50:21.39 ID:???]
- >>700
できるよ /* /hoge/users/ がマッチする設定 */ $route = '/hoge/users/'; $defaults = array('controller' => 'users', 'action' => 'index', 'hoge'); Router::connect($route, $defaults); /* /hoge/users/ がマッチする設定 */ $route = '/hoge/users/:action'; $defaults = array('controller' => 'users', 'hoge'); Router::connect($route, $defaults); /* /users/ と /users/detail は設定なしの標準でマッチ */
- 702 名前:nobodyさん mailto:sage [2014/06/14(土) 21:54:32.07 ID:???]
- あ、コメントミスった。正しくはこっち
/* (1) /hoge/users/ がマッチする設定 */ $route = '/hoge/users/'; $defaults = array('controller' => 'users', 'action' => 'index', 'hoge'); Router::connect($route, $defaults); /* (2) /hoge/users/detail などがマッチする設定 */ $route = '/hoge/users/:action'; $defaults = array('controller' => 'users', 'hoge'); Router::connect($route, $defaults); /users/ と /users/detail は設定なしの標準でマッチ (2) のパターンは detail 以外のアクションにも適用されることに注意して。 もしアクションを限定したいのなら別の書き方が必要。
- 703 名前:700 mailto:sage [2014/06/15(日) 00:45:45.76 ID:???]
- >>701-702
ありがとうございます。大変参考になりました。
- 704 名前:nobodyさん mailto:sage [2014/06/15(日) 14:07:12.52 ID:???]
- フォームヘルパーのinput作成のname部分を
data[Model][name]→nameにする方法って無いでしょうか?
- 705 名前:nobodyさん mailto:sage [2014/06/15(日) 16:51:00.51 ID:???]
- >>704
FormHelper のパラメータでってことなら不可。
- 706 名前:nobodyさん mailto:sage [2014/06/15(日) 17:42:36.89 ID:???]
- >>705
やっぱり無理ですか。諦めます
- 707 名前:336 mailto:sage [2014/06/15(日) 18:33:33.91 ID:???]
- >>706
オーバーライドして、アウトプットを置換するだけじゃん
- 708 名前:nobodyさん mailto:sage [2014/06/16(月) 00:20:49.49 ID:???]
- フォームヘルパー本当に使い辛い
散々ハマった挙げ句、自分でFormタグ書いてるわ
- 709 名前:nobodyさん [2014/06/16(月) 12:40:04.49 ID:2sVNmbqM]
- 現在、cakeのAuth認証を使ってログインシステムを作っているのですが
一度登録済のパスワードをユーザ操作により変更した場合、 パスワードの認証対象の値はハッシュ値で自動でDBに登録されるのですが それを再び登録し直すにはどうすれば良いのでしょうか? 例) [入力パスワード] [ハッシュ値] testpass ijierwaaasdfkjiewi32jasdfkj3 ↓ ユーザがパスワードを変更した場合 testpass2 asdafasdfasjd・・・etc ←ハッシュ化する関数は何でしょうか?
- 710 名前:nobodyさん mailto:sage [2014/06/16(月) 18:38:51.83 ID:???]
- フィームヘルパーのselectで0の値が空欄になるのは仕様ですか?
- 711 名前:nobodyさん mailto:sage [2014/06/17(火) 00:26:53.74 ID:???]
- >>709
Security::hash($password, null, null) ちなみに v2.4 までは AuthComponent::password($password) だったけど、2.5 からは非推奨。
- 712 名前:nobodyさん mailto:sage [2014/06/17(火) 00:34:56.25 ID:???]
- Security::hash() の第2と第3パラメータは要らないみたいだ
Security::hash($password) でOK
- 713 名前:nobodyさん mailto:sage [2014/06/17(火) 06:18:50.52 ID:???]
- CakePHPてprimary idは必ずauto incrementのintでないと駄目なん?
INSERT時にidがnullであることを前提にしてるから、自前でid渡すと バリデーション時にisUniqueやonCreateの指定がうまくいかなくなるね。 これはCakeではそういうもんなのか。自前でバリデーション書くしかないのか。
- 714 名前:nobodyさん mailto:sage [2014/06/17(火) 11:33:53.22 ID:???]
- >>713
Model::$primaryKey で設定 動的な変更も可 複数キーは不可。3から対応
- 715 名前:nobodyさん mailto:sage [2014/06/17(火) 11:38:54.51 ID:???]
- >>713
>バリデーション時にisUniqueやonCreateの指定がうまくいかなくなるね。 そうか?
- 716 名前:nobodyさん mailto:sage [2014/06/17(火) 12:03:04.11 ID:???]
- >>714
それはもちろん指定してる。 だが、isUniqueやonCreateはうまくいかなかった。 結局数字のidを追加して対応した。
- 717 名前:nobodyさん mailto:sage [2014/06/17(火) 12:32:01.97 ID:???]
- あぁ、そういうことか。なるほど。
onCreate は使ったこと無いんでよく分からんけど、 isUnique は、保存前に Model::$id をセットしてやってもダメなん?
- 718 名前:nobodyさん mailto:sage [2014/06/17(火) 16:22:43.39 ID:???]
- >>717
それは試してないな。primaryKeyの名前がidじゃなかったから、idは一切いじらなかった。 Model::isUniqueのソースあらためて見たら、$this->idにNULLを入れていたらうまくいったかもしれん。
- 719 名前:nobodyさん mailto:sage [2014/06/17(火) 17:08:04.87 ID:???]
- Model::$id は、primaryKey の値のことなので、
スキーマのフィールド名が id であるかどうかとは無関係。
- 720 名前:nobodyさん mailto:sage [2014/06/18(水) 03:28:03.88 ID:???]
- >>719
なるほど! 後で試してみよう
- 721 名前:nobodyさん [2014/06/18(水) 12:55:32.95 ID:1XJ5G0pn]
- すみません、今ドットインストールの講座が終わりまして、
自分でCakePHPのサイトを作ろうと思っているのですが、気になった点がありました。 今、作ろうとしているサイトは、ポートフォリオ系になるので、 自分が作ったゲームやWebサイトを置く予定であります。 CakePHPを使う必要性は薄いのですが、フレームワーク経験が必須なため、 経験を積むという意味で、CakePHPを使用しました。 そして、サイトには、大きく分類して、トップページ、ゲーム、Webサイト、リンクがあり、 それぞれ、topsテーブル、gamesテーブル、sitesテーブル、linksテーブルがあります。 そこで、気になったのが、 CakePHPでは、Controller、View、Model、データテーブルの名前を揃えなければならないと習ったのですが、 そうなると、出力するテーブルが違う場合は、GamesController、SiteControllerのように、 コントローラーとフォルダを用意すべきでしょうか。 それとも、1つのコントローラー、1つのViewフォルダにまとめられるでしょうか?
- 722 名前:nobodyさん mailto:sage [2014/06/18(水) 13:01:47.43 ID:???]
- 好きなようにすれば良い
- 723 名前:nobodyさん [2014/06/18(水) 13:23:44.25 ID:1XJ5G0pn]
- つまり、Controller名、フォルダ名と異なるテーブルを使用することは可能で、
特に問題ないとのことでしょうか?
- 724 名前:nobodyさん mailto:sage [2014/06/18(水) 14:07:44.93 ID:???]
- >>721
topsってテーブルが気になるな。何があるテーブルか分からん。 sitesテーブルとlinksテーブルの違いとか。 お前さんの用途は「自作のゲームやWebサイトの情報を公開する」だろ? じゃ、「products」テーブルだけか、分けても「links」「games」だけだと思うんだが。 あと、基本的なCakeの命名規則が分かってないよ。 Controller:GamesController Model :GameModel View :Games テーブル:games
- 725 名前:nobodyさん [2014/06/18(水) 14:20:51.04 ID:lT0uB39l]
- >>711 >>712
ありがとうございます!!
- 726 名前:nobodyさん [2014/06/18(水) 14:29:45.54 ID:1XJ5G0pn]
- 説明がたりませんでした、申し訳ありません。
Webサイトに載せるのは、ゲームとWebサイトです。 topsは、トップページなのですが、ここに更新履歴を置くところです sitesは、メインとなるホームページ以外に作った、Webサイトを置くところです。 ここでは、ゲーム以外の製作物と認識してくだされば十分です。 linksは、素材とかをお借りしたサイトとかへのリンクです。 gamesテーブルとsitesテーブルは、productsテーブルにまとめたほうがよさそうです。 ご助言ありがとうございます。 そうなると、 Controller:TopsController Model :TopModel View :Tops テーブル:tops Controller:GamesController Model :GameModel View :Games テーブル:games Controller:LinksController Model :LinkModel View :Links テーブル:link という風に分けた方が、使用するテーブル単位で分けた方が無難ということでしょうか
- 727 名前:nobodyさん mailto:sage [2014/06/18(水) 15:13:40.83 ID:???]
- だからtopsって何なんだよw
更新履歴ならnewsとかupdatesとかにしたらどうだ?
- 728 名前:nobodyさん mailto:sage [2014/06/18(水) 15:41:33.35 ID:???]
- 1XJ5G0pnはもう少し勉強したほうがいいな。根本的なMVCが分かってない
- 729 名前:nobodyさん mailto:sage [2014/06/18(水) 15:45:20.63 ID:???]
- いや英語を勉強した方がいい
- 730 名前:nobodyさん [2014/06/18(水) 16:30:07.27 ID:1XJ5G0pn]
- すみません、画面名からテーブル名作ってしまいました。
最初は、更新履歴を表したテーブル名は、newsでつけていたのですが、 コントローラー名とフォルダ名を揃えなければならないということ思い出して、 それでトップ画面の名前を、更新履歴のテーブル名にしてしまいました。 (トップ画面に更新履歴を表示させるため) それで、テーブル名とコントローラー名、フォルダ名がずれていても問題ないということでしょうか?
- 731 名前:nobodyさん mailto:sage [2014/06/18(水) 16:39:06.81 ID:???]
- モデルとコントローラはむしろずれてないとバグりやすくなるだろ。
1画面にニュースとリンクを両方表示したいときどうするつもりだ? 画面に名前をつけたのがView、データの集まりに名前をつけたのがModel。 Cakeでは便宜上Viewのフォルダ名とコントローラ名を合わせると幸せになれるというだけ。
- 732 名前:nobodyさん mailto:sage [2014/06/18(水) 16:39:37.90 ID:???]
- ずれるの意味が分からんが、MVCでバラバラなら問題あるだろ
- 733 名前:nobodyさん [2014/06/18(水) 16:59:54.99 ID:ma+gijMn]
- 秒速で1億稼ぐ豚が・・・レイプ
www.tanteifile.com/diary/2014/06/17_01/
- 734 名前:nobodyさん mailto:sage [2014/06/18(水) 17:34:03.35 ID:???]
- 上の方でも誰か書いてるけど、1XJ5G0pn はまず好きにすればいい。
つまり、いろいろ質問してるけど、とにかくやってみてから 問題を見つけて行ったほうがいい。 手を動かさない奴に何をいっても無駄だ。 >という風に分けた方が、使用するテーブル単位で分けた方が無難ということでしょうか などという小賢しい質問をする前にまず作れ。 そして壊して作りなおせ。
- 735 名前:nobodyさん mailto:sage [2014/06/18(水) 23:32:42.92 ID:???]
- Cakeマスターの皆さんに質問
ViewからModelのvalidateを参照して、「名前は○文字までです」みたいな表示をしたい。 ベストプラクティスなやり方ありますかね? もしくはViewからもModelからも見える所に数値のdefineを置くべきだろうか。
- 736 名前:nobodyさん mailto:sage [2014/06/19(木) 00:35:54.86 ID:???]
- >>735
文字数制限をViewでも管理したいってことか? そう頻繁に変わるものじゃないから、 Viewに直接注意書きを書くのが一番だと思うが
- 737 名前:nobodyさん mailto:sage [2014/06/19(木) 01:10:02.52 ID:???]
- うちは最近設定値関係は Config に json で保存するパターンを試してる。
パーサのオーバーヘッドが多少気になるけど、まぁ悪くない。
- 738 名前:nobodyさん mailto:sage [2014/06/19(木) 01:18:19.13 ID:???]
- >>736
Viewから変更する必要はなく、注意書きを書きたいだけなんだよね 制限文字数なんかは後から変更される可能性があるので、ModelとViewの両方に直書きしたくない やはり設定ファイル式にすべきか
- 739 名前:nobodyさん mailto:sage [2014/06/19(木) 02:04:30.51 ID:???]
- Configモデルに数値を保存してコントローラーから操作すればいいじゃん。
モデルキャッシュを使うと、重くならないぞ
- 740 名前:nobodyさん mailto:sage [2014/06/19(木) 02:06:51.32 ID:???]
- viewからmodelを参照するのは全く構わないと思う。俺はviewからいつでもmodelのインスタンスを参照できるように$getmodel('Foo')みたいなクロージャを用意してるので、バリデーションルールにもアクセスできる。
- 741 名前:nobodyさん mailto:sage [2014/06/19(木) 16:22:55.58 ID:???]
- Cakephp2で、core.phpのprefixesを有効にしています。
Configure::write('Routing.prefixes', array('admin')); routes.phpでルーティングをしたい時、 Router::connect('/', array('controller' => 'pages', 'action' => 'index', 'home')); Router::connect('/admin/', array('controller' => 'pages', 'admin' => true)); としているのですが、同じような内容を2回書くのが面倒です。 これは仕様として仕方ないのでしょうか?
- 742 名前:nobodyさん mailto:sage [2014/06/19(木) 23:44:09.30 ID:???]
- cakephpを2から3に上げる時とか、
業務でやってたら怖くない? 慣れなん? サーバー移転ですら怖くてできん。。
- 743 名前:nobodyさん mailto:sage [2014/06/19(木) 23:45:58.63 ID:???]
- 業務システムのフレームワークをベータ版にしようとするお前がこえーよw
- 744 名前:nobodyさん mailto:sage [2014/06/19(木) 23:47:32.48 ID:???]
- >>743
今はそうだけどさ 仮にstableになっても。
- 745 名前:nobodyさん mailto:sage [2014/06/20(金) 00:11:16.79 ID:???]
- 2->3 はハードル高そうだな
- 746 名前:nobodyさん mailto:sage [2014/06/20(金) 01:16:57.68 ID:???]
- 2であと3年は戦うつもり
- 747 名前:nobodyさん mailto:sage [2014/06/20(金) 09:35:32.81 ID:???]
- 3に変えてまでCakeについていく気はないな
別のフレームワークに変えるだろう でも今からだと何がいいんだろう
- 748 名前:nobodyさん mailto:sage [2014/06/20(金) 10:09:05.76 ID:???]
- >>747
ファルコンってどうなん? 速いみたいだけど。
- 749 名前:nobodyさん mailto:sage [2014/06/20(金) 11:20:56.99 ID:???]
- >>747
laravelじゃないか phalconは業務でも使ってるけど バグはそれなりにあって、Segmentation Faultで落ちると結構大変 速度は比較にならないほど速いし、フレームワークの仕組みも良いけどさ
- 750 名前:nobodyさん [2014/06/20(金) 16:37:24.67 ID:1CC0efjo]
- cakePHPを使ったシステムで
アップローダーを作ろうとしているのですがウィルスファイルをアップロードされると不味いので アップロード可能なファイル種類を事前に jpg のみに制限しておいた方が無難でしょうか?
- 751 名前:nobodyさん mailto:sage [2014/06/20(金) 17:18:38.33 ID:???]
- >>750
どうやって制限するの?
- 752 名前:nobodyさん mailto:sage [2014/06/20(金) 17:31:29.21 ID:???]
- >>751
バリデーションに書く
- 753 名前:nobodyさん mailto:sage [2014/06/20(金) 17:41:37.43 ID:???]
- >>752
mimetypeで制限するってことか jpeg画像のウィルスとかもあるからねぇ
- 754 名前:nobodyさん mailto:sage [2014/06/20(金) 17:53:47.33 ID:???]
- つーか、jpeg型ウィルスって実行するには
別のウィルスに感染させる必要があるんだろ? 単に画像を閲覧しただけで感染するなら、対策とか無理じゃないか? twitterとかfacebookはウィルスだらけになるぞ
- 755 名前:nobodyさん [2014/06/20(金) 18:27:17.32 ID:I3iP4JeK]
- という事はつまり、jpgファイルであったとしても >>754のアドバイスを参考にすると
jpgのみアップロード可能にしておけば、ウィルスに感染していない人が その画像を閲覧する分には何も影響がないと言う事でしょうか? ウィルス感染している人自体が少ないと思うので被害は少ないですよね。
- 756 名前:nobodyさん mailto:sage [2014/06/20(金) 18:38:27.21 ID:???]
- >>755
と言うより、防ぎようがない気もする。 でも、画像アップロード出来るWebサービスは日々オープンしてるわけだし、 そこまで神経質になっても仕方ないよ。
- 757 名前:336 mailto:sage [2014/06/20(金) 18:41:21.97 ID:???]
- 再エンコード
- 758 名前:nobodyさん mailto:sage [2014/06/20(金) 20:23:31.26 ID:???]
- それいいね、目から鱗
- 759 名前:nobodyさん [2014/06/20(金) 21:08:45.45 ID:5NSL3HdG]
- >>757
詳しく
- 760 名前:nobodyさん mailto:sage [2014/06/20(金) 22:04:51.68 ID:???]
- >>759
画像を読んで再エンコードすれば 余計なバイナリが入ってたとしてもなくなる
- 761 名前:nobodyさん mailto:sage [2014/06/21(土) 00:35:05.85 ID:???]
- Wordpressが確か再エンコードしていた気がする
- 762 名前:nobodyさん mailto:sage [2014/06/21(土) 00:48:00.43 ID:???]
- それは再エンコードじゃなくてサムネイル作ってるだけでは。
まあサムネイル作って無効な画像かどうか(ライブラリによるがnullが返ったり真っ白画像になったり)を調べるという手はあるかも。
|

|