【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/
0870nobodyさん
2016/09/16(金) 00:47:25.45ID:7L9wyAQq変数の全データがクライアントに出力されてしまう、っていう理由は何か考えられますか?
CakePHP2系での話なんですが、サーバトラブルで負荷が上がってしまった際にApacheを再起動かけると、
database.phpの内容含めたすべての変数内のデータがクライアントに返ってしまったんです。
再現性もなく、CakePHPの問題なのかPHPの問題なのか切り分けも難しく、ちょっとご意見いただければと思います。
0871nobodyさん
2016/09/16(金) 00:52:22.19ID:7L9wyAQq数回事象が発生して、いずれも契機になったのはApacheプロセスの強制終了のタイミングでした。
ただどのような状況でプロセスを強制終了すれば事象が発生するか、という点では再現性が掴めてません。
0872nobodyさん
2016/09/17(土) 14:01:05.77ID:???本番環境ならオフにしてる?
0873870
2016/09/17(土) 14:16:09.40ID:CiFBu07Ldebug値によるPluginの動的なload制御は行っていないのですが、ちょっと試してみます。
試すといっても再現できないので待つしかないのですが…。
0874nobodyさん
2016/09/18(日) 00:28:02.38ID:???日本では一番使われてるフレームワークらしいぜCakeって
0875nobodyさん
2016/09/18(日) 02:28:00.37ID:???もう雑談系の板ぐらいしか機能してない
0876nobodyさん
2016/09/18(日) 17:21:37.59ID:???windows7でcakephp3を導入したいと思っています。
composerを導入しバージョンの確認までできています。
まずはxamppでcakephp3をインストールをしようと思い、
c:\xampp\htdocs>composer create-project --prefer-dist cakephp/app cakephp
と入力すると、
[ErrorException]
file_get_contents(C:\Users\Justin\Projects\knap-build\var\knapsack\software
\x86-windows\openssl\1.0.11\ssl): failed to open stream: Permission denied
上記のようにSSLのパーミッションエラーが発生してしまい正常にインストールできませんでした。
ぐぐっても分からなかったので、何か解決方法があればご教授お願いしますm(_ _)m
0877nobodyさん
2016/09/18(日) 21:37:57.00ID:???0878nobodyさん
2016/09/18(日) 23:47:43.62ID:???でも時代の流れはcomposerだからな。
俺もハッキリ言っていらんと思うが。
いつでも最新に更新できるのがメリットなんだろうけどバグが怖くて更新しないよな。
0879nobodyさん
2016/09/21(水) 02:18:29.93ID:???bake楽しすぎwwwwwwww
0880nobodyさん
2016/09/21(水) 05:33:06.69ID:???0881nobodyさん
2016/09/21(水) 10:06:40.27ID:???0882nobodyさん
2016/09/21(水) 10:51:17.91ID:???3は大きく違ってて互換性がない→移行が不可能なのに旧サポート切られたら、やってられないよね
OSやPHPはメジャーバージョン上げても少しの手直しで動くからいいんだけど
0883nobodyさん
2016/09/22(木) 23:52:34.09ID:???実は95%がLANケーブルの刺し忘れだったことが判明
0884nobodyさん
2016/09/26(月) 18:34:37.05ID:???2の開発もまだ続いてるし、2の方が慣れてるから使いやすいんだが
0887nobodyさん
2016/09/26(月) 23:57:21.41ID:???公式とソースを追いながら使ってる。
パスワードハッシュの互換性も2と保てるから、
少しずつでも使ってみるのが良いよ。
0888nobodyさん
2016/09/27(火) 01:24:34.29ID:???0889nobodyさん
2016/09/27(火) 10:27:55.79ID:???>>888
> こなれた頃に非推奨だらけになる
ありがちw
deprecatedてんこもりの次バージョンが出たあたりから、やっとその前のバージョンがこなれた感じになる
0890nobodyさん
2016/10/04(火) 14:26:09.35ID:???0891nobodyさん
2016/10/18(火) 17:59:10.48ID:???この設定を各モデルのafterFindでClassRegistryから読み込んでいるのですが、
複数モデルを実行する場合、その都度、設定用のモデルも実行することになり、
DBのselect回数が増えます。何か良い方法はないでしょうか?(2系でお願いします
0892nobodyさん
2016/10/20(木) 12:35:48.19ID:???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するのは止めます。
やはりセキュリティ的に不安ですね(やってるサイト多いですが
レス数が950を超えています。1000を超えると書き込みができなくなります。