【PHP】フレームワーク CakePHP 17ホール目【v3α】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2014/08/02(土) 21:57:41.01ID:LI0DdohH質問するときはCakePHPのバージョンを書きましょう
※他フレームワークとの比較等はスレ違いです
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
github - cakephp
http://github.com/cakephp
the Bakery
http://bakery.cakephp.org/
cookbook(マニュアル)
[3.x] http://book.cakephp.org/3.0/
[2.x] http://book.cakephp.org/2.0/ja/
[1.3] http://book.cakephp.org/1.3/ja/
https://twitter.com/cakephp
https://www.facebook.com/CakePHP
■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
※前スレ
http://kanae.2ch.net/test/read.cgi/php/1393661004/
0896nobodyさん
2016/10/20(木) 16:58:49.96ID:???0897nobodyさん
2016/10/20(木) 20:20:18.11ID:???0898nobodyさん
2016/10/21(金) 19:15:59.13ID:???直感的で専門的にはなったけど、とっつきづらくなった。お前らはもう慣れたの?
0900nobodyさん
2016/10/23(日) 11:21:27.72ID:MVhecrGG管理用でCache::delete('Model');しても当然ながら開発用の同一キャッシュは消えません。
なので、パス指定してulinkで削除しているのですが、他に良い方法はないでしょうか?
0902nobodyさん
2016/10/23(日) 19:58:04.84ID:MVhecrGGググっても事例がないので、直接削除で納得します。
ありがとうございました。
0903nobodyさん
2016/10/25(火) 18:04:30.18ID:???pluginsフォルダを調べて、「プラグインがあれば表示、なければ非表示」って設定を
管理画面に組み込みたいのですが、Cakeの機能にあれば教えてください。
0904nobodyさん
2016/10/25(火) 18:07:58.38ID:???http://api.cakephp.org/2.8/class-CakePlugin.html#_loaded
0906nobodyさん
2016/10/27(木) 21:54:42.93ID:ravgyvz0管理アカウントで操作できる機能・画面を制限したい時、どうするのが一般的でしょうか?
ビューを例に取ると、単純に
<?php if ($user['User']['type'] == 'admin'): ?>
<a href="">管理者のみ</a>
<?php else: ?>
<a href="">その他のユーザーがアクセスできる</a>
<?php endif; ?>
みたいな分け方をしたとして、IFだらけになりそうで心配です。
あるいは、AppControllerのbeforeFilterに管理アカウント以外は
見せなくすることもできそうですが、どの作り方が効率的か教えてください。
0907nobodyさん
2016/10/28(金) 02:36:18.34ID:???もっといい方法があれば教えて欲しい、viewを完全に分けちゃう以外で
0909nobodyさん
2016/10/29(土) 09:58:27.10ID:???ローカルの開発環境で、JMeter使いながら、
100ユーザーが1分間に1000アクセスするってテストしてみたんだけど、
キャッシュなしの場合はエラー率が30%超えたが、キャッシュ使うとほぼなしだった。
ページ全体のビューキャッシュ出来れば良いんだろうけど
会員制サイトとか難しい場合があるし、
エレメントキャッシュでここまで違いが出るならこっちでも良いな
0910nobodyさん
2016/10/30(日) 15:03:05.50ID:CsXh8rc4ユーザーアカウントはログインしていたとする。
管理画面やらphpMyAdminやらで該当ユーザーをDBから削除する
しかし、セッションは残っているので、ユーザー専用ページが閲覧できてしまう。
こういうのってどう対処すればいいの?
$this->Auth->user()する前にDB調べばいいだろうけど、
毎回それするとSQLコストがかかるし・・・
0911nobodyさん
2016/10/30(日) 21:49:14.90ID:???それは思うよね。毎回ログインさせるのもきついし。
ブラックユーザー決めて、そのユーザーIDならマイページにアクセスできない。
って感じにはしてる。
あんまり人数がいないから。
0914nobodyさん
2016/10/31(月) 06:47:52.93ID:???ユーザー消したときにセッションも消せばいいだけでは?
クライアントにセッションが残っていたとしても
サーバーから消せばそのセッションは使えなくなる。
0915nobodyさん
2016/10/31(月) 07:12:22.74ID:???910が何を悩んでいるのかよくわからんかった
0916nobodyさん
2016/10/31(月) 08:05:00.66ID:???0918nobodyさん
2016/10/31(月) 13:40:50.37ID:???> こういうのってどう対処すればいいの?
> $this->Auth->user()する前にDB調べばいいだろうけど、
> 毎回それするとSQLコストがかかるし・・・
測定した?
実行速度は1ms程度で、なおかつディスクアクセスなし(キャッシュリード)かもよ。
0920nobodyさん
2016/10/31(月) 16:14:28.12ID:???ま、beforeFilterなんかで毎回ユーザーテーブル調べれば良いだけだし、
速度は気にしなくても良いレベルだろうけど、
やっぱり無駄なSQLを実行したくないってのがある。できるだけ減らしたい。
0921nobodyさん
2016/10/31(月) 17:09:37.68ID:???> 速度を疑問視してるんじゃなくて、セッション残るのを疑問視してるんだが。
毎リクエストで当該ユーザーがデータベース上でvalid userかどうかをチェックするようにすると、SQLコストが心配なんでしょ?
それって速度が心配ってことじゃないの?
>920
> やっぱり無駄なSQLを実行したくないってのがある。できるだけ減らしたい。
いやだから測定したのかと。
大抵のリクエストではデータベースなりキャッシュされたデータなりを読むだろうけど、それにvalid user checkが加わるとどれくらい違うのかと。
0922nobodyさん
2016/10/31(月) 17:25:46.68ID:???0923nobodyさん
2016/10/31(月) 17:31:31.09ID:???君が望むレベルの測定はしてないよ。
jmeterで負荷テストはしてるけど、100人1000アクセス/分でも
ユーザーテーブル読み込むレベルなら大した違いはない。
所詮感情論と言えばそうだが、SQLの実行を減らせるならその方が良いだろ
0924nobodyさん
2016/10/31(月) 17:50:49.26ID:???0925nobodyさん
2016/10/31(月) 17:54:00.03ID:???0927nobodyさん
2016/10/31(月) 18:07:01.21ID:???やってみれば?
0928nobodyさん
2016/10/31(月) 18:30:39.32ID:???やってないってw
>>926
同一人物だけど、パフォーマンスチューニングしてるんだよ
どしろうと相手に教えてよ
>>927
単にそれしても意味ないよ。ほぼ変わらないし。
それこそ>>909な、どしろうとテストしか出来ないよ。
実際の運用を想定する場合、テーブルに仮データ上限まで入れてやるの?
0929nobodyさん
2016/10/31(月) 19:29:40.42ID:EnwIxw7g・sql_dumpで「(default) 40 queries took 7 ms」という結果になるページにて
・100ユーザーが1分間に1000アクセスするってテスト
・アクセスごとにログ用DBにsave(トランザクション付き)
・ユーザーIDチェックはbeforeFilterに追加して、ログ書き込みの前に実行
・1レコード目と最終レコード目の秒数チェク
■ユーザーIDチェックなし
197秒(964レコード追加)
■ユーザーIDチェックあり(1回目)
179秒(900レコード追加)
■ユーザーIDチェックあり(2回目)
180秒(959レコード追加)
エレメントキャッシュなどを使っていないので、
ページアクセスでエラーが出て、1000レコード追加出来ませんでした。
が、ユーザーIDチェックありの方がなしより時間がかかっています。
(ちなみにusersテーブルには3レコードしかない状態)
ということで、毎ページ・毎アクセス、ユーザーIDをチェックする処理を入れても
SQLコストがかからないという結果になりました。
こういうテスト方法でこの結論で良いのでしょうか?
どしろうとなのでテスト方法がおかしいかもしれません。
0931nobodyさん
2016/10/31(月) 20:57:16.96ID:???無理なら無理と言ってくれ。
0932nobodyさん
2016/10/31(月) 21:20:36.30ID:???redisセッションなら狙い撃ちできないこともないと思う。
しかし、普通のセッションなら俺はやり方わからんな。
0933nobodyさん
2016/11/01(火) 09:04:41.83ID:???0934nobodyさん
2016/11/01(火) 09:10:57.48ID:???0935nobodyさん
2016/11/01(火) 09:49:39.35ID:???0937nobodyさん
2016/11/01(火) 14:17:00.39ID:???0938nobodyさん
2016/11/04(金) 17:54:57.13ID:???>>936
> fwの標準機能でできるか聞いてるんだよ。
ないですね。
素直に毎回usersテーブルを検索すべし。
0939nobodyさん
2016/11/04(金) 18:36:49.38ID:???0941nobodyさん
2016/11/04(金) 21:41:38.12ID:???0942nobodyさん
2016/11/04(金) 22:59:39.65ID:???CSSは適用されるし、ソースコードからsrcを直接叩いても表示されるのに
0943nobodyさん
2016/11/04(金) 23:36:42.82ID:???圧縮されたファイル(jquery.min.jsとか)だと駄目みたいだ・・・
こんなのググっても出てこねーよ。みんな普段は圧縮ファイル使わないのかよ
0944nobodyさん
2016/11/04(金) 23:44:14.06ID:???URL単位に制御したいんでなく、データ単位に制御したいから、
独自で実装してる。
0945nobodyさん
2016/11/04(金) 23:57:52.36ID:???やっぱり標準では無いんですね。
ちなみに私はRedisキャッシュ付のUserテーブルを毎回検索する方法で実装してます。
0946nobodyさん
2016/11/05(土) 00:21:55.12ID:???cookbooにあるけど、isAuthorized()使うのでなんとかしてる。
シンプルだけどそこそこ汎用性あるし、なによりソースが分かりやすい
0947nobodyさん
2016/11/05(土) 03:04:53.87ID:???0948nobodyさん
2016/11/05(土) 22:13:30.61ID:fokCG3DUScheme使ってconsoleから作成する方法はありますが、
Web上で実行させる方法がありません。
0950nobodyさん
2016/11/07(月) 10:31:35.96ID:???覗いてみました。
複雑ではあるものの、つきつめるとSchemeの記述を分解して
CREATE TABLEしてるだけなんですね。
これなら普通にデータソースからquery実行するのと変わらないので、
Scheme使って作成するよりそうします。
0951nobodyさん
2016/11/13(日) 00:41:37.69ID:QwwJJl5gUser(ユーザー)モデルとSpecial(特集)モデルがあるとします。
「特集毎に、条件に一致するユーザーを紹介したい」とします。
特集+ユーザー検索条件=SpecialUser
というモデルを作れば良いんですかね?
それとも、特集モデルの中にユーザー検索条件まで入れるべきですかね?
(1つの特集に1つの検索条件なので、1対1だと思います)
仮に後者にした場合、カラム名は
user_name、user_address
というようにuserを付けるべきでしょうか?
どういう構成にするか迷っているので、アドバイスいただけたら助かります。
0952nobodyさん
2016/11/14(月) 17:54:16.98ID:???良くわからないけど、「あるユーザーに関する特集」なら、「特集」の属性にユーザーID等を持てばいいのでは?
0953nobodyさん
2016/11/15(火) 08:52:55.45ID:???初歩的なことかもしれませんが質問させてください。
controller内のメソッド使用するにはsetActionを使用するか内部関数として_アクション名とする方法がありますよね。
どちらの方を使ったほうが良いのでしょうか。
actionは他のcontrollerからは呼ばない想定です。
0955nobodyさん
2016/11/16(水) 10:33:08.41ID:ofNi3+j7CookbookのCache::writeには以下のようなサンプルコードがあります。
if (($posts = Cache::read('posts')) === false) {
$posts = $this->Post->find('all');
Cache::write('posts', $posts);
}
1ページ1回のPostを実行するなら良いのですが、
1ページに複数回のPostを実行する場合、上書きされます。なので、
Cache::write('posts_header', $posts);
Cache::write('posts_footer', $posts);
のようにして、実行毎に任意の名前をつければ良いのでしょうが、
$posts = $this->Post->find('all', array(
'conditions' => array('post_group_id' => $groupId),
));
のように、検索条件がある場合のキャッシュ方法が分かりません。
※Cache::write('posts_' . $groupId, $posts);
として書き込めば良いのでしょうが、今度はキャッシュ削除に困ります。
なにか良い設定方法をご存じないでしょうか?
0957nobodyさん
2016/11/16(水) 13:33:13.33ID:???すみません、
Cache::write('posts_' . $groupId, $posts);
の書き方で、Postをsaveする時に、afterSaveにgroup_idを渡せば削除できました。
0958nobodyさん
2016/11/18(金) 13:32:28.04ID:???Uninitialized string offset: 0 [CORE/Cake/View/Helper.php, line 359]
ってエラーが出るんだけど、Cake2ってPHP5.4以上に対応してるよね?
0959958
2016/11/18(金) 14:59:32.75ID:???あと、beforeSaveをbeforeSave($options = array())とか
afterSaveをafterSave($created, $options = array())としておかないと駄目っぽい
0960nobodyさん
2016/11/19(土) 19:13:13.53ID:???サーバーだとfoo.com/aでアクセスできるんですがxamppで127.0.0.1/aだと404です
127.0.0.1でroutesで指定したトップのファイルが表示されてるので階層がおかしいとかはないと思うのですが
どうすればa.phpをxamppで見れますか?
教えてください
0961nobodyさん
2016/11/20(日) 01:15:44.69ID:???0962nobodyさん
2016/11/29(火) 01:27:23.99ID:???そのidのレコードをviewのフォームに反映
っていう風なことをしてます。
pagerでpage=3とかになってるときにそれやろうとすると1ページ目に戻ってしまいます。(linkのactionがindexだから)
その場合にurlを変更しないで行う場合はajaxを使うしかないですかね
0963nobodyさん
2016/11/29(火) 18:28:40.86ID:???自作した方がいいと思うぞ。ややこしくなるから。
0964nobodyさん
2016/12/09(金) 15:29:07.59ID:8pRknB39増える原因不明死 死因解明が追いつかない
(NHK・クローズアップ現代)
某看護師会「なぜ最近20代の突然死が急に増えたのか」
というテーマで、全く理由がわからなかったらしい。
1990年以降、被曝医学はカリキュラムから追放された
たくさんの人があっけなく死んでいく
ベンチに座ったまま バスを待ちながら
説明のつかない死が多かった
多くの人が脳卒中や心筋梗塞を起こした
駅やバスの中で (『チェルノブイリの祈り』)
5日死亡
武藤まき子、虚血性心不全。(「とくダネ!」、71)
黒沢健一、脳腫瘍。 (「L⇔R」、48)
ーーーーーーーーーーーーーーーーーーーーーーー
朝本浩文、自転車転倒死。 (UAなど作曲、53)
小泉義仁、駅で脳梗塞。(スピリチュアルTV 51)
森岡賢、、心不全。 (元ソフトバレエ 49)
飯野賢治、心不全。 (株式会社ワープ 42)
よしお、、、睡眠中突然死。 (ルサンチマン、33)
今井洋介、心筋梗塞。(テラスハウス出演者 31)
杉崎由佳、急死。(『進撃の巨人』作画監督 26)
今井雅之54 盛田幸妃45 松来未祐38 泉政行35
宮田紘次34 黒木奈々32 丸山夏鈴21 椎名もた20
0965nobodyさん
2016/12/12(月) 23:05:20.90ID:qafTiMZP1)フォーム投稿
2)投稿にはログインが必要なので、ログインフォームに転送される。
3)ログインする
4)1のページにリダイレクトされるが、POSTの値が消えている
と言った状態なのですが、セッションとかクッキーに入れる以外で、
元のページに戻った時にPOSTの値を保持する方法は無いでしょうか?
0967nobodyさん
2016/12/13(火) 02:05:20.94ID:???0968nobodyさん
2016/12/13(火) 04:25:34.63ID:???0969nobodyさん
2016/12/13(火) 10:51:37.28ID:???ログイン前も、それと同じくらいの信頼度(つまり変わらん)
0970965
2016/12/13(火) 12:19:27.72ID:???あと、ログイン前にPOSTするのは止めます。
やはりセキュリティ的に不安ですね(やってるサイト多いですが
0972965
2016/12/13(火) 14:26:24.55ID:???というか、会員制のサイトならAppControllerにAuth適用してると思うので、
どの画面でもセッション処理は行なえますよ
0973965
2016/12/13(火) 14:26:52.52ID:???0974nobodyさん
2016/12/13(火) 15:12:46.89ID:Gp6hyIsi0976965
2016/12/13(火) 15:22:20.82ID:???そうなんですが、そういう設計って多いんですよ。
なもんで、それがスタンダードかな?って考えてみました。
↑ってレスしようとしたんですけど、ざっと探したらヤフー知恵袋ぐらいでした。
直近で見たのがこのサイトだったので、勘違していたかもしれません。
他はだいたい、ログインしてないと投稿部分は隠してますね。
0978965
2016/12/13(火) 15:51:50.95ID:???0979nobodyさん
2016/12/13(火) 15:58:09.15ID:???叩いてるわけではない
別にお前がどんな糞コード書こうが俺には関係ないが、認証と承認の仕組みを
理解してから設計・実装した方がお前の為だと思ってアドバイスしたまで
0980nobodyさん
2016/12/13(火) 21:19:05.30ID:???みんなそんなにクラックされるの?
postデータなんてh関数使ってるレベルで
今まで一度もされたことないんだけど。
0981nobodyさん
2016/12/14(水) 02:17:35.52ID:???0982nobodyさん
2016/12/17(土) 13:07:30.35ID:???ばかじゃん?
不正アクセス禁止法のせいで、ザルシステム作った会社じゃなく、
ザルの穴を見つけた奴が処罰されるようになってるから
そうそう不用意にはクラックしないってだけ。
お前が許可してくれるならクラックするよ。
ただし、こっちには一切迷惑を書けないという誓約書よこせよ。
0984nobodyさん
2016/12/19(月) 15:17:07.37ID:???Configure::write('Session.cookie', 'aaabbb');
すれば、cookie名が変わってたんだが、cake3ではこれが効かなくなった
なぜじゃ?
0985nobodyさん
2016/12/24(土) 11:50:48.43ID:???【PHP】フレームワーク CakePHP 19ホール目【v3.3】 [無断転載禁止]©2ch.net
http://tamae.2ch.net/test/read.cgi/php/1482547831/
0986nobodyさん
2017/01/25(水) 12:53:02.67ID:???0987nobodyさん
2017/01/25(水) 12:53:28.10ID:???0988nobodyさん
2017/01/25(水) 12:53:55.04ID:???0989nobodyさん
2017/01/25(水) 12:54:18.20ID:???0990nobodyさん
2017/01/25(水) 12:54:49.98ID:???0991nobodyさん
2017/01/25(水) 12:55:14.42ID:???0992nobodyさん
2017/01/25(水) 12:55:41.29ID:???レス数が950を超えています。1000を超えると書き込みができなくなります。