【PHP】フレームワーク CakePHP 17ホール目【v3α】
レス数が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/
0002nobodyさん
2014/08/02(土) 22:00:21.62ID:???>>1 少し修正した。
Lithium の話題はもう何スレッドも出てきてないので消したよ。
0003nobodyさん
2014/08/03(日) 09:32:53.64ID:???17ホール目じゃなくて18ホール目だった!
スマン
0004nobodyさん
2014/08/03(日) 13:46:39.60ID:???0005nobodyさん
2014/08/05(火) 15:21:34.94ID:???具体的には、cakephpのプログチュートリアルhttp://book.cakephp.org/2.0/ja/tutorials-and-examples/blog/part-two.htmlを、
tp://ドメイン/postではなく、
tp://ドメイン/cakephp/postで動くようにさせたい
スレチかもしれないけどどなたかわかりませんか
$vim /etc/nginx/sites-available/default
server {
root /usr/share/nginx/www;
index index.html index.htm index.php;
〜略〜
location /cakephp {
# alias /usr/share/nginx/www/cakephp/app/webroot;
index index.php;
try_files $uri $uri/ /index.html /index.php?$uri&$args;
if (!-e $request_filename) {
rewrite ^/cakephp/(.+)$ /cakephp/index.php?url=$1 last;
break;
}
}
location ~ ^/cakephp/.+\.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^/cakephp(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/www/cakephp/app/webroot$fastcgi_script_name;
fastcgi_intercept_errors on;
include fastcgi_params;
}
}
0006nobodyさん
2014/08/07(木) 00:21:06.42ID:???0007nobodyさん
2014/08/07(木) 14:20:30.27ID:???0011nobodyさん
2014/08/07(木) 17:46:25.12ID:???じゃ、君の質問は
「BaserCMSはWordPressよりコードが綺麗なの?」
あるいは
「BaserCMSってコードが綺麗ですか?」
って事を聞きたいのか?
0012nobodyさん
2014/08/10(日) 09:39:28.18ID:???勉強してもわからない。
モデルで、twitterにログインできるか?
をテストしたいんだけど。
0013nobodyさん
2014/08/10(日) 17:39:12.38ID:???0014nobodyさん
2014/08/10(日) 19:57:19.49ID:???やったことないけど twitter から成功したかどうかのレスポンスが返ってくるんだよね?
それが期待通りかテストすればいいと思う。
モックは、あるメソッドが期待通りの回数よばれたか、みたいなテストに便利。
たとえば、トランザクションの成功ケースのテストだとこんな感じ。
$mock->expects($this->one())->method('begin');
$mock->expects($this->one())->method('commit');
$mock->expects($this->never())->method('rollback');
begin() と commit() は一回だけ呼ばれるべきだし、 rollback() は呼ばれるべきじゃない。
0015nobodyさん
2014/08/10(日) 20:15:20.15ID:???ありがとうございます。
ツイッター側でメールアドレスとパスワード入力してOKボタン押さないといけないんです。
file_get_contentsみたいに帰ってくるならいいんですが。
あと、モックで回数を確認するのにと言うけどトランザクション以外で例ありますか?
今まで、回数を確認したいと思ったことがないんです。
0016nobodyさん
2014/08/11(月) 02:25:00.88ID:???twitter 側からレスポンスを受け取った後のテストを書けばいいと思います。
どんなレスポンスが返ってくるのかはわかりませんが。
$user = $User->loginUsingTwitter('{"status":"success", "username":"hogehoge"}');
$this->assertEquals($user['User']['id'], 1);
$user = $User->loginUsingTwitter('{"status":"error", "message":"Invalid username or password"}');
$this->assertFalse($user);
みたいな感じでしょうか?
> あと、モックで回数を確認するのにと言うけどトランザクション以外で例ありますか?
ピンと来るかはわかりませんが――。
$dataSet = array(
array('id' => 1),
array('id' => 2),
array('id' => 3),
);
$mock->expects($this->at(0))->method('save')->will(array('id' => 1));
$mock->expects($this->at(1))->method('save')->will(array('id' => 2));
$mock->expects($this->at(2))->method('save')->will(array('id' => 3));
$mock->saveMany($dataSet)
内部的に saveMany() が save() を呼んでいるのであれば、 saveMany() に3レコードを渡したら save() は3回、それぞれのレコードを引数にして呼ばれるべきでしょう。
> 今まで、回数を確認したいと思ったことがないんです。
テストケースは、自分が確認したいと思うかどうかではなくて、追加開発を行う時に、後任の担当者を憂鬱にさせないために作るものかなと思います。
特に修正を行うと広範囲に影響が及ぶような中核機能については、入念なテストケースを書いておいた方がいいかもしれません。
さもないと、そこを修正する必要に迫られた時、後任の担当者は、関数をまるごとコピペして2、3行修正する、という愚挙に出ます。
0020nobodyさん
2014/08/14(木) 11:29:49.85ID:???テストを先に、メインのプログラムを後に。というのがやりづらい。
先にメインのプログラムから書いてしまう。
何かコツみたいなないですか?
0021nobodyさん
2014/08/14(木) 17:57:35.56ID:???何かを登録する処理があるとして、
それをブラウザで実行して確認すれば良いだけじゃないのか?
0022nobodyさん
2014/08/14(木) 19:34:58.00ID:???0024nobodyさん
2014/08/15(金) 04:46:25.44ID:???テストケースを書けばテストも自動化できるので、コードの品質管理の上では必須。
ただ、Cake使いにはそういう所は少ない印象。
そういう取組をする現場はもっと新しいものを積極的に採用してるね。
0026nobodyさん
2014/08/16(土) 08:47:31.75ID:???新規会員登録に成功、失敗。
ログインに成功、失敗。
パスワード変更に成功、失敗。
この合計6つのテストを一瞬でやれる。
また、これにツイッターでログイン機能をつける場合、ブラウザテストだとすべてをテストし直す必要があるが、
テストケースがある場合、どんな方法でツイッターログインをつけようがテストさえつけりゃOKということになる。
0027nobodyさん
2014/08/16(土) 08:49:14.66ID:???強いて言えば昔書いたプログラムなどほとんど覚えてない。
しかし、テストケースさえありゃどんな目的で作ったのか一目でわかるようになる。
0028nobodyさん
2014/08/16(土) 16:43:12.80ID:???それをブラウザで実行して確認するのと
何がどうメリットがあるのか全く理解できないんだよな。
どうせテスト書いてもブラウザで確認する作業もあると思うし。
0029nobodyさん
2014/08/16(土) 16:46:43.74ID:???0030nobodyさん
2014/08/16(土) 19:48:20.56ID:???俺もテスト書くまではあなたと同意見だった。テスト書く手間もあるし、書き方もわからんし。
ただ、確認する項目が100,200となってくると同じ確認を何度もできなくなる。
手間だから。
安心感みたいなのもあるかもしれない。
0031nobodyさん
2014/08/20(水) 08:16:48.64ID:???0032nobodyさん
2014/08/21(木) 20:58:07.10ID:???例えばDBに登録しているバナーを表示して、
表示回数をカウントするような機能。
こういうのは早い動作(処理)を求められるけど、
Cakeを通すとどうしても動作が遅くなってしまう。
けど、読み書きにControllerやModelを使いたい。
なにかいい方法ありませんかね?
0033nobodyさん
2014/08/21(木) 22:41:55.19ID:???って書こうと思ったが後半見ると質問の意図は違うのか?
Cakeを丸ごと使うと遅くなるから機能の一部だけ使って速度と便利さ両立するような方法ない?って話?
0035nobodyさん
2014/08/21(木) 23:12:05.66ID:???フルスタックで高速開発が売りなのにわざわざバラして使うとか
素直に他の独立して使えるORMかSQLクエリビルダーのライブラリ使うってのは駄目なわけ?
軽いのならidiormとかあるじゃん
その例の程度だとControllerの必要性は感じないし
もしくは処理速くするだけならCakeフルに使ったままで
PHPをAPCやらで高速化するという手もあると思うけど
0036nobodyさん
2014/08/22(金) 00:12:48.81ID:???Cakeにこだわる意味あります。例えば>>32の要件の場合、
バナーの管理って管理画面を作ると思うのです。
その場合のログインシステム、バナー画像の管理、アクセス数の確認
など管理画面でやりたいことが結構あります。
これをフルスクラッチで作るのは結構骨が折れます。
「アクセスが集中する箇所を軽くしたい」という要件を満たすためだけに、
フレームワーク使わないというのは非効率に感じるのです。
0037nobodyさん
2014/08/22(金) 00:18:28.47ID:???表示のカウントは管理画面と別でしょ?
管理画面だけCakeで作ってDBだけ共用すれば?
0038nobodyさん
2014/08/22(金) 00:32:14.41ID:???ということは、管理画面だけCakeにして
他は別のフレームワークを使うということですか?
それはそれで正しい開発の在り方なのでしょうか・・・
0039nobodyさん
2014/08/22(金) 00:42:28.69ID:???要はアクセス集中する部分だけ素のPHPに近い状態で書けば速いわけだけど
Cakeはフレームワークの一部だけ取り出して使うことをあまり想定してないからこの用途にはあまり向かないんじゃないのってこと
かと言ってフルスクラッチはキツイだろうから軽めの他のライブラリ併用すれば?と
そこに他のフレームワーク使って何とかなるなら管理画面ごとそのフレームワーク使えばいいよね
0040nobodyさん
2014/08/22(金) 01:16:14.35ID:???Silex+Twig+Eloquentとか簡単にできる。
0041nobodyさん
2014/08/22(金) 01:34:06.53ID:???0042nobodyさん
2014/08/22(金) 02:05:27.82ID:???その続きからApp::uses('Model', 'Model')などと書き始めれば動くことは動きそう
でも軽いかこれ?
0043nobodyさん
2014/08/22(金) 02:13:08.95ID:???リアルタイムにデータ取りにくい代わりに負荷減らせね?
0044nobodyさん
2014/08/22(金) 03:07:44.02ID:???サーバのログ=テキストファイルだけど、
それを分析・分類するのはどうするんだ?シェル書くのか?
0045nobodyさん
2014/08/22(金) 09:21:10.25ID:???共用のレンサバに機能としてついてるようなアクセス解析はほぼこの類
Apacheログのパーサーくらい探せばPHPのライブラリもあるだろうが
シェルスクリプトのが軽いか
最近はFluentdでログを構造化するのが流行ってんじゃね
0046nobodyさん
2014/08/22(金) 09:34:12.26ID:???0047nobodyさん
2014/08/22(金) 12:33:28.35ID:???0048nobodyさん
2014/08/23(土) 14:14:21.76ID:1tdBFRBeファイルを保存してもすぐに反映されません。
これはどこかにキャッシュされますか?
0049nobodyさん
2014/09/02(火) 17:18:10.52ID:QrpuDeHlビューを管理画面から編集する機能をつけようと思っているのですが、
単にPHPのソースを編集する形にしても問題ないのでしょうか?
(不特定多数が使用しません。管理者のみです)
非プログラマにPHPファイルを編集させるのは違和感があるのですが、
WordPressでそうなってるので、特に問題ないのかな?と感じています。
もし、問題がある可能性があれば注意点を教えて下さい。
0050nobodyさん
2014/09/02(火) 23:39:56.72ID:4+zCLOUHCakePHP 固有の問題は思いつかない。
0051nobodyさん
2014/09/02(火) 23:50:38.40ID:???稼働中に止まってもいいサイトならどうでもいいが
管理者だってミスるだろうしせめて構文チェックくらい入れて差し上げろ
0052nobodyさん
2014/09/02(火) 23:51:19.97ID:???若干面倒だが
0053nobodyさん
2014/09/03(水) 00:19:55.11ID:???なるほど。ビューの編集機能ってあった方が良いんですかね?
自分は直接いじるので無くても構わないのですが、
CMSだとあるのが必須のような気がして、迷います。
0054nobodyさん
2014/09/03(水) 00:48:46.04ID:???IDEかエディタでテーマ編集してローカル環境でテストしてからアップする
管理画面にビュー編集機能がなくても大して気にしない
【個人サイトやビジネス利用でも運用が適当なユーザー】
少々サイトが止まってても良いので管理画面から直に変更を加えたいこともある
というイメージ
あと考えられるのはCMSまたはCakeのディレクトリ構造をよくわかっていない奴がビューを触りたいなら便利なのかもな
テーマ編集機能がないとそもそもどのファイルいじれば表示変わるんだよと文句言う奴もそれなりにいる
その程度の知識でビュー触んなハゲと言いたいが現実は非情である
0055nobodyさん
2014/09/03(水) 01:03:28.90ID:???さらにWPはwordpress.comみたいなホスティングもあるし
極端な話FTPすら分からなくても利用開始できてしまうんだよな
そこまで行くともうブラウザから殆どの作業ができるようにせざるを得ないという感じなのでは
個人的には機能実装の優先度は低いと思う
大衆向けCMSとして成功したならいずれ要望が出てくるんだろうが
0056nobodyさん
2014/09/03(水) 01:13:13.14ID:???大勢の一般人に使わせるならあってもいい
そして一般人に使わせるCMSならビューには
自動エスケープするテンプレートエンジンを使ったほうがいい
0057nobodyさん
2014/09/03(水) 03:02:35.39ID:???0058nobodyさん
2014/09/03(水) 11:31:38.30ID:???0059nobodyさん
2014/09/04(木) 05:40:00.77ID:???<p>こんにちは</p>
<?php else: ?>
<p>こんばんは</p>
<?php endif; ?>
FWを使用しなくてviewに相当するスクリプトにこう書いているものを、
cakephpではどうやって書くのがよい作法なのでしょうか?
0060nobodyさん
2014/09/04(木) 10:02:35.94ID:???1.テンプレート内でロジック・変数の設定と出力を分ける
<?php $greeting = $a ? 'こんにちは' : 'こんばんは'; ?>
<p><?php echo $greeting ?></p>
ここまではFW利用関係なしにやっておくべき
以下はMVCパターンのFWを使うとして
2.ロジックと変数の設定処理をControllerのActionに移動
public function hogeAction() {
$greeting = $a ? 'こんにちは' : 'こんばんは';
$this->set('greeting', $greeting);
}
※複数のテンプレートで共用するならController::beforeRender()にでも書く
3.ロジックをModelや共通関数に移動
複数箇所で再利用したり挨拶の種類が増えたりして複雑化する予定があるなら
アプリ内の共通関数またはGreetingクラス(CakeのModelクラスは継承しない)とgreetメソッドを作ってControllerから呼ぶ
テストしやすいしね
以下蛇足
>>59は分岐の条件を$aという変数で単純化しているけど
ユーザーがアクセスした時間帯によって挨拶内容を分岐するだろうね
3で引数にDateTimeオブジェクトを取るように関数・メソッド・クラスを設計しておかないとテストが少々面倒
多言語化と現地時間考慮という要求が出てきたらもっと大変
単体テストの存在意義分からんちんな人なら目視で結合テストしてそれだけで1日かかるかもしれないな
0061nobodyさん
2014/09/04(木) 10:44:49.53ID:???大概テストコードも少ない上に1つのクラスとメソッドがとても長いんだよね
保守を押し付けられたら死ぬしかない
0062nobodyさん
2014/09/04(木) 12:37:25.21ID:???横だけど、1の書き方はおかしくないか?
ビューやコントローラで変数に代入するってのは違うと思うだが。
普通に共通ヘルパー作るので良いと思うんだけど。
<?php echo $this->ViewCommon->greeting(); ?>
みたいな感じで出力して。
ヘルパー内の関数(greeting)で時間帯に合わせて
出力メッセージ変えれば、>>59がやりたかった事をシンプルに出来るだろ。
0063nobodyさん
2014/09/04(木) 19:57:46.19ID:???コントローラでビュー変数をセットするのって普通じゃないの?
ビューにModelのfindの結果渡すのと同じだし
0064nobodyさん
2014/09/04(木) 20:18:57.95ID:???ヘルパーはプレゼンテーションロジック担当というMVC原理主義に従うならモデル作るのが正解なんだろう
0065nobodyさん
2014/09/04(木) 20:37:01.94ID:???それはビューに変数を代入したり、可変する場合な。
>>59のような挨拶って代入する必要ないだろ。
「◯◯さん、こんにちは」の、名前の部分は別だが。
0066nobodyさん
2014/09/04(木) 20:41:26.45ID:???0067nobodyさん
2014/09/04(木) 20:46:00.11ID:???「ヘルパーで十分」って回答するのは、あまりに浅はかだろw
0068nobodyさん
2014/09/04(木) 20:51:18.46ID:???共通ヘルパーが神クラス化してるアプリ見たことあるわw
ヘルパーなのに主役というギャグだったんだと思ってる
0069nobodyさん
2014/09/04(木) 20:59:14.22ID:???さっさと投げ捨てよう
0070nobodyさん
2014/09/05(金) 00:09:03.50ID:???エスパーじゃないんだからさ、例示以上の事を推測できないでしょ。
ま、一応用途を推測した上で回答してるけど、
それでもコントローラから挨拶文を生成するやり方は
バッドプラクティスだと思うけどなぁ
0071nobodyさん
2014/09/05(金) 01:22:18.58ID:???どっちの挨拶文を選択するかはビュー関係なしに解決できる。
"よい作法"を問われたらモデルに書いて素直なMVCするが正解だとおも。
ヘルパーは表示整形用途に留めるべきで、
コントローラはMV間の糊に徹するべき。
3系ならViewCellも選択肢に入る。
0072nobodyさん
2014/09/05(金) 01:28:31.63ID:???0073nobodyさん
2014/09/05(金) 01:53:21.35ID:???例えば、おはよう・こんにちは・こんばんわ以外に
時間帯によって挨拶文を出力したいとする。
ロジックが発生するけど、これモデルか?モデルなら何のモデルだ?
Userモデルか?会員サイトじゃない場合はどうするんだよ。
だったらヘルパーにする方が汎用性高いだろ。
別に例を出すと、パンくずリストがある。ページによって位置が変わる。
しかし、これはHTMLヘルパーに用意されている機能だ。
コントローラに依存しそうな機能なのにヘルパーだ。
なぜか。ビューで表現する機能だからだ。
1から10まで仕様通りに作れとは言わないが、
より複雑に作る事をお勧めするのは如何なものかと感じる。
0074nobodyさん
2014/09/05(金) 01:56:33.77ID:???最初はデータベースにモデルを永続化しないアプリケーションを作りながら
MVCフレームワークを学ばせたほうがいいんじゃないかと思う
0075nobodyさん
2014/09/05(金) 02:12:07.63ID:???あるある
フレームワークで用意されたModel・AppModelクラスを継承したものだけがモデルだと思ってる
実際はモデルの部分集合にすぎんのに
んで行き場を失ったビジネスロジックがコントローラやヘルパーでヒャッハーしてる
0076nobodyさん
2014/09/05(金) 03:12:00.07ID:???特にHTMLヘルパーがパンくずの配列$_crumbsを状態として持ってるのは違和感バリバリだわ
おもいっきり単一責任の原則に反してるしパンくずリストの構築に責任を持つクラスを作るべき
ヘルパーのメソッドはパンくずリストを表すオブジェクトか配列を受け取って出力の整形をするだけでいい
>会員サイトじゃない場合はどうするんだよ。
腹筋崩壊するからやめろっやwwww
0077nobodyさん
2014/09/05(金) 04:34:38.73ID:???な、結局煽ったり重箱の隅突っつくしかなくなるだろ?
いつの間にか話が「モデルの使い方」になってら。
話のすり替えもいいとこだ。
>>67では「簡単な例で示しただけ。浅はか」と言ったから、
仕様を会員サイトで想定し体験をだしたら、腹筋崩壊するぐらい面白いっと。
次はどんな煽りで来るんだろうなー面白いこと言えたらいいんだけどなー
0078nobodyさん
2014/09/05(金) 10:37:11.84ID:???複雑な処理なら一部他に任せるように変えてけばよくね?
モデルに委任してもいいし
コントローラ経由でモデルに処理移すのと大差ないやん
007978
2014/09/05(金) 11:00:32.52ID:???例えばSystemMessageクラスをモデルに作るのもあり……?
008078
2014/09/05(金) 11:10:14.48ID:???ビューロジックとビジネスロジックの解釈の違いが噛み合わん原因っしょ
>>73の会員サイトの例で説明を試みると
挨拶文はUserモデルと比べれば瑣末にすぎないビューの表現の一種やん→ビューロジック ヘルパー派
挨拶文の選択条件は見せ方に依存しねえじゃん→ビジネスロジック モデル派
0081nobodyさん
2014/09/05(金) 12:29:00.74ID:???0082nobodyさん
2014/09/07(日) 03:06:53.03ID:???pagenationでUNION使いたいんだけど情報が全くないので困ってます
生のSQL叩いてpagenationに組み込む方法しかないのかな
0083nobodyさん
2014/09/07(日) 11:45:44.93ID:???多分、別のモデルを作るのがいいと思う。
簡単なのは、UNION 後のビュー(データベースのビュー)のモデルを作る方法。
この方法なら、Model::$paginate() と Model::$paginateCount() をわざわざ実装する必要がないからね。
ビューを作るのが嫌な場合、それらのメソッドを実装したモデルを作ることになると思うけど、
その場合は、生の SQL を書くより DboSource::buildStatement() を使った方がいいと思う。
Paginator::$settings の設定を生の SQL に組み込むのは大変だよ。
0084nobodyさん
2014/09/07(日) 11:47:23.50ID:???Model::paginate() と Model::paginateCount() ね。
0085nobodyさん
2014/09/07(日) 17:38:42.22ID:???レスありがとうございます
ビュー作るのは少し微妙なのでbuildStatement()の方で補おうと思います
それでもなかなかややこしいですね
0086nobodyさん
2014/09/10(水) 19:35:59.90ID:???リニューアルついでにcakephp使おうか迷ってる。
0087nobodyさん
2014/09/11(木) 01:14:28.20ID:???0088nobodyさん
2014/09/11(木) 01:15:53.40ID:???0089nobodyさん
2014/09/24(水) 23:35:14.19ID:???0090nobodyさん
2014/09/25(木) 01:32:54.46ID:???俺は使ったことないんだけど、Oracle のプラグイン作ってくれた人がいる
https://bitbucket.org/odin88/cakephp-2.0-oracle/src
0091nobodyさん
2014/10/07(火) 11:48:06.87ID:QG2cjBR/たとえば 商品 hasMany 素材 だとして
商品のPK以外の値と 素材テーブルのある値とでアソシエーションを組みたい場合があります。
この場合、「素材のある値」はforeingKey で指定可能ですが、商品テーブル側のどの値を使うのかは
PKで決め打ちになっていていじれません。
どうするのが良いでしょうか。
0094nobodyさん
2014/10/25(土) 16:31:19.49ID:???0095nobodyさん
2014/11/04(火) 02:37:17.02ID:???fuelと比べてつらい? 簡単?
0096nobodyさん
2014/11/04(火) 02:55:59.62ID:???PHP5.5
CakePHP2.4.10
http://ameblo.jp/tondemonight/entry-10124640485.html
少し古いページですが、URLの末尾にスラッシュ(トレイリングスラッシュ)を
つけようと思い上記ページの通りに.htaccessを設定しました。
思い通りの動きにはなったのですが、何故かpostもgetもデータが受け取れなくなりました。
htaccessを理解しないまま貼り付けたため、何が原因でこういう事態になったのかわかりません。
とりあえず、htaccessを元に戻せばデータの受け渡しはできるのですが。。。
XAMPP上で上記の動きになったので、さくらインターネット環境でも
試したのですが同様の現象が発生しました。
どなたか詳しい方、教えて頂けないでしょうか?
0097nobodyさん
2014/11/15(土) 12:14:51.51ID:W0Odgr3AMissing Method in AdminController
こいうエラーメッセージが表示されてしまいます。
これを表示させない方法はありますか?
やりたい事は、もし存在しない(コントローラー等が未定義)の状態で
アクセスされたら指定したエラーページに飛ばしたいです。
0098nobodyさん
2014/11/15(土) 16:00:55.50ID:???0099nobodyさん
2014/11/15(土) 19:52:27.40ID:ZGSnFqpdありがとうございます。
0100nobodyさん
2014/11/15(土) 20:12:36.24ID:VK5/2N9Recho $this->Form->input('password');
次のコードが出力されます。しかしこのままでは画面のレイアウトが
どうも満足できません。
<div class="input text required">
<label for="UserUsername">Username</label>
<input name="data[User][username]" maxlength="50" type="text" id="UserUsername">
</div>
そこで次の様にスタイル指定をしたタグを出力させたいのですが
フォームヘルパーを使うと以下の様な出力を行う事は出来ないのでしょうか?
<div class="input text required original_1">
<div class="original_2" style="width:50px;float:left;"><label for="UserUsername">Username</label></div>
<div style="width:150px;float:left;">
<input name="data[User][username]" maxlength="50" type="text" class="original_3" id="UserUsername">
</div>
</div>
0101nobodyさん
2014/11/15(土) 22:46:51.55ID:???【複数形の英単語】Controller.php
という名前にするのがルールなのでしょうか?
必ず複数形にする必要があるのでしょうか?
0102nobodyさん
2014/11/16(日) 02:51:08.67ID:???ルールではない、規約だ
規約にのっとっていれば色々とフレームワークが自動でやってくれる部分が多いが、
規約から外れたとしてもなんとかする方法は(面倒臭い方法だが)用意されている
そういう面倒臭さが嫌なら大人しく規約に従っておくのが吉
0103nobodyさん
2014/11/16(日) 11:29:55.49ID:88uIuRDd了解です。
thank you
0104nobodyさん
2014/11/16(日) 11:31:49.43ID:QtKRF6/y(開発の出来る人を想定)閲覧者にばれない様に作り込む事は可能ですか?
幾らやってもばれるものでしょか?
セキュリティ的に開発に使用しているFWは隠蔽した方が良い気がしております。
0106nobodyさん
2014/11/16(日) 13:04:20.46ID:rzwbZ1qv一から開発するの凄く手間じゃないか
0108nobodyさん
2014/11/16(日) 15:00:53.86ID:???そしてなにを満たせばセキュリティ的に合格なFWなのだろう?
セキュリティがーとかいう人間に限って知識が薄っぺらい。
0109nobodyさん
2014/11/16(日) 15:33:17.44ID:I3T4ePm6アセットディレクトリを /wp-contents/themes/*** にして、/wp-admin/ の振る舞いを偽装して
WordPress っぽくつくる。
これであまり熱心ではない開発者はWPだと思うだろ。
あとは Router というか $routes の設定をいじって、URLのパターンから推測できないようにする。
エラーメッセージの文言をすべて変更する。
まぁでも、既知の領域では隠蔽できるだろうけど、いつ何時新しい状態が現れるか分からないから完全に隠すのは難しいと思われる。
0110nobodyさん
2014/11/16(日) 19:46:24.87ID:???零細企業のサイトで、たった数件の検索に毎回15秒かかってるとこがあって理解できん
作った人間が下手なだけならいいが、Cakeの問題なら仕事で使いたくない
MVCやルーティングだけFW、DBやSQLカスタマイズでセキュリティ自力対応じゃダメかね
Cake案件が多いので、企業が使いたがってるのかは知らんが、気になってしょうがない
0111nobodyさん
2014/11/16(日) 21:26:26.08ID:???開発者もサーバの性能も糞すぎるとかじゃねえの
0112nobodyさん
2014/11/16(日) 22:24:01.26ID:???だったら15秒くらいかかる。
0113nobodyさん
2014/11/16(日) 22:36:50.85ID:???非表示状態のレコード含めても1000行はこえないでしょ
過去テーブルに移してなきゃ、ID番号が4万台だから最大4万行のはず
0114nobodyさん
2014/11/16(日) 22:40:15.89ID:???0116nobodyさん
2014/11/17(月) 20:32:45.39ID:???何使っても一緒だわな…
0117nobodyさん
2014/11/17(月) 23:14:10.85ID:84kAq3ioありがとうございます。
0118nobodyさん
2014/11/18(火) 07:26:12.45ID:BXcgCvPC<td style="width:100px"></td>
という風に列幅を指定しているにも関わらずサイズが適用されません。
なぜでしょうか?また、どうすればcakePHPを使用していても
指定したサイズに列幅調整を行う事が出来ますか?
0119nobodyさん
2014/11/18(火) 16:42:48.64ID:???0120nobodyさん
2014/11/18(火) 18:42:27.17ID:???それはcakeじゃなくてDBの問題。MySQLなら
ALTER TABLE テーブル名 AUTO_INCREMENT=1001
とか実行すればいいよ
まあphpmyadminとか使ってGUIでやったほうが楽だけどね
>>118
まちがいなくcakeは無関係
出力された後のことはHTMLとブラウザの解釈の問題
とりあえずは簡単なサンプルでタグの不整合だのCSSだのをチェックし直すといい
0121nobodyさん
2014/11/18(火) 19:07:45.09ID:???0122nobodyさん
2014/11/18(火) 20:13:46.51ID:???インデックス貼ってないんじゃないの?
mysqlってインデックス貼らないと遅くなるの俺は最近知ったね。
0123nobodyさん
2014/11/18(火) 23:18:16.68ID:72ycgRPS次の呼び出しをしているのですがなぜか
Google Analytics に認識されません。
サイトにアクセスした直後にリアルタイムを見ていますが
アクセスが一向にカウントされないのですがなぜでしょうか?
<?=$this->element("google_analytics")?>
</head>
0124nobodyさん
2014/11/18(火) 23:24:02.50ID:8pS7TyyMだけど分かりました。単なるタイムラグでした。
0125nobodyさん
2014/11/18(火) 23:27:49.19ID:???0126nobodyさん
2014/11/18(火) 23:34:44.64ID:???その遅さじゃindexどころか、innodbで↓やってるとしか思えないな
「総件数(○○件)」 SELECT count(*) FROM テーブル
「検索項目A(○件)」 SELECT count(*) FROM テーブル WHERE カラム = 'A'
「検索項目B(○件)」 SELECT count(*) FROM テーブル WHERE カラム = 'B'
「検索項目C(○件)」 SELECT count(*) FROM テーブル WHERE カラム = 'C'
0127nobodyさん
2014/11/20(木) 18:21:53.44ID:CTsz5JQbシステムを組んでいます。
hogeuser/apps/test_app
→アプリ本体
hogeuser/cake
→cakePHPのモジュール群
hogeuser/www/test_app
→最初にアクセスされる基本ファイル等(index.php)
hogeuser/www/image/****
→ここにAuth認証でログインしたユーザのみが画像等をアップロード出来る様な
システムを組みたいのですが、cakePHPで実現可能でしょうか?
様にしたいのですが
0128nobodyさん
2014/11/21(金) 01:55:20.21ID:???アセットのパスは CakePHP に依存せず自由だよ。
ほかの原因で権限が無いとかはあるかもしれないけど、Cake側では制限はない。
0129nobodyさん
2014/11/27(木) 14:38:07.68ID:???テーマを作るってやり方を見たのですが、
他に良い方法があれば教えてください。
0130nobodyさん
2014/11/27(木) 22:10:45.74ID:???あるいは何がしたいのか書かないとレスしようがないんじゃないかな
0131nobodyさん
2014/11/28(金) 06:59:13.03ID:???Model(ロジック)の方は、特別にスマホ対応をする場合もあるかもしれんが。
0132129
2014/12/01(月) 13:39:14.91ID:???「テーマが使えない」ではなく、他に方法があれば教えてくださいという質問です。
>>131
レスポンシブデザインならCSSだけで良いのですが、
スマホ専用サイトの場合、ビューが変わるし、必要なモデルも変わります。
PC版と同じコントローラーを使って同じだけモデルを呼び出すのは
無駄な要素が大きいと思い、テーマの変更だけで良いのかな?と思いまして。
0133nobodyさん
2014/12/01(月) 23:10:19.10ID:???俺はテーマ以外考えられんな。
レスポンシブでPC、スマホの両方対応というのも無駄な処理がコントローラーに増え、重くなるし。
テーマ一択で。
0134nobodyさん
2014/12/02(火) 00:51:09.72ID:???アクション共通ならビューにサブディレクトリ作るだけでもいい気が
0135nobodyさん
2014/12/02(火) 01:45:31.11ID:???横レスだけどレスポンシブデザインにしたらサーバーサイドの処理は基本的には変わらないんじゃないの?
俺の勘違いかな。
0136nobodyさん
2014/12/02(火) 02:25:29.44ID:???おっしゃる通り。確かに変わりませんね。
僕のミスです。失礼しました。
レスポンシブデザインって、ちゃんとしたサイトだとPCとスマホは分けるべきだと思うんだけどな。
0137nobodyさん
2014/12/02(火) 06:43:53.62ID:???Modelが変わるなら、Viewも応じて変えた方がいいに決まってる。
0138nobodyさん
2014/12/04(木) 15:36:33.40ID:R0j+bkTkCakeで出力されるHTMLのCSS部分はローワーキャメルケースですが、
HTMLヘルパーを使用しない箇所はどうしていますか?
同じようにローワーキャメルケースで書いてますか?
それとも独自の書き方を採用していますか?
0141nobodyさん
2014/12/10(水) 12:16:09.19ID:D9PtQRCXサーバからコマンドでシェルを実行させる場合について質問です。
シェルを実行させるパスを
/usr/local/bin/php /home/hoge/public_html/app-admin/Console/cake.php Hello
みたいにすると、「Shell class Hello Shell could not be found」というエラーになります。
上記パスのapp-adminをappにすればエラーが出ないのですが、
appの名前を変えても実行するにはどうすれば良いのでしょうか?
0143nobodyさん
2014/12/10(水) 14:37:49.96ID:???app の名前を指定するパラメータは確か -app じゃなかったかな。
-app app-admin
みたいなのをくっつければいいかもしれない。
そもそも、そんな呼び出し方する理由が分からんがな。
普通は app-admin のディレクトリに移動して Console/cake を呼び出すんだぜ。
0144nobodyさん
2014/12/10(水) 15:23:03.23ID:???0145名無しさん@そうだ選挙に行こう
2014/12/14(日) 19:10:29.85ID:R4VgTAzM毎回結合が走っている様です。
この条件の時には結合を走らせるけれども
この場合には、結合せずにfindする
といった事をコントローラー側で制御する事は可能でしょうか?
毎回、結合してクエリ結果を返していると、テーブルのレコード件数が大きくなってきた場合に
パフォーマンスに影響が出る事が予想れます。
0146nobodyさん
2014/12/14(日) 21:01:50.73ID:???bindModel()やunbindModel()で動的に変更するか
検索時にjoinsを使えばいい
詳しい使い方は↓に載っている
http://book.cakephp.org/2.0/ja/models/associations-linking-models-together.html
このスレの質問のほとんどはこのドキュメントで解決できるので
開発者なら他のページも一通り読んでおくことを薦める
0147nobodyさん
2014/12/14(日) 21:34:57.75ID:R4VgTAzMthanks
見てみます!
0148nobodyさん
2014/12/15(月) 10:55:13.83ID:???対して変わらないような気がする。
どっちもとんでもないクエリ吐き出すんだけどね。
joins 使えばそこそこまとも。
CakePHP3 ではかなり改善される模様。
0149nobodyさん
2014/12/15(月) 11:30:36.76ID:???0150nobodyさん
2014/12/15(月) 19:02:35.15ID:Hxt+g1uLさせた方が楽な気がするのだが俺だけ?
0151nobodyさん
2014/12/15(月) 20:40:41.52ID:???0152nobodyさん
2014/12/15(月) 21:02:08.37ID:???0153nobodyさん
2014/12/15(月) 22:12:11.75ID:UqCW5FKLアソシエーションは好かん
0154nobodyさん
2014/12/16(火) 03:08:27.79ID:???SQLをPDOとかで直に書いた方がいいの?
それともZendとかで最小限のライブラリ読み込んだ方がいいの?
何で日本人はCake使いたがるの?
英文サイト解読してlaravelとか使えないの?
0156nobodyさん
2014/12/16(火) 10:38:29.65ID:MEG1C3Vrしらなんだ!!
0157nobodyさん
2014/12/16(火) 17:04:45.60ID:???0159質問�@
2014/12/18(木) 00:17:48.32ID:ZHBfn1LO原因不明のエラーが出ます。
以下のコードを実行したところ投入データに一意成約違反などない筈なのに
エラーが出てしまいます。
気になるのは、エラーメッセージに「'30-1-2014-12-17'」こんな文字列がどうやらSQLで
発行されている様です。
全く原因が分かりません。お助けくださいm(_)m
$insert_data = array(
'tableTests' => array (
'user_id' => $user_id,
'sequence_number' => $sequence_number,
'confirm_date' => $executed_date,
)
);
debugprint($insert_data);
0160質問�A
2014/12/18(木) 00:19:48.09ID:ZHBfn1LOarray(1) {
["tableTests"]=>
array(4) {
["user_id"]=>
string(2) "30"
["sequence_number"]=>
string(1) "1"
["confirm_date"]=>
string(10) "2014-12-17"
}
}
$this->tableTests->create();
$this->tableTests->save($insert_data);
なぜかエラーメッセージが出てしまいます。
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '30-1-2014-12-17' for key 'PRIMARY'
#0 /home/maxnko/cake/lib/Cake/Model/Datasource/DboSource.php(460): PDOStatement->execute(Array)
#1 /home/maxnko/cake/lib/Cake/Model/Datasource/DboSource.php(426): DboSource->_execute('UPDATE `uxnko...', Array)
0161質問�@�A
2014/12/18(木) 00:39:30.54ID:ZHBfn1LO0162nobodyさん
2014/12/18(木) 10:51:48.08ID:???0163nobodyさん
2014/12/18(木) 16:27:33.17ID:IJydX9LXアソシエーションのプライマリキーが邪魔してました。
アソシエーション使わない方が小回りが利いて良いですね。
0164nobodyさん
2014/12/19(金) 19:52:59.80ID:BHq08Q5j毎度、ブラウザのみならずJSデバッガーを開いてJSを毎度開いてデバッグする必要があり手間なので
全てpostを行い、サーバ側でバリデーションその他を行う様にしました。
開発の生産性はAjaxと比べてどちらが早いですかね?
0166nobodyさん
2014/12/19(金) 23:20:57.71ID:???サーバ側でバリデーションは必須じゃないのか……
0167nobodyさん
2014/12/21(日) 15:17:01.54ID:kDlJPF64そもそもだけど、Ajaxで is_post"ajax")って感じで
バリデーションをするとcrome上でデバッガーを開いてやらないといけないでしょ?
それが面倒なんです。
普通にPOSTで全てリクエストを行っていれば
簡単にデバッグ出来るけど、Ajaxにするとサーバからの戻り値をJavaScript側でもデバッグを
する必要があるでしょ?
それが本当に面倒に感じるんです。
0168nobodyさん
2014/12/22(月) 22:18:50.23ID:???クライアント側でのバリデーションはオマケ
クライアント側でバリデーションをやろうがやるまいが、サーバ側でのバリデーションは必須
0169nobodyさん
2014/12/23(火) 21:07:58.32ID:???バグの原因にならんの?不安で仕方ない。
アップデートしたくないのをjsonで削除するとファイルまで削除されるし。
0170nobodyさん
2014/12/23(火) 21:31:44.30ID:???0171nobodyさん
2014/12/24(水) 01:58:44.52ID:???例えばcake2.4使ってて、中身を少し変えるとするじゃん。
で、2.4を指定してcomposerしたらどうなる?
1 同じ2.4なので何も起きない
2 同じ2.4だけどファイルが少し違うので新しい2.4を、上書きする
どっちなんでしょうか?
0172nobodyさん
2014/12/24(水) 08:56:59.50ID:???composer.jsonにcakephp/cakephpを2.4.*と指定したということでいいかな?
https://packagist.org/packages/cakephp/cakephp
基本的にリポジトリに登録されているバージョン情報を利用するわけなので
開発中のバージョンを指定しなければ問題無いだろう
●composer install
- composer.lockファイルがある → composer.lockファイルに記録されたものと同じバージョン
- composer.lockファイルがない → Packagistに登録されている2.4系の最新バージョン
●composer update
Packagistに登録されている2.4系の最新バージョン
自分で開発していてアップデートしたくないパッケージがあれば
composer.jsonに2.4.8などとバージョンを決め打ちで指定してupdateすれば影響はほぼない
ソースを配布するならcomposer.lockを残しておいてupdateは自己責任でやれよってことで良くないか?
0174nobodyさん
2014/12/26(金) 14:52:05.09ID:y17exSu4<?php echo
$this->Form->input(
'Fuga.fuga_id',
array(
'label' => false,
'legend' => false,
'div' => false,
'type' => 'radio',
'options' => $hogeArray,
'default' => $hogeDefault));
?>
optionsに指定している「$hogeArray」はコントローラ側からセットしている配列。
defaultに指定している「$hogeDefault」はデフォルト選択値。
やりたいことは「$hogeArrayがn個毎に改行を入れて表示」なのですが、上手くいきません。
separatorに例えば「<br />」などを指定すれば項目1つずつ改行されるのですが、
個数指定をしてseparatorを入れるようなことはできたりしないでしょうか?
0175nobodyさん
2014/12/26(金) 22:05:31.40ID:???IE8? 知らないブラウザですね
0176nobodyさん
2014/12/26(金) 22:20:14.73ID:???そういうのは出来ないと思う。
javascript で挿入するか >>175 の言うように CSS でやるか、
レンダリング結果をパースして変換。
今なら :n-th セレクタ使えるから CSS が一番手っ取り早いだろうね。
0177nobodyさん
2014/12/27(土) 09:59:18.74ID:???レスありがとうございます。
やっぱりできないんですね。
仰る通り、見た目の問題ですのでCSSで制御しようと思います。
ありがとうございました!
0178nobodyさん
2014/12/30(火) 14:19:54.96ID:9yoyGP6/サーバにポストした場合、サーバサイドでは
入力項目においてdisabled を付けている項目は $this->request->data で取得出来ない
のは仕様なのでしょうか?
0180nobodyさん
2015/01/01(木) 14:03:44.77ID:qSREffE+ありがとうございます。解決しました。
0181nobodyさん
2015/01/02(金) 09:29:55.89ID:jgbndoA2デバッグモードが2もしくは1の時は問題なくログイン・ログアウトできるのですが、
0にするとできなくなります。
http://www.msng.info/archives/2010/12/cakephp-error-only-when-debug-level-is-0.php
にある$this->autoRender = false;
は入れてあるのですが、他に解決策はありますか?
0182nobodyさん
2015/01/06(火) 01:58:05.89ID:???けどIE8は効かないということなんで、
IE8を対象外にするわけにもいかず結局開発では使えなかった・・・
181はもうちょっと具体的にどんな実装をしたのかとか
どんなエラーが発生しているのかとか報告しないと答えようがないんじゃないかな
0183nobodyさん
2015/01/06(火) 20:15:42.85ID:???0184nobodyさん
2015/01/06(火) 21:00:09.97ID:???IE8はまだ15〜20%ぐらいあるから、簡単には切れないよね
0185nobodyさん
2015/01/06(火) 21:26:44.31ID:???0186nobodyさん
2015/01/07(水) 14:32:26.18ID:???0187nobodyさん
2015/01/07(水) 20:54:00.88ID:???開発側にブラウザを選ぶ権利はなくて顧客側の要望次第だろう
今まで対応していたブラウザを切りたければうまく交渉するしかないね
IE8は全然許せるけどIE6はブラウザ界のガン細胞だと思う
0188nobodyさん
2015/01/09(金) 12:45:51.25ID:NOQO6qeZ保存した物をforeachで取り出したいけどエラー地獄だわ・・・
0189nobodyさん
2015/01/11(日) 14:25:23.64ID:???0190nobodyさん
2015/01/14(水) 16:05:28.03ID:FY0jfzBqhttp://www.hagehage.com/tururi/index.html
のような形にしたいのですが。
0191nobodyさん
2015/01/15(木) 00:37:14.38ID:HkjxQN1G多分この辺の情報が役に立つと思われ
http://stackoverflow.com/questions/3410611/how-can-i-append-html-to-all-my-urls-in-cakephp
昔調べたときは、あぁ簡単にできるんだな、ぐらいに思って一度も使ったことがないからよくわからないや。
0192nobodyさん
2015/01/15(木) 00:39:51.88ID:???http://book.cakephp.org/2.0/en/development/routing.html#file-extensions
0193nobodyさん
2015/01/15(木) 08:59:40.27ID:gSrUDeROありがとうございます!
見てみます!
0194nobodyさん
2015/01/15(木) 16:42:24.08ID:+TbruyRA0196nobodyさん
2015/01/16(金) 00:22:26.90ID:???意味不明
0197nobodyさん
2015/01/16(金) 01:25:11.15ID:K/pOgg26どうやってやるんですか?
Ajaxだと余裕ですがcakePHPでPOSTした場合にどうしても取得出来ません。
>>196
Viewのレンダリング時にhiddenに設定した内容を登録ボタンを
押した際にサーバ再度でhidde項目の値を取得したいのです。
0199nobodyさん
2015/01/16(金) 12:44:01.48ID:GWt4KHXH≪View≫
<input type="hidden" name="name_hidden" value="komaneti">
≪Controller≫
$this->request->data["name_hidden"];
⇒issetで値があるかを判定するとfalse(つまり存在しない)となります。
はたして(PHP単独ではなく)本当にcakePHPでhidden項目の
値の取得をサーバ側(Controller)でする事は出来るのでしょうか?
0200nobodyさん
2015/01/16(金) 13:29:28.04ID:???正しくはこう
<input type="hidden" name="data[name_hidden]" />
普通はフォームヘルパーで書くもんだよ
<?php echo $this->Form->hidden('name_hidden'); ?>
どうしてもnameを変えたくないなら$_POSTか$_REQUESTでどうぞ
あまりにも基本レベルで理解できてないようなんで、
まずはブログチュートリアルを実際にやってみたほうがいいよ
ブログチュートリアルって何?って人はそもそもマニュアル読んでない証拠なんで問題外
0201nobodyさん
2015/01/16(金) 14:51:16.48ID:???name="data[model_name][field_name]"
じゃないの?
どっちにしてもチュートリアルやってないような奴に何言っても時間の無駄だが
0202200
2015/01/16(金) 15:28:30.64ID:???199の例文に合わせただけだよ
モデル名も入れた君の例なら取得側が
$this->request->data['model_name']['field_name']
になるってだけ
0203nobodyさん
2015/01/17(土) 19:58:26.44ID:???0204nobodyさん
2015/01/18(日) 01:38:43.72ID:YMMCDK0Swordpressでとあるポータルサイト(1日のPVは1,000程度)を運営しているのですが、
今後、数十万件以上(WPのカスタム投稿で)のデータを登録する予定となったので、
wordpressで構築するのは負荷的に耐えられないのかと思い、
CakePHPで構築しなおそうと思っています。
という状況なのですが、CakePHPにしたからwordpressよりも早くなるとは限らず、
むしろ遅くなる可能性もあるのでしょうか?
(フレームワークとしてCakeにこだわってはいないので、採用するのは他のフレームでも構いませんが)
ググってみたりはしたのですが、この比較対象がおかしいということもあるのか、
比較記事は見当たらず、私自身がCakeの事を本質的に理解出来ていないこともあり、困ってしまっています。
WPの中で生のSQL文を書いて、直接データ登録・取得・表示するのが良いのかなと
アホみたいな事も思い始めていますが・・・・
ちなみに私自身のスキルとしては、以下の感じです。
DB:基本的に大抵のことは出来て問題無い、テーブル結合とか検索とかの事は生のSQL文を書ける
PHP:wordpressのテーマを自分でガリガリとカスタマイズして外部からの入力フォーム・表示フォームとかは自分で作成しているが、難しい事は分からない
HTML・CSS:他サイトを見よう見まねで学んでいる状態で、ちゃんと理解出来ていない事が多い
0205nobodyさん
2015/01/18(日) 01:53:17.52ID:???お前は「そんな可能性はない」と言われたらCakePHPにするのか?
そうじゃないだろう?
だったらなぜまず試さない?
試してみて遅かったら、その原因を聞きにくるというのがやり方じゃないか?
もちろん、聞きにくるときは、それなりの情報を出しながらだが
0206nobodyさん
2015/01/18(日) 13:36:16.56ID:???CMSとフレームワークの違いがわかってないのかな?
wordpressはCMSの部類でコンテンツ管理する仕組みが既に入っているけど
cakephpみたいなフレームワークは言ってみりゃ単なる便利ライブラリ集だから
コンテンツ管理する仕組みとかは全部自分で実装しなきゃいけないよ
0207nobodyさん
2015/01/18(日) 17:42:38.18ID:???そんなあやふやな知識で博打を打つくらいなら
DBのチューニングやPHPアクセラレータの導入などしてWordPressの高速化をはかるほうがマシだと思う
翻訳止めるだけでも結構速くなるしな
DBからの読み出しメインのサイトなら、
前段にvarnishやnginxを置いてリバースプロキシキャッシュでも使えば?
0209nobodyさん
2015/01/19(月) 18:10:55.81ID:oaFQh/MS⇒OK
cakePHPの正規表現でこの日付型文字列の入力のみOKとするには
どういうコードを書けば良いでしょうか?
2015/2/2
⇒NG
0211nobodyさん
2015/01/19(月) 19:59:44.14ID:oaFQh/MSどうやって判定すれば良いのでしょうか?
0213nobodyさん
2015/01/19(月) 21:40:22.05ID:oaFQh/MSはい、教えてください。
0214nobodyさん
2015/01/19(月) 23:55:25.95ID:???public $validate = array(
'myDatetimeCheck' => array(
'rule' => '^[0-9]{4}\/[0-9]{2}\/[0-9]{2}$',
)
);
みたいにすればいいのでは
このパターンはケタ数しかチェックしてないから日付には使えないけど
0215nobodyさん
2015/01/20(火) 00:39:05.11ID:MQEJ/fByサンクス
正規表現が苦手なんだよね
0216nobodyさん
2015/01/20(火) 00:56:53.90ID:???俺も得意ではないけど頭の体操がてらやってみては
ただ実際には4/31は?とか閏年じゃ無い年の02/29は?とか言う問題が出てくるから
正規表現でもできるとは思うけど
cakePHPのVaridation::dateと二段構えにするとか
カスタムバリデーションでphpのcheckdateを通すとか工夫は必要になるかも
0217nobodyさん
2015/01/20(火) 13:50:15.77ID:???Validation.php見ればわかるけど日付のチェックは閏年を考慮した正規表現一発でやってるよ
適当に改造してみるとこんな感じ
$separator = '(/)';
$regex['ymd'] = '%^(?:(?:(?:(?:(?:1[6-9]|[2-9]\\d)(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))' .
$separator . '(?:02\\1(?:29)))|(?:(?:(?:1[6-9]|[2-9]\\d)\\d{2})' .
$separator . '(?:(?:(?:0[13578]|1[02])\\2(?:31))|(?:(?:0[1,3-9]|1[0-2])\\2(29|30))|(?:(?:0[1-9])|(?:1[0-2]))\\2(?:0[1-9]|1\\d|2[0-8]))))$%';
改造ポイント
・セパレータは/しか認めない
・西暦2桁表記をNGに変更
・月の1桁表記をNGに変更
・日の1桁表記をNGに変更
書いといてなんだけど、理解できないようなら素直に文字列分解して
4年は〜100年は〜400年は〜のロジック入れればいいよ
0218nobodyさん
2015/01/20(火) 22:12:54.49ID:uK/q/RsU書いているのですが、ソースコードの行数が増えてきて
Eclipseで編集する際にフリーズを感じます。
この様にコードが増えて来た場合には
コントローラ名を分けるしかないのでしょうか?
0219nobodyさん
2015/01/20(火) 22:23:48.18ID:???機能ないし利用するモデルごとに分ける
プリフィックスルーティングでも使えばいい
メソッド一つ一つが長くなっているなら
コンポーネントやモデルや独自のサービスクラスに処理を移すことを考える
0220nobodyさん
2015/01/20(火) 22:51:22.09ID:uK/q/RsU>機能ないし利用するモデルごとに分ける
>プリフィックスルーティングでも使えばいい
こっちの事象です。
プリフィックスルーティングとか初めて聞きました。
こちらを探して試してみます。
0221nobodyさん
2015/01/25(日) 13:55:32.77ID:???URLが変わってもいいなら、普通にコントローラ分割すればいいし、
URL変えるわけにはいかないなら、"修正中だけ"別コントローラで作って
完成したら1つに戻せばいい
大きなライブラリを使ってるならeclipseから見えない場所に移動させるとか
コーディング以外にも工夫のしようはあるだろう
0222nobodyさん
2015/01/25(日) 18:50:35.80ID:???複数のコントローラに分割した上でhttp://example.com/admin/から始まるURLを使いたかったらってこと
AdminControllerなんて名前をつけてるのはURLの都合だろうと思ってね
eclipseが重くなるほど1つのファイルのソースコードが増えてるってのが本当なら
1つのコントローラに管理画面の全てを詰め込む設計はまずいだろうし
0223nobodyさん
2015/01/26(月) 11:10:30.59ID:ZT64LJ1Cなぜかファイルをアップロードしようとすると「save」ファンクション
が認識されずにエラーになってしまいます。
http://www.tailtension.com/cakephp/1512/
【エラーの出るコントローラの中のコード】
//画像の保存
if($this->Post->save($this->request->data))
⇒ここでエラー
【エラー内容】
Fatal error: Call to a member function save() on a non-object in
【捕捉】
コントローラ名は、 TestController.phpで
定義したアクション名は、 update_image です。
0224nobodyさん
2015/01/26(月) 13:32:11.28ID:???CakeというよりPHPのエラー通りだと思うけど
そのコントローラでPostモデル呼んでないだけじゃない?
0225nobodyさん
2015/01/26(月) 18:47:51.81ID:/y+cf3Fdquery使ってバインド変数で受け取れますか?
Oracleでやったことのある方がいたら教えていただきたく……
Oracle以外でも、ヒントになるやもしれませんので、教えてくださったら助かります
なんでOracleなのにcakeにしてしまったのか……
0226nobodyさん
2015/01/26(月) 20:09:16.40ID:OoDGdBhCサンクス
結局プレーンなPHPを使ってアップローダを作る事にしました。
0227nobodyさん
2015/01/29(木) 00:13:39.62ID:rYg0zKsM会員登録ページやログインページのURLが
/users/add
/users/login
だとします。
会員情報の変更は、会員専用ページにログインして行えるとします。
その場合、会員情報の変更はどういうURLが適切なんでしょうか?
通常は/users/editだと思いますが、少し違和感があります。(ログイン中に操作するので)
mypagesを作ってプラグイン化して/mypages/users/editみたいにする事も出来るでしょうが、
その場合は、会員用のコントローラー(UsersController.php)がだぶる気がします。
ログイン前のページ・ログイン後のページと分ける設計の場合、
どういうコントローラーとアクション構成にすれば良いと思いますか?
0228nobodyさん
2015/01/29(木) 20:58:50.89ID:???NULL許可、デフォルトNULLと設定したカラムでデータを省略してinsertした際の
挙動で困っております(当方2.6.1)。
CREATE TABLE [dbo].[items] (
[id] int NOT NULL IDENTITY(1,1) ,
[name] nvarchar(200) NOT NULL DEFAULT (N'') ,
[type1] int NOT DEFAULT ((0)) ,
[type2] int NULL DEFAULT NULL ,
PRIMARY KEY ([id])
)
こんな感じのテーブルがあったとして、
$data['Item']['name'] = 'test';
$this->create();
$this->save($data);
とした場合、MySQLだとtype1,type2ともにDBに設定したデフォルト値でInsertが行われます。
SQLServerの場合、「Conversion failed when converting the varchar value 'NULL' to data type int.」
という理由でエラーとなります。
発行されるSQL文で、SQLServerの場合はNULLをシングルコーテーションで囲む必要が無いのに
囲んでしまっているというのが原因のように見えますが、これを回避する方法はありますでしょうか?
0229nobodyさん
2015/01/31(土) 21:52:23.62ID:r0T1vu8nバリデーションエラー時のメッセージにフォーム入力の値を使いたいのでですが
以下$valueの部分はどのように書けばいいのでしょうか?
public $validate = array(
'name' => array(
'isUnique' => array(
'rule' => array('isUnique'),
'message' => $value . 'は挿入済みです。',
'required' => true,
)
)
);
0231nobodyさん
2015/02/03(火) 15:50:31.15ID:???コールバックbeforeValidateで処理するか、
独自のバリデーションメソッド作るか、お好きな方で。
0232229
2015/02/04(水) 18:25:08.07ID:???>>231
ありがとう。
ビューで$this->validationErrors['モデル名']のループまわすことで対応しました。
0233nobodyさん
2015/02/04(水) 22:31:45.65ID:HkYqZDdt普通の文字は問題無いのですが
「"」や「>」はサニタイズしてDBに保存するのか
それとも、エスケープしてDBに保存するのか
どちらが一般的なのでしょうか?
0234nobodyさん
2015/02/04(水) 23:47:57.07ID:???HTMLエスケープのことを言ってるなら
HTML出力時にエスケープするのが定石
DB保存時にHTMLエスケープしたりはしない
0235nobodyさん
2015/02/04(水) 23:58:09.18ID:???入力時のチェック・処理だけだとその後の処理によってスクリプトの文字列が生成される可能性があるので根本的な対策にならない
入力値サニタイジング後の値を逆手に取るセカンドオーダー攻撃なんてものもある
HTMLタグを許可する場合に根本的な対策をするには構文解析して必要な要素を抜き出す必要がある
https://www.ipa.go.jp/security/vuln/websecurity.html
ここにIPAが出してる安全なウェブサイトの作り方というPDF資料がある
クロスサイトスクリプティングの項目が参考になる
0236nobodyさん
2015/02/05(木) 00:01:18.00ID:???そういった処理は特に意識しなくても勝手にやってくれる
嘘だと思うなら、ブログチュートリアルの記事追加で
君の思いつく限りの変な文字を入力して保存、表示をしてみるといい
どんな入力をしようと問題なく動作するはず
自動でやってくれないのは
・DBがEUC-JPなのに入力に�@を使うとかの特殊なケース
・SQLを文字列で直接書いている
・ヘルパーを使わずに変数を出力
こういったときは自分でサニタイズ、エスケープ等が必要になる
0237nobodyさん
2015/02/05(木) 00:10:53.62ID:kXXlZufE皆さん詳しくどうもありがとうございます。
入力 > 確認 > 登録 or 戻る
の処理の一連の流を作っているのですがユーザが 「"」を入力した場合に
文字列が途中で端折られる為に、どうしようか悩んでいました。
0238nobodyさん
2015/02/05(木) 00:11:24.20ID:???htmlspecialchars()のラッパーがあるから楽でいいね
http://book.cakephp.org/2.0/ja/getting-started.html#id7
0239nobodyさん
2015/02/05(木) 00:13:20.68ID:???$thisを使うためにコンストラクタで$validate定義したら一応うまくいったとだけ言っておく
てきとーに回答のなかったものにも答えておく
>>225
記事内容はMySQLだけど参考になると思う
http://blog.xole.net/article.php?id=711
>>227
正解も間違いもないような話題はリアルのチームメンバーと話し合ったほうがいいと思うよ
>>228
SQLServerは環境がないから試せないけどDBのデフォルト値を設定したくなければ
create()の代わりにclear()を使うといいかも
バージョンが古くてメソッドがない場合はcreate(false)で
0240nobodyさん
2015/02/05(木) 00:52:32.89ID:mACTgUNt「彼は"おはよう"と言った」
という文字列が含まれていたとして
確認画面で<span></span>の中に確認メッセージを表示させて
「戻る」が押された場合に、最初の画面のメッセージ入力エリア(textarea)に
ままの「"」が表示された形で
「彼は"おはよう"と言った」
を出すには、�Aを使う事によりうまくいきました。
ここで疑問なのですがそもそも�@と�Aの違いは何なのでしょうか?
�@ Sanitize::clean($message_hoge);
�A h($message_hoge);
うーん、文字列で事象の説明が難しいです。。。
0241nobodyさん
2015/02/05(木) 01:06:39.73ID:???h()の実体はhtmlspecialchars()
http://php.net/manual/ja/function.htmlspecialchars.php
https://github.com/cakephp/cakephp/blob/master/lib/Cake/basics.php#L202-L234
Sanitize:クラスはCookbookに説明あり
http://book.cakephp.org/2.0/ja/core-utility-libraries/sanitize.html#Sanitize::clean
0242nobodyさん
2015/02/05(木) 01:12:45.87ID:???Sanitize::clean()は全く用途が違うメソッドでしょう
http://book.cakephp.org/2.0/ja/core-utility-libraries/sanitize.html#Sanitize::html
>このメソッドは、ユーザが送信したデータをHTMLの中に表示する準備をします。
>これは、ユーザがレイアウトを壊したり画像やスクリプトを挿入することを防ぐ上で特に便利な機能です。
>もし「$remove」オプションを true にセットした場合、データに含まれるHTMLのタグ等は全て削除されます。
>false にセットした場合は HTML エンティティとして表示されます。:
>文字をエスケープすることはエラーの可能性が低く、知られていない新しいタイプの攻撃に対して強いので、文字を取り除くよりもよい方法です。
0243nobodyさん
2015/02/05(木) 01:26:53.54ID:???echoするときにh()も書くなら、いっその事、DBに保存する前にサニタイズした方が良いと思うんだが。
beforeSave()で一括サニタイズできるし。それにエスケープさせたくない場合は復元すればいいだけだし。
0244nobodyさん
2015/02/05(木) 01:30:01.34ID:???0245nobodyさん
2015/02/05(木) 01:34:06.94ID:???0246nobodyさん
2015/02/05(木) 01:34:15.37ID:???0247nobodyさん
2015/02/05(木) 01:54:17.98ID:???0248nobodyさん
2015/02/05(木) 10:48:48.93ID:???DBのデータをCSV出力したいとき、逆変換するのか
DBに入れないデータを表示するときは、表示のときにエスケープするのか
デートの前、家から出るときにコンドームしてるようなもんだぞ
途中でトイレいくときどうするんだ
やる前にまたゴムするのか、2重になっちゃうぞ
ってこと
0249nobodyさん
2015/02/05(木) 11:04:33.13ID:MaFLMZhc分かり易い!サンキュー
取り敢えず、 h() で要件を満たせました。
anonymosuに狙われたら一発アウトそうなセキュリティだけどw
0250nobodyさん
2015/02/05(木) 17:00:36.25ID:???0251nobodyさん
2015/02/05(木) 18:27:25.06ID:???いつ生でしても良いようにピル飲んだらいいじゃない。
ってな感覚で事前エスケープしておくのは駄目ですか?
0252nobodyさん
2015/02/05(木) 19:14:43.36ID:???その辺は過去にさんざん議論されてて、結局アウトプットのときに
対処するのがベストプラクティスだねって結論が出てるんだよ。
0254nobodyさん
2015/02/06(金) 00:02:00.29ID:???挿入直前自動コンドーム装着機能を持つ
テンプレートエンジンを使えばいいだろ
0255nobodyさん
2015/02/06(金) 02:02:30.97ID:???0256nobodyさん
2015/02/06(金) 09:13:12.13ID:???0257nobodyさん
2015/02/06(金) 21:09:55.08ID:XFfNnVZS0258nobodyさん
2015/02/07(土) 06:03:05.10ID:???0259nobodyさん
2015/02/07(土) 14:20:33.66ID:???0260nobodyさん
2015/02/12(木) 19:19:14.90ID:+z/qvGfu自動で or and 検索する事は出来ますか?
参考になるサイトがあれば教えてください。
name = 'A' or name = 'B'
name = 'A' and name = 'B'
0263nobodyさん
2015/02/13(金) 12:47:36.01ID:trE+wwbVcakePHPオリジナルでは出来ないですか?
0264nobodyさん
2015/02/13(金) 13:27:08.47ID:???http://book.cakephp.org/2.0/ja/models/retrieving-your-data.html#id5
あと、
name = 'A' and name = 'B'
は常にfalse
0266nobodyさん
2015/02/13(金) 20:17:11.72ID:hnonnNdgOK
0267nobodyさん
2015/02/14(土) 12:22:29.76ID:riWWWAwOログインする時、「ユーザー名+パスワード」と「メールアドレス+パスワード」の2パターンが主に使われると思います。
管理人は前者の方法でログインし、一般ユーザーは後者でログインします。
usersテーブルが
id|username|password|email|role|created|modified
だとして、ユーザー名を使わないログインの場合は単純にusernameをNULLにして登録すれば良いんですかね?
それか、usernameにemailの値を代入するべきですかね?
でもその場合、文字数制限のバリデーションエラーが起きる気がします。
(それはroleの分類で回避すればいいことですが)
それか、usersテーブルひとつにまとめるのではなく、分けるべきでしょうか。
どのようにするのが良いかご意見お願いします。
0270nobodyさん
2015/02/14(土) 17:22:20.07ID:???俺ならメールアドレスパスワードに統一。
別に管理人ログインフォーム作成。
管理人フォームにはユーザー名とパスワード。
って感じにする。
0271267
2015/02/14(土) 17:33:06.70ID:???はい。自分もそのような画面設計なのですが、>>267でも質問しました通り、
テーブルをどういう構造にしたらいいか教えてほしいと思いまして・・。
0272nobodyさん
2015/02/14(土) 18:20:44.22ID:???ヌルでいいよ。
名前のところにメールアドレスなんて入ってたら
次触る人がナンジャコリヤァアってなる。
0274nobodyさん
2015/02/14(土) 21:07:46.13ID:???0275nobodyさん
2015/02/14(土) 21:59:10.14ID:???0276nobodyさん
2015/02/15(日) 00:53:41.16ID:???0277nobodyさん
2015/02/15(日) 14:50:48.71ID:1brRf+Ilヘルパーを使ってボタンを出力しようと以下のコードを書いたところ
なぜかエラーが出てしまいます。
array() の部分を省いてボタン名だけの指定であれば動きます。
cakePHP2ではボタンにID、NAME属性を付ける事が出来ないのでしょうか?
[コード]
echo $this->Form->button("Edit",
array(
"id" => "id_hoge",
"name" => "name_hoge",
),
);
[エラー内容]
Parse error: syntax error, unexpected ')'
0278nobodyさん
2015/02/15(日) 16:24:05.11ID:???例えばモデル的には日付がdateカラムに入ってるんだけど
ユーザーが検索するときはyear:2014とか年号だけ指定して検索できなくて
yearが1970から2015までの値以外ならバリデーションエラーをだしたい時とか
ルールが同じならコントローラー側で動的にバリデーター呼び出すだけで楽なんだけど
>>277
配列なら最後に余計なカンマ入れられるけど
引数は最後に余計なカンマ入れるとエラーになる
0279277
2015/02/16(月) 02:27:00.96ID:vJjLQ3Jtありがとうございます!出来ました!!
0280nobodyさん
2015/02/18(水) 19:23:06.50ID:4aEt4KO0// src/Controller/RecipesController.php
class RecipesController extends AppController
{
public function popular()
{
$popular = $this->Recipes->find('popular');
if (!$this->request->is('requested')) {
$this->response->body(json_encode($popular));
return $this->response;
}
$this->set('popular', $popular);
}
}
の、if (!$this->request->is('requested'))って条件の「!」いらなくない?動かしてみたらやっぱりない方がちゃんと動くし。
ここで言ってもしょうがないんだろうけど、自分の考え方が正しいのか不安だから聞きたかった
0281nobodyさん
2015/02/18(水) 22:49:27.06ID:???0282nobodyさん
2015/02/19(木) 00:34:03.06ID:???0283nobodyさん
2015/02/19(木) 01:12:24.31ID:???0285nobodyさん
2015/02/19(木) 17:29:51.85ID:???コントローラでpaginateを使いたいのですが、
ビューに引き継ぐと、なぜか「order」が効いていません…SQLにも「ORDER BY」が出ていません
インターネットでいろいろ調べて試してみたのですが、結局うまく動かなかったです…
下記名前はダミーですが、こんな感じで書いているのですが、どこがおかしいのでしょうか?
どなたかおわかりの人教えてください><
もし下記だけじゃ情報が足りなかったらご指摘ください
≪コントローラ部分≫
$this->employee->virtualFields['group_age'] = 0;
$this->paginate = array('employee' => array(
'group' => array('employee_age','gender'),
'fields' => array('employee_name','gender','count(employee_name) as employee__group_age'),
'order' => array('employee__name' => 'desc'),
'limit' => 20 ,
));
$data = array('paginate' => $this->paginate('employee') );
$this->set("data",$data);
0286nobodyさん
2015/02/19(木) 20:21:28.79ID:???ごめんなさい
'order' => array('employee__name' => 'desc'),
この部分が、
'order' => array('employee__group_age' => 'desc'),
でした
よろしくお願いします
0287nobodyさん
2015/02/19(木) 22:14:32.35ID:???原因を断定はできないがとりあえず目についたところとしてはバーチャルフィールドの名前あってなくね?
1行目group_age、4,5行目がemployee__group_ageで揺れてんじゃん
あとこの4行目の配列の一要素目 'employee_age'じゃねーの?
Group Byに指定してない列は集計関数かませずにSELECT句にそのまま使えないでしょう
名前ダミーにすんのはいいけど正確に変換してくれよ
0289nobodyさん
2015/02/20(金) 19:16:31.11ID:mKx/fp25生成したHTMLのコード上ではしっかりと
【test.html】
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
と記述しているのですが、ローカルにダウンロードして
サクラエディタで test.html を開くと右下に「SJIS」と表示されてしまいます。
【php側】
$html = {htmlコード;
file_put_contents("test.html", $html);
HTMLを生成しているPHP自体の文字コードも UTF-8 です。
なぜSJISになるのでしょうか?
0290nobodyさん
2015/02/20(金) 22:35:03.17ID:???readmeに従ってつくったけど検索が機能しないです
parsedParams()をvar_dumpしてみると空だし
urlの引数が/id:10/user:hoge/とかの形式じゃなくて
?id=10&user=hogeとかになっちゃってるみたい
バグかなぁ… 英語でググったり何度かソース見返すけどわからないです…
この現象の原因わかる方いますか?
0293289
2015/02/21(土) 14:53:33.16ID:gR4qq4TK0294nobodyさん
2015/02/21(土) 15:38:23.20ID:???0295289
2015/02/21(土) 15:44:22.51ID:gR4qq4TKありがとうございます。
解決しました。
0296nobodyさん
2015/02/22(日) 17:44:38.17ID:???下手にバージョン上げてもバグる原因増えるだけだと思いやってないんだけど。
0297nobodyさん
2015/02/22(日) 19:27:47.08ID:???0298nobodyさん
2015/02/22(日) 21:39:50.80ID:???入力欄が問題なく埋められていた場合、投稿フォームの「投稿」ボタンを押すと、コントローラーのaddが呼ばれてその投稿が追加されindexにリダイレクト、という動きはなんとかできたのですが、
入力欄の入力をバリデーションして不正なものがあった際に、indexのページ内の投稿欄にそのことを示すメッセージを表示するようにする方法がわかりません。
唯一思いついたのは、addのビューを投稿欄のみにしておいて、indexのビュー内からiframeで呼ぶことくらいです。
どなたかご教示頂けると幸いです。
0300nobodyさん
2015/02/23(月) 01:14:35.54ID:???ありがとうございます。調べるうちに、バリデーションエラーの内容をセッションに書き込んでリダイレクト先でセッションから読み出して代入、という方法も見かけたんですがこっちの方がずっとスマートですね。
というか結果的にcakephp関係ない質問になってしまって申し訳ないです。
0302nobodyさん
2015/02/23(月) 12:35:39.33ID:???実は今回やってるものが非常に特殊なケースで、IE6対応も切り捨てられないため、ajaxでやろうとして困っているところでした。
0303nobodyさん
2015/02/23(月) 13:57:46.86ID:qtvdKJqN馬鹿
0304nobodyさん
2015/02/23(月) 14:33:46.89ID:3dGVU3d0以下コードを実行すると、なぜか取得した文字コードが空文字に
なってしまいます。何が原因なのでしょうか?
【コード】
//文字を設定
$search_word = "ドラクエ";
//デフォルト
$char_code = mb_detect_encoding($search_word);
echo "char code:[{$char_code}]<br>";
//文字コードを変換 UTF-8 ⇒ SJIS
$search_word = mb_convert_encoding($search_word,"SJIS","auto");
$char_code = mb_detect_encoding($search_word);
echo "char code:[{$char_code}]<br>";
【実行結果】
char code:[UTF-8]
char code:[]
0305nobodyさん
2015/02/23(月) 14:59:54.92ID:???autoじゃなくてUTF8を指定すべきじゃないかな。
あとはphp.iniで指定してる内部文字エンコーディングとかでも変わってるくるからね。
0306nobodyさん
2015/02/23(月) 15:07:53.87ID:3dGVU3d0UTF-8 を指定してもダメでした。
0307nobodyさん
2015/02/24(火) 21:03:39.17ID:???hoge/fuga/hoge2
まで指定したい場合はどうしたらいいんでしょう?
controller=>hoge,action=>fuga,のあと、hoge2にあたる部分の指定の仕方がどうにも見当たりません。
0308nobodyさん
2015/02/24(火) 22:00:31.14ID:???最後のhoge2に当たるところで数字を使っていたのがどうもよくなかったみたいで、文字列に変えたところ、actionを指定した後にカンマを打ってそのまま書くだけでうまく行きました。
でもコントローラからstrvalしてビューに渡してもなぜかビューではint扱いされるんですね。
0309nobodyさん
2015/02/26(木) 17:58:39.07ID:36YMsn8X/app/View → /app/webroot/templates
みたいに、Viewファイルが存在するディレクトリを変えたいです。
0311nobodyさん
2015/02/26(木) 23:30:44.40ID:36YMsn8Xbootstrap.phpにあった
App::build(array('View' => WWW_ROOT . 'templates/'));
を、コントローラーのbeforeFilter()に追加したら出来ました。
ありがとうございました。
0312nobodyさん
2015/02/27(金) 01:42:29.56ID:YC5Ps1qe$str_output = mb_convert_encoding($str_output,"UTF-8","ASCII");
echo mb_detect_encoding($str_output); ・・・�A
文字列をUTF-8にコンバートしているのですが
上記コードを実行しても一向にutf-8になりません。
常にASCII が返ってきます。
何が原因なのでしょうか?
0313nobodyさん
2015/02/27(金) 01:59:37.38ID:???0314nobodyさん
2015/02/27(金) 05:01:23.09ID:YC5Ps1qe半角英数字です。
0315nobodyさん
2015/02/28(土) 14:46:39.93ID:IfvfAmZV以下の様なエラーが出ます。
何が原因なのでしょうか?
UID of script is smaller than min_uid
0316nobodyさん
2015/02/28(土) 14:56:54.33ID:IfvfAmZV自己解決しました。
0317nobodyさん
2015/03/02(月) 20:14:31.17ID:/EFmk8QSvalue serverが糞過ぎです。
cronを設定しても動きません!!もしvalue serverで正常に動作させる方法が載っているHPを
ご存知の方がいらっしゃいましたら教えてください。
0318nobodyさん
2015/03/02(月) 22:25:23.88ID:???0319nobodyさん
2015/03/03(火) 07:45:40.08ID:???どうせ設定ミスだからまず最初にローカルで動作確認してから
同じ設定をvalueserverに張り付けた方がいい
レンタルサーバーでいきなりcron動かすのは問題点特定しにくいから鬼門
0320nobodyさん
2015/03/03(火) 09:37:28.36ID:???今ならビルトインサーバで一発だし今回みたいなケースもxampp使えばすぐなのに
0321nobodyさん
2015/03/06(金) 00:22:12.48ID:???saveallがやってた動きがどうにも再現できん、難しいこと全然やってないのになあ
0322nobodyさん
2015/03/06(金) 01:05:40.10ID:???3ヶ月かけて作ったサイトなんだけど
2でリニューアルすべき?
みんなならどうする?
0323nobodyさん
2015/03/06(金) 07:38:23.90ID:???CakePHP以外にもPHPのバージョンを5.x系の最新にする手間もあるし
バージョン上げるなら、3がRC版がリリースされたので3に上げたい、
だけど上げるとしても機能追加とバージョンアップ作業は別々にした方が安心、
同時だとCakePHP、PHPのバージョンアップ、機能追加とやる事多過ぎで混乱すると思う
0325nobodyさん
2015/03/07(土) 00:01:00.07ID:4wJwCx0Bhttp://fox.2ch.net/test/read.cgi/poverty/1425651890/
0326nobodyさん
2015/03/12(木) 11:53:15.78ID:???セッション使うから嫌って変数を作ってたんだが、setFlashだけで良いことに気づいた。
elementも指定できるから、処理が成功/失敗のHTMLを出力することも出来るし、ビューに無駄な箇所が減る。
0327nobodyさん
2015/03/12(木) 14:39:44.54ID:???0328nobodyさん
2015/03/13(金) 13:31:35.39ID:qp4/hKaLFooControllerのAuthでは'FooCookie', BarControllerのAuthでは'BarCookie'のように
クッキーの名前だけ分けたいのですがどこで指定すればよいのでしょうか。
お願い致します。
0329nobodyさん
2015/03/13(金) 20:39:40.33ID:???あえてやるなら各コントローラーのbeforefilterかな
0330nobodyさん
2015/03/14(土) 12:38:08.43ID:???3使うのってまだ早いですかね?
公式ドキュメントも日本語訳まだ整備されてないですよね
0331nobodyさん
2015/03/14(土) 15:21:12.60ID:???使ってみたいわ
0332nobodyさん
2015/03/14(土) 17:04:29.47ID:???ドキュメントに書いてないことが多いのはいつものことなんだけども
0333nobodyさん
2015/03/14(土) 18:33:04.60ID:FIB+Mu1Tアソシエーション構成について悩んでいます。
テーブルは以下になります(重要な箇所以外省いています)
■ユーザーテーブル(users)
id|username|password|email
■プロフィールテーブル(profiles)
id|user_id|name|gender|comment
■店舗情報テーブル(shops)
id|user_id|name|address|tel
■広告主のテーブル(clients)
id|user_id|company|tantou|tel
■アソシエーションのパターン
一般会員の場合は、ユーザー+プロフィール
店舗会員の場合は、ユーザー+店舗情報
クライアント会員の場合は、ユーザー+広告主
となります。
それぞれ会員登録するページでは上記の組み合わせで登録します。
ユーザーに3つのテーブルをhasOneしてContainで
どのテーブルを取得するか選ぶ方法も考えたのですが、
その設計が正しいのか否か分かりません。
どういうモデル構成でどうアソシエーションを組めば良いか
アドバイスください。お願いします。
0334nobodyさん
2015/03/15(日) 22:01:54.15ID:???自分ならusersに会員タイプ判断用のtypeフィールド追加して、その値によって動的にcontainさせる
hasoneアソシエーション自体は三つとも設定しておく
あと実際の運用でこの程度のフィールド数なら
タイプごとにテーブル分けなくてもいい気がするけど
省略してるフィールドが多いならこのテーブル構成でいいと思う
0335nobodyさん
2015/03/16(月) 08:32:28.20ID:???newEntities()で一発変換できるって書いてたんだが、それだとformのcreateには何渡せばいいんだ?まずnewEntityしたのを渡してからpostが飛んできたらpatchEntitiesって感じにすると返り値が変な配列になるし
0336333
2015/03/16(月) 10:52:24.28ID:???やっぱりContainする方法がベストですかね。ありがとうございます。
あと、省略しているフィールドは多いですね。
1テーブル20ぐらいありますし、後に増える可能性もあります。
パスワード再設定用のテーブルや退会した理由をを保存するテーブルなど
ユーザー+共通テーブルがいくつかあるため、分ける形を採用しました。
03371/2
2015/03/16(月) 14:25:07.97ID:???◆ Model
-------------------------
AAncestor
BAncestor
AParent
BParent
Item
◆ Association
-------------------------
AAncestor hasMany AParent
AParent belongsTo AAncestor
AParent hasMany Item
BAncestor hasMany BParent
BParent belongsTo BAncestor
BParent hasMany Item
Item belongsTo AParent
Item belongsTo BParent
◆ 目的
ItemsをAAncestorとBAncestorで絞り込みたい
続く
03382/2
2015/03/16(月) 14:26:08.03ID:???'conditions' => array(
'AAncestor.id' => 1,
'BAncestor.id' => 1
)
));
上記のようにすると、SQLエラーが出ます。
=> Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'AAncestor.id' in 'where clause'
当面の解決策として
$this->Item->find('all', array(
'conditions' => array(
'AParent.a_ancestor_id' => 1,
'BParent.b_ancestor_id' => 1
)
));
とし、それぞれ祖先ではなく、親のforeign_keyにて対応しています。
例えばconditionsに [AAncestor.name, BAncestor.name] を使いたい場合
一度それぞれでfindを走らせIDを取得することで一応は解決しましたが、
あまりスマートに見えませんし、更に離れたアソシエーションだと難儀しそうです。
上手いやり方もしくは根本的な考え方の違いがあるのでしょうか?
シンプルそうなのに検索しても解決策がみあたらず、困っています。
よろしくおねがいします! 👀
0339nobodyさん
2015/03/16(月) 18:24:40.64ID:femzn5eLという関係性の時、メッセージを追加・編集する時に
どういうコントローラー・アクションにすればいいか悩んでいます。
A)メッセージ用のコントローラーを作り、掲示板IDを持ちまわる
/messages/index/bbs_id:1
/messages/add/bbs_id:1
B)掲示板のアクションに追加する
/bbs/message/bbs_id:1
/bbs/message_add/bbs_id:1
/bbs/message_edit/bbs_id:1&message_id:1
どちらにしろメッセージを投稿する時はbbs_idを保持しなければいけないので、
Aパターンでも良い気がしますが、Bの方が関係性は明確です。
どの形で良いかご意見ください。
0340nobodyさん
2015/03/16(月) 23:44:21.41ID:L8XNWzC11個先のアソシエーションで条件指定する場合はJOINしてるから
そのままのconditions指定でいけるけど
2個先以上のテーブルは別のSQLを投げて情報をとってくるので
そのままconditionsに条件指定しても取ってこられなかったはず
cakephp contain deep associations
cakephp conditions deep associations
とかでググると解決策出てくる
>>339
ルーティングとコントローラー/モデルを切り分けて考えた方がいい
BBSという機能を実装したいのなら、まず親のTopic(スレッド)と子になるComment(レス)を想定して
TopicsController / TopicModel
CommentsController /CommentModel
とかを作って、それぞれにindexとかaddとかeditを実装する
(名前は別にbbsとmessagesでもいいけど)
最終的にユーザーに見せたいURLとかSEO的に設定したいURLがあるなら
ルーティングで
/bbs/add/topic_id:1
/bbs/topic_id:1
/bbs/topic_id:1/message_id:1
/bbs/message/edit/message_id:1
とかで好きなURLでアクセスできるようにするのがいい
0341339
2015/03/17(火) 00:48:50.89ID:???>ルーティングとコントローラー/モデルを切り分けて考えた方がいい
という一文でハッとしました。
確かにURLはルーティング次第でどうとでもなりますよね。
1つのコントローラーでまとめるのではなく、
シンプルに目的に応じたコントローラー・アクションを作ります。
ありがとうございました!
0342nobodyさん
2015/03/19(木) 14:00:57.78ID:???佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦
佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦
佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦
佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦
佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦
0343nobodyさん
2015/03/20(金) 01:10:50.26ID:ScoidpU5現在
php で mkdir コマンドを実行してもディレクトリがなぜか
作成出来ません。
mkdirの戻り値が false になってしまいます。
何が原因なのでしょうか?
0344nobodyさん
2015/03/20(金) 14:15:11.15ID:???元のソースを追っかける癖をつけとくと捗るぞ
マニュアルでピンと来なくてもソース見れば、なーんだってことは良くある
0345339
2015/03/20(金) 16:27:02.68ID:fjnzAr64Class名をキャメルケース、関数をキャメルバックで書くのは分かるのですが、
変数もキャメルバックで書くのは抵抗があって、
スネークケース($foo_bar)にしています。
0346nobodyさん
2015/03/20(金) 23:35:07.93ID:???権限
>>345
2系まではわりと適当だけど3系になってからPSR準拠になってるし少しずつ従っていった方がいいよ
俺はmysqlとかjsとの連携を考えるてずっと変数はスネークケースでやってきたけどそろそろ潮時かもしれん
phpcsでたくさん例外作るのも面倒だしね
でもインデントがスペース四つなのは未だに納得できない
0347345
2015/03/21(土) 01:58:13.22ID:???1つのサイト作るのに色んな命名規則使うから悩みますよね。
CSSやJavascriptでもそれぞれ必要とされる規則は違うし。
ただ、変数にキャメルバックはどうも違和感があるんですよね・・・
キャメルバックにする分、文字数が減って見やすくなるとは思うんですが。
あと、インデントはスペース4つではなく2つにしてます。さすがに4つは長いかと。
という事を考えると、色々とCakeの規則から逸れてしまいますね・・。
0348nobodyさん
2015/03/21(土) 14:40:09.68ID:???経験が足りないってことなんだよw
0349nobodyさん
2015/03/21(土) 14:58:23.21ID:???PSR通りにコーディングするのは今日からプログラム始めた素人にもできる
みんなが疑問持ちながら好き勝手に書くと良くないから
グループ開発の指針としてコーディング規約があるにすぎない
0350nobodyさん
2015/03/21(土) 15:14:19.63ID:???大勢が使う何かの規約を責任持って作ったことがあれば
それからわざわざ逸そうなんて思わないってこと
0351nobodyさん
2015/03/21(土) 16:42:25.47ID:???0352nobodyさん
2015/03/21(土) 20:42:49.66ID:???グループ開発ならコーディング規約は大切だけどcake使ってるからcakeの規約を必ず採用しなければいけないわけじゃないと思うけどな
もちろんコアは必ず規約に従うべきだけどapp以下は規約推奨という程度だよ
>>351
タブインデント支持なんだろ
0353nobodyさん
2015/03/22(日) 00:28:55.54ID:???Cakephp-codesnifferのバージョンでインデントの検知(警告)がなぜ、違うのでしょうか?
Ver2.0.2だと タブで警告...スペース使え
Ver0.1.3だと スペースで警告...タブ使え と真逆になります。
ちなみに
Ver2.0.2は composerで設置 https://github.com/cakephp/cakephp-codesniffer
Ver0.1.3は pearで設置し、
netbeansのPHPCSMDの設定を
Ver2.0.2 を使うときは C:\php\vendor\bin\phpcs.bat
Ver0.1.3 を使うときは C:\php\phpcs.bat を指定すると切り替えて使えます。
※WindowsのPathは、両方通します
CakePHPは「タブインデントが正解」で良いのですよね?
0354nobodyさん
2015/03/22(日) 01:51:28.83ID:???cakephpcsは最新版だとcakephp3の規約準拠なので2系使ってる人はこっちの古いバージョン使ってね
ってREADMEに書いてあった
cakephpは2系はタブインデントで3はスペースインデントに変わってる
0355353
2015/03/22(日) 05:08:44.10ID:???感謝です。3で逆になるんですね。
言われる通り、3.0の規約の英語版には
「Four spaces will be used for indentation.」 となって、「4スペースを使え」ってなってました。
http://book.cakephp.org/3.0/en/contributing/cakephp-coding-conventions.html
ちなみに2.0は「One tab will be used for indentation.」
http://book.cakephp.org/2.0/en/contributing/cakephp-coding-conventions.html
3.0の日本語版が間違ってます。これって大混乱を招きます
「インデントには単一のタブが用いられます。」
http://book.cakephp.org/3.0/ja/contributing/cakephp-coding-conventions.html
「過去の継承」って意味や、本家本元の大間違い有りって、CakePHPって大丈夫なのでしょうか。
何を信じて良いんだろ〜
0356nobodyさん
2015/03/22(日) 14:35:05.61ID:???正式リリースもまだだしそんなもん
0357nobodyさん
2015/03/22(日) 16:16:39.32ID:???Found an issue? Submit a correction on GitHub
0358nobodyさん
2015/03/24(火) 21:25:37.75ID:???0360nobodyさん
2015/03/24(火) 22:51:32.29ID:???今回は1から2のインパクトより大きい
0361nobodyさん
2015/03/25(水) 10:40:02.23ID:???新規案件とはいえ、なかなか変えられないわな
0362nobodyさん
2015/03/25(水) 22:03:40.40ID:nkhbQP1fこういう関係のテーブル構成でfindをrecursive=>2でfirst取得すると、
array(
[Bbs] => array()
[User] =>Array(
[Profile] => Array()
))
こんな感じの配列になるのですが、Userの中に入れない方法って無いでしょうか?
つまり、$data['User']['Profile']['name']ではなく、
$data['Profile']['name']だけで参照させたいです。
0363nobodyさん
2015/03/25(水) 23:13:38.47ID:???全部アソシエーションで出来たらと思ったのですが無理なので、
joinsを使って対応します。
0364nobodyさん
2015/03/26(木) 21:56:46.58ID:???それともsave時点でエスケープします?
0365nobodyさん
2015/03/26(木) 23:26:01.65ID:???0366nobodyさん
2015/03/27(金) 00:53:05.30ID:???何に使うことになるかわからんからな
0367nobodyさん
2015/03/27(金) 12:05:56.79ID:???入力時点でエスケープやサニタイズしなくても
Cake使ってる上ではセキュリティ的には問題ないんだよね?
0368nobodyさん
2015/03/27(金) 20:44:33.33ID:???Laravelが流行だどうこう言ってますけど
結局、cakeとcodeigniter学んでおけばいいっしょ
0369nobodyさん
2015/03/27(金) 22:21:52.83ID:/GK6nVHiPHPを実行し、日本時刻を表示しようと以下のコードを書きました。
【PHP】
//ローカル時刻にGMTとの時差を引く
$time = time() - date("Z");
echo date("Y/m/d H:i:s (D)", $time);
//ついでに日本時間を表示
$time = $time + 9*3600;
echo "<BR>";
echo date("Y/m/d H:i:s (D)", $time);
【実行結果】
2015/03/27 05:22:14 (Fri)
2015/03/27 14:22:14 (Fri)
実行した結果、時刻が日本時間とかなりずれているのですがどこが間違っていますか?
0370nobodyさん
2015/03/27(金) 22:27:30.43ID:???0371nobodyさん
2015/03/27(金) 22:39:55.31ID:???教えてください。。。
0372nobodyさん
2015/03/28(土) 11:31:26.66ID:???そのサーバーの現在時刻を表示させる
時刻計算してGMTを表示させる
時刻計算してJSTを表示させる
この手順でうまくいかなければ諦めろ
はい、この話は終わり
0374nobodyさん
2015/03/28(土) 15:56:09.33ID:???init.js というスクリプトがデバッグされていますが
なぜこんな自分で読込もしていない様なスクリプトが読み込まれているのでしょうか?
※javascriptのスレッドが見つからなかったので人が一番多そうなここで
質問させてもらっています。
0375nobodyさん
2015/03/28(土) 17:42:04.24ID:???はい、この話は終わり
0376nobodyさん
2015/03/29(日) 01:04:03.61ID:???みたいな煽りをするための材料作りに来たような感じ
0377nobodyさん
2015/03/29(日) 16:04:33.31ID:???0378nobodyさん
2015/03/29(日) 19:57:31.43ID:???0379nobodyさん
2015/03/29(日) 20:26:31.18ID:???0380nobodyさん
2015/03/30(月) 23:11:34.93ID:???どうすればPHPが使える様になりますか?
マニュアルが古すぎて設定が出来ないです。
http://www.serverqueen.jp/cs/startup/zoomimg/shared_php01.html
0381nobodyさん
2015/03/30(月) 23:42:44.98ID:???なんで最近こういうのが増えたんだ?
0382nobodyさん
2015/03/31(火) 02:02:19.81ID:???いまのとこ誰も賛同してくれてないけどな
でもあると思うんだよなぁ
0385nobodyさん
2015/03/31(火) 11:14:53.43ID:???1:初心者がタダでプログラミングを学ぼうとする
2:ドッドインストールというサイトを見つけて勉強する
3:しかし、基本的なことをちょっと紹介してるだけなので、何が必要か分からない。
4:知恵袋や教えてgooで質問するのは手間がかかる
5:「そうだ!2ちゃんねるなら会員登録が必要ないし、大勢居るから教えてくれるだろう!」
6:適当に板名を見てWebProg板を探すも、どのスレに質問していいかわからない
7:「ま、スレタイにPHPってついてるし、上の方にあるからこのスレでいいやろ」
って感じだと予想
0387nobodyさん
2015/03/31(火) 15:33:31.65ID:???動画学習系のあるけど、やってみてわかったけど動画学習は効率悪い
気分的にやった感はすごいあるけど
0388nobodyさん
2015/03/31(火) 15:53:01.22ID:???そこが作ったDVDを再生しながら同じように入力する程度で、全く身に付かなかった。
あれなら3000円ぐらいの初心者本買って、その通り作る方がマシだわ
0389nobodyさん
2015/04/01(水) 00:49:18.74ID:???知識豊富すぎだろ
0391nobodyさん
2015/04/01(水) 10:37:36.77ID:???毎回、動作テストの度にフォーム入力していくので面倒です。
こういう時ってCakeのテスト機能を使うのでしょうか?
いまいち、テストの使い方がよくわからないので教えて下さい。
0392nobodyさん
2015/04/01(水) 17:00:09.59ID:PiSv1kDp馬鹿まるだし
0393nobodyさん
2015/04/01(水) 21:48:03.44ID:PiSv1kDpaiueo<br><br>
,
&
0395nobodyさん
2015/04/01(水) 23:37:29.02ID:???ちゃんとやりたいのですが、どうやってテストを作ればいいか分かりません。
せめてググり方だけでも教えて下さい
0396nobodyさん
2015/04/01(水) 23:56:21.88ID:PiSv1kDpとりあえず舌をおもいっきりかめばいいと思うよ
0401nobodyさん
2015/04/03(金) 18:37:35.13ID:???かと言ってコントローラーで設定するのも悩む。
0403nobodyさん
2015/04/03(金) 23:32:55.11ID:???海外サーバを希望です。
0404nobodyさん
2015/04/03(金) 23:37:54.15ID:???どういうこと?例えば
ホーム > ネット関係 > WebProg
だとして、この流れをコントローラーから配列を作成してsetし、
ビューでヘルパーから読み込むとか?(俺はそうしてた
でも、ページ毎のタイトルをDBで管理しない限りは、
コントローラーに直接書かなきゃいけないからなぁ
DB管理していないページもあるし。
0405nobodyさん
2015/04/03(金) 23:53:39.12ID:???そんな感じ
二階層までならコントローラー名とアクション名に準じたタイトルでパンくず作ってあげてもいいかも
それ以上の階層はdbなりconfigure使うしかないんじゃないかなー
>>403
AWSっていう海外サーバーならお金払えば払っただけ無制限にディスク使わしてくれるらしいよ
0406nobodyさん
2015/04/04(土) 00:40:37.59ID:???404だけど、やっぱりそうか。ページ名をどこで管理するかが問題なんだよなぁ。
DB使うと、簡単なページを追加した時でも、DBに追加する必要もあるし。
0407nobodyさん
2015/04/04(土) 15:50:08.18ID:???インストールするのにComposerとかみんな使ってんの?
色々知らないことが増えてる…
0408nobodyさん
2015/04/05(日) 01:16:56.44ID:???やっぱりリスキーだよね?
0409nobodyさん
2015/04/05(日) 02:17:41.58ID:???0410nobodyさん
2015/04/05(日) 04:14:01.43ID:???おれならお断りする案件だな
0411nobodyさん
2015/04/05(日) 15:06:11.90ID:???いや、結構ガチガチの会員サイト
安定しているシステムなのにこれをcake3に置き換えてボコボコになりそうで怖いです。
VB6.0→VB.net へのリプレースみたく大変な事になりそう。
0412nobodyさん
2015/04/05(日) 17:50:15.66ID:???0413nobodyさん
2015/04/06(月) 12:01:41.30ID:???プライマリーキー以外で結合する必要があるから
アソシエーションじゃなくてjoinsに書いてるけど、その点だけが困る。
0416nobodyさん
2015/04/07(火) 21:18:58.02ID:???いけるいける
primarykeyとforeignkey切り替えれば
まあ素直にjoinした方が見通しいいかもしれないけど
0417nobodyさん
2015/04/08(水) 10:25:46.98ID:???どうやっていけますか?
User→Profile
User→Bbs
Bbs→Entry
というモデル設計で、BbsとEntryをhasOneで繋ぎつつ、
Bbsのuser_idとProfileのuser_idを結合したいのですが。
0418nobodyさん
2015/04/08(水) 22:50:18.86ID:???そういう構成なら直接結合しないでUser経由して結合した方がいいよ
深い結合については>>340あたりを参照
0420nobodyさん
2015/04/09(木) 00:40:19.67ID:???413=415=417=419ですが自己レスです。
joinsを使ってもUser経由で結合してもそんなにSQLの回数は変わりませんね。
強いて言うなら、$data['User']['Profile']['name'];
みたいに多次元配列になるのが煩わしいだけでしょうか。
joinsの場合は、$data['Profile']で書けますが。
よほど深い階層になる場合や複雑なSQLでない限り、
極力、joinsは使わないようにします。色々と教えていただきありがとうございました。
0421nobodyさん
2015/04/09(木) 01:19:01.76ID:???0422nobodyさん
2015/04/09(木) 14:29:29.47ID:???どちらにしろフレームワーク使うんだから、後々修正しやすい方がいい
0423nobodyさん
2015/04/13(月) 14:41:46.28ID:kiqQUtSecore.phpのprefixにmypageを追加して、会員専用の処理がある場合は、
該当のコントローラーで、アクション名にmypageを付けて処理する。
例)会員情報の変更
/mypage/users/edit →UsersControllerにmypage_editを追加
例)会員が投稿した日記を編集
/mypage/diaries/edit/1 →DiariesControllerにmypage_editを追加
例)会員ではない人が日記を閲覧
/diaries/detail/1 →DiariesControllerにmypage_detailを追加
という考えで良いのでしょうか?
URLはrotes.phpに指定すればいかようにも変えられるというのは分かるのですが、
出来るだけCake利用者がやっている、ベターな方法を追求したいと思っています。
それがprefixを使う方法なのか、MypageControllerを作る方法か、routesのみで切り替えるのか
どれが良いか悩みますので、作り方に法則のようなものがあれば教えて下さい。
0424nobodyさん
2015/04/13(月) 22:48:51.65ID:???editとかのページはauthコンポーネントのallow使って制御した方がいい
detailをprefixで振り分けてるのは悪くはないけどそこまで表示内容に違いがないのならprefix使うまでも無い気がする
0425nobodyさん
2015/04/14(火) 11:10:39.83ID:???つまり、わざわざmypageというprefixやコントローラーを作るのではなく、
各アクションにアクセス制限(authのallow)をするだけでいい
ってことですかね?それが一般的ならそうしますが、
どうもログイン後のページって、adminとかmypageを付けるような気がするんです。
決まりがあるわけじゃないでしょうが、ググってもそういう情報が多くて・・・
0426nobodyさん
2015/04/14(火) 11:13:26.07ID:???例)会員ではない人が日記を閲覧
/diaries/detail/1 →DiariesControllerにmypage_detailを追加
↓
/diaries/detail/1 →DiariesControllerにdetailを追加
(誰でも閲覧できるから、prefix必要ないです)
0427nobodyさん
2015/04/14(火) 22:26:08.70ID:???規模が大きくなるのならログイン必須であることを明示するためにもprefixあった方がいいかもだけど
一人で小規模でやるなら分けるほどでもない
0428nobodyさん
2015/04/14(火) 23:14:54.67ID:???どの程度が「規模が大きい」から図りかねるのですが、
モデルが50ぐらいあるなら大きいって認識でいいですかね?
前述した通り、「一般的なベターなやり方」を教えて欲しいのですが・・・
0429nobodyさん
2015/04/14(火) 23:40:26.26ID:???モデルというよりコントローラーの数によるだろうけど、それだけでかけりゃ分けた方がいいよ
一般的にベターとか言われも、例えば規模が本当に小さければcakephpなんて使わずに
phpの1ファイルで実装した方がいい場合もあるわけだし
規模感無視して一般的な話をしようとしても無理だよ
0430nobodyさん
2015/04/15(水) 00:06:47.65ID:???cakeのモデルって使い勝手悪いのですが、これがフレームワークでは普通なのでしょうか?
アソシエーション定義してもrecursiveの深さを検索するとかこんなもの使い道あるのでしょうか?
テーブルにただマッピングされてるだけのsql発行クラス以上の使い方があるのでしょうか?
っていうか、このモデルというのは使い勝手がいいのですか?
0432nobodyさん
2015/04/15(水) 00:30:30.11ID:???フレームワーク使うのに、小規模ってことは無いと思うんです。
例えば「お問い合わせフォーム作りたいから使おう」とか「会社紹介ページ作りたいから使おう」
ってレベルの人がフレームワークに立ち寄らないと思うんです。
それより規模がでかくて数々のプラグインや便利ツール(ヘルパー・コンポーネント等)
があるからフレームワークを使おうと思うわけで。
そしてもうひとつの利点である「開発方法を定める」ってのもあると思うんです。
命名規則やMVCの考え方など、1人でやってたらその都度変わりそうな要件も
フレームワークを使うことで統一する事が出来るし、それは後の改修のしやすさに繋がる。
だからこそ「一般的でベターな方法を追求する」事ってメリットがあると思うんですよ。
そこにメリットが無かったり、「人それぞれじゃね?」ってなると、
それこそオレオレフレームワークと変わらない気がします。
>>430がフレームワークを使おうと思ったキッカケも、
「自分一人の考えで済ませたくないから」じゃないですかね。
そして過去の自分の経験・考えがあるからこそ、
「Cakeのモデル定義は使い勝手が悪い」という判断ができるわけで。
だからやっぱり「自分の好きな様にやれよ」って言われても、しっくり来ないんです。
0433nobodyさん
2015/04/15(水) 00:47:12.63ID:???TeraTermで接続するにはどうすれば良いでしょうか?
0434nobodyさん
2015/04/15(水) 00:57:56.92ID:???sqlもおぼつかないど素人です。
>>432
>だからやっぱり「自分の好きな様にやれよ」って言われても、しっくり来ないんです。
そうですね、なにか他人と共有できるものを獲得できるようにフレームワークで一番最初に引っかかったものいじってみたしだいです。
よくわからないので、とりあえず青い鳥を探してがんばってみることにします。
ありがとうございました。
0435nobodyさん
2015/04/15(水) 01:03:19.42ID:???いわんとすることはわかるけど、cakeでもコントローラー10個以下の小規模なものと
コントローラー100個以上の大規模なものでは、cakeという規約の上でも開発ポリシーは変わるよ
もちろん参加メンバーの多寡でも変わる
たとえばcakeはキャッシュ先をファイルとapcとmemcacheとredisに対応してるけど、
決してデフォルト設定のファイルキャッシュが多くの場合にベターな手段であるということではない
最終的に自分の案件でなにを使うか決めるのはやはりそれぞれの開発者だよ
0436nobodyさん
2015/04/15(水) 01:16:06.96ID:???フレームワークを使わない場合、
ファイル管理は主にフォルダ分けで対応していたと思うんです。
そのフォルダ分けがコントローラー分けに変わっただけで。
でも、コントローラーを分ける理由てファイルが肥大化して読みにくくなるからで、
1コントローラー1アクションを実行するCakeの場合、
パフォーマンスに大きく影響はでないと思います。
ただ、その「ファイルが読みにくくなる」というのは開発効率の面で大きな問題ですし、
バグのリスクが高まるなら、素直にファイルを分けたり、
プラグイン化するのも大事だと思います。
その、「どれぐらいの量に達したらこうするべき」って指標があれば良いんですけどね。
それはあくまで要件次第って事が難しくさせるんです。
基本的に誰しも最初は小規模の物を作るだろうし、
継続して運営していくようなものなら後から機能を追加して大きくなっていくと思うし。
とりあえず、会員専用ページのURLやコントローラー構成に「こうするべき」
という指標はないということで納得する事にします。色々とありがとうございました。
0437nobodyさん
2015/04/15(水) 02:03:20.77ID:???Cakeのモデルを「使い勝手が悪い」と評価した理由や経緯に
興味があるんだけれど。差し支えなければ教えて欲しい。
0438nobodyさん
2015/04/15(水) 03:26:27.37ID:???findで帰ってくる連想配列が使いづらい
モデルのhasManyでつながってるモデルのさらにhasManyを取得するのがrecursiveで階層指定する以外、ドキュメントに見当たらない。
とか
まだ、勉強段階で自分が勘違いしてるかもしれんが、使い勝手がいいとは。。。
0439nobodyさん
2015/04/15(水) 08:07:14.49ID:???findの返り値はcakephp3からオブジェクトになったはず
俺はpdoで返ってくる値とどちらも大して違わないと思うけど、
cakephp2の配列は良くも悪くもphp的だね
recursiveが扱いにくいのは事実で、基本的にはcontainableを使う方がいい
0440437
2015/04/15(水) 13:46:41.43ID:???回答ありがとう。「モデルの使い勝手が悪い」にはそもそも同意していて、
初心者の観点だとどのへんが辛いと感じるのかなと思ったので。
Cake2でのモデルを扱うには、Containable と Hash を活用するようにすれば
少しは辛さは軽減できると思うけれど、何というかどちらもいわゆるバッド
ノウハウの類であって、本質的な辛さを解決するものではないし、だからこそ
Cake3では、エンティティオブジェクトを返すようになり、Containable /
recursive / afterFind / virtualfield などがなくなってしまったんだと思う。
0441nobodyさん
2015/04/15(水) 16:25:28.65ID:???データ量が膨大で3日程かかってしまいます。
DL中にWindows Update等の横やりがはいり、DL処理が中断されてしまいます。
その後DL処理を再開するにあたり、既にローカルに対象ファイルがある場合には
スキップして、新しいファイルのみWEBサーバからローカルにDLする設定方法はありますか?
0442nobodyさん
2015/04/15(水) 17:44:41.75ID:???それってCakeと関係なくね?
CakeはPHPというプログラムを使って、主にWebサイトやシステムを作るものだよ?
あなたの悩みはFTPとかSSHとかtelnetとか通信上の問題だと思うんだけど。
0444nobodyさん
2015/04/15(水) 20:20:48.34ID:???ありがとうございます。
Containableはよさそうですね。
>>440
Hashはバッドノウハウってのはまさにですが使ってますね。
とりあえずはcake2をしばらく弄ってみます。
0445nobodyさん
2015/04/16(木) 19:40:28.40ID:???ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★
0446nobodyさん
2015/04/16(木) 20:04:32.48ID:qC1kWGvR<b>どうやってかいた?</b>
0447nobodyさん
2015/04/16(木) 20:13:15.48ID:???0448nobodyさん
2015/04/16(木) 20:14:44.25ID:???0449nobodyさん
2015/04/16(木) 22:21:57.51ID:???0450nobodyさん
2015/04/18(土) 17:51:43.74ID:???>>472
なんで IDとか日付が他のレスと違ってるの?
2chのバグ?
0451nobodyさん
2015/04/19(日) 18:05:07.95ID:0/QVOYd7#ビュー
echo $this->Form->input('Entry.1.name', array('type' => 'text'));
echo $this->Form->error('Entry.1.name');
では表示されませんでした。
0452nobodyさん
2015/04/19(日) 19:11:07.38ID:???そもそもエラー発生してる?
formのdatetimeのバリデーションとかyear monty dayでエラー吐かせる処理とか参考にするとよいよ
0453nobodyさん
2015/04/19(日) 20:23:57.18ID:0/QVOYd7$this->Entry->validationErrorsをするとエラーは発生しています。
とりあえず簡単には出来そうにないですね、カスタマイズしていかないと・・。
0454nobodyさん
2015/04/19(日) 22:10:36.85ID:???いや、書き方はそれであってると思うよ
少なくとも自分はその書き方で実現できている(cake2.4.6)
なのでエラーの設定側の方を疑ってみるとして、
debug($this->Entry->validationErrors[1]['name']);
の出力結果が
array(
(int) 0 => 'エラーメッセージ'
)
みたいになっているか確認してみるといい
0455nobodyさん
2015/04/19(日) 23:57:05.45ID:0/QVOYd7逆になってました。
array(
'name' => array('0' => 'メッセージ’)
)
みたいな。
バリデーションを発生させる時、手動でやってるのですが、
$this->Entry->set($this->request->data['Entry'][1]);
$this->Entry->validates()
みたいにしているのが駄目なんですかね?
でも、こうしないと個別にバリデーション出来ないし・・・。
0456451
2015/04/20(月) 00:10:41.17ID:???$this->Entry->saveAll($this->request->data['Entry'], array( 'validate' => 'only' ));
だと複数レコードのバリデーションだけやってくれ、
>>451の$this->Form->errorが無くてもエラー表示されました。
0457nobodyさん
2015/04/24(金) 11:11:15.22ID:???Tera Term開発者(チーム)にFTP機能を追加してくれるように頼むか、自分でパッチを書いて提案する
0458nobodyさん
2015/04/24(金) 17:42:45.73ID:T3bkqRm0に誰か回答してやれよ。
0459nobodyさん
2015/04/24(金) 18:37:24.44ID:???0460nobodyさん
2015/04/25(土) 02:41:48.48ID:???もうレンサバで動かすのが無理なのか?
3.0でなんかやってる人ってVPSとかでやってんのかな?
0461nobodyさん
2015/04/25(土) 19:24:11.08ID:tDD6UmBwバッチ処理用にシェルを作ってコンソールから実行するとapp/tmp/cache/models以下にroot権限のファイルができます。
するとWebから実行した時ファイルに書き込めないとエラーになります。
これは普通どうやって対策するものなんでしょうか?よろしくお願いします。
0462nobodyさん
2015/04/25(土) 20:56:01.41ID:???0463nobodyさん
2015/04/26(日) 10:00:38.91ID:???これじゃなくて?
Tmpディレクトリのパーミッション
whoamiチェック
$ cd /var/www/html/cake_2_0
$ vim whoami.php
whoami.php
<?php echo exec('whoami'); ?>
whoami.phpにアクセスし、実行ユーザを確認
http://example.com/cake_2_0/whoami.php
結果がapacheだったとして進めます。
# 権限設定
$ chown -R apache app/tmp
0464nobodyさん
2015/04/26(日) 10:02:31.68ID:???コピペしたらわかりにくくなった
すまそ
ここね
http://qiita.com/sampleb3/items/d274bc1cecda8ef62c28
0465nobodyさん
2015/04/26(日) 11:02:48.16ID:???ブラウザからテーブル作成や初期レコードの追加などを行いたいです。
DBに登録するデータの設定はSchemaから行うのはわかったのですが、
コマンドではなくてブラウザから行う方法が分かりません。
何かやり方がありましたら手順を教えて下さい。
(出来ればPHPのsystemコマンドを使う方法以外で教えて下さい)
0469nobodyさん
2015/04/26(日) 18:29:57.09ID:???一からやりたいという希望のようだけれど、そんな機能はないよ
0470nobodyさん
2015/04/26(日) 20:30:12.18ID:???0471nobodyさん
2015/04/26(日) 22:32:06.38ID:???Asia/Tokyoって書いたらMySQLがエラー吐くんだけども
0473nobodyさん
2015/04/27(月) 19:03:49.33ID:???データベース側でselect now()やってみたら正しい時間になるんだけども
0474nobodyさん
2015/04/27(月) 23:42:19.48ID:???このファイルこういう為にあったのね…
適当すぎました。
0476nobodyさん
2015/04/28(火) 15:17:14.96ID:???多の方を検索して一致する親IDを抽出し、conditionsするのがセオリーですよね?
0477nobodyさん
2015/04/30(木) 02:23:35.28ID:pzkccb8rbeforeFilterでセッションを別にしてもなんか動作ばぐる(
複数のうちのひとつの認証ページにしか飛ばない)んですけど
実現できた人いますか?
0479nobodyさん
2015/04/30(木) 18:28:35.07ID:???コントローラーにpublic $uses = nullとしているんですが
相変わらず
Error: Cannot access empty property
というエラーが表示されるんですが、どうしたらいいでしょうか?
0480nobodyさん
2015/04/30(木) 20:39:57.17ID:???ありがとさんくす
class TasksController extends AppController {
public $components = array(
'Auth' => array(
'loginRedirect' => array(
'controller' => 'offerpage',
'action' => 'index'
),
'logoutRedirect' => array(
'controller' => 'offers',
'action' => 'login',
),
'authenticate' => array(
'Form' => array(
'userModel' => 'Offer',
'passwordHasher' => 'Blowfish'
)
)
)
);
public function beforeFilter(){
# parent::beforeFilter();
// ユーザー自身による登録とログアウトを許可する
$this->Auth->allow('add', 'logout');
# offers,adminsログインと混同しないように
AuthComponent::$sessionKey = 'Auth.offers';
}
0481nobodyさん
2015/04/30(木) 20:40:36.55ID:???class UsersController extends AppController {
public $components = array(
'Auth' => array(
'loginRedirect' => array( 'controller' => 'mypage', 'action' => 'index' ),
'logoutRedirect' => array( 'controller' => 'users', 'action' => 'login' ),
'authenticate' => array(
'Form' => array(
'userModel' => 'User',
'fields' => array('username' => 'email','password' => 'password'),
'passwordHasher' => 'Blowfish'
)
),
'authError' => 'Eメールアドレスとパスワードを入力してください',
)
);
public function beforeFilter(){
parent::beforeFilter();
// ユーザー自身による登録とログアウトを許可する
$this->Auth->allow('add','logout');
# offers,adminsログインと混同しないように
AuthComponent::$sessionKey = 'Auth.users';
です
0483nobodyさん
2015/04/30(木) 20:58:11.41ID:???nullとfalse両方でやってみたけど以下のエラーを吐いてしまいます…
Fatal error: Cannot access empty property in /home/xxx/www/cakephp/lib/Cake/Controller/Controller.php on line 437
0486nobodyさん
2015/05/05(火) 07:01:11.64ID:???やり方が分かりません
誰かやり方を教えてくれませんか?
0487nobodyさん
2015/05/05(火) 20:48:55.06ID:???標準のページングと違う動作をさせたければ
paginateCount()とpaginate()という関数を
モデルかビヘイビアに作り、paginateCountで全体の件数、
paginateで1ページ分のデータをreturnするよう実装すればいい
引数とかの詳細はマニュアルに書いてある
http://book.cakephp.org/2.0/ja/core-libraries/components/pagination.html#id3
0489nobodyさん
2015/05/06(水) 19:12:43.08ID:???0490nobodyさん
2015/05/06(水) 20:39:42.84ID:???0491nobodyさん
2015/05/07(木) 22:42:13.49ID:???「1|2|3|4|5」と表示して5をクリックしたら、
「3|4|5|6|7」と表示させることって出来るのでしょうか?
0493486
2015/05/09(土) 08:14:27.22ID:???結局、IN句がどうしても入らないので(文字列扱いになる)、
ORを利用することで解決しました
もしIN句で実現できるよーって人がいましたらレスしてくれると嬉しいです。
0494nobodyさん
2015/05/09(土) 12:00:46.20ID:???inはorやnot inとかと違って、明示的に書かずに配列を入れるだけでいいはずだよ
普通のfindのconditionsではin動いてる?
0495nobodyさん
2015/05/09(土) 13:18:29.99ID:???自動って、$this->Paginator->numbers()を出力したらということですか?
このままではなりません。普通に、5|6|7・・・とページが増えるだけです。
0497nobodyさん
2015/05/09(土) 13:58:19.35ID:HYo3XLyg自動ではならなかったと思うが…。
0498nobodyさん
2015/05/13(水) 13:39:51.91ID:???これまでprofilesにuser_idを追加していたんだけど、必要なかったんだね。
profilesのidのauto_incrementを止めて、
ProfileモデルにprimaryKey='id'とすれば、saveもfindも問題なく拾ってくれる。
既出だと思うが、自分としては発見だったのでメモする。
0499nobodyさん
2015/05/13(水) 22:16:31.12ID:???hasoneかつbelongstoでお互い同じidならってこと?
便利そうに見えるけど何となく気持ち悪い気もする
0502nobodyさん
2015/05/19(火) 12:15:05.85ID:jQo/pXrBエレガントな方法ってありますでしょうか?
セッションにユーザのIDとパスワードを入れといて
ページ遷移ごとにいちいち認証かけるってのも、あるけど
非セキュアな気がして気が進みません。。。
0503nobodyさん
2015/05/19(火) 13:20:38.39ID:???0504nobodyさん
2015/05/19(火) 17:12:56.72ID:c25x6ol9Cake使うまでもないと思いますが、皆さんはどうしてますか?
PDOと使うとか別の小規模フレームワーク使うとかPHP直書きとか
色んなパターンあると思いますが、出来るだけ手間なく使える方法が知りたいです。
0506nobodyさん
2015/05/19(火) 23:13:58.17ID:???セッションの使い方が間違ってる気がする
普通にauthコンポーネント使って任意のタイミングでsession消すか
logoutさせればok
>>504
1ファイルで収まる程度ならpure php
それ以上ならcakephp使うわ
ミニマルフレームワークに学習コストかける気になれない
0507504
2015/05/19(火) 23:46:28.25ID:???DB登録とか参照をどうするか悩んでいます。
Cakeの書き方がベストとはいえ、ページの一部だけに使うのでMVCは必要なく、
かといって、SQL文を直書きなのもどうかと思ったり。
SQLインジェクション対策とか必要ですし。
0509nobodyさん
2015/05/21(木) 21:37:14.24ID:???そんなに不安がるということはかなりの初心者だね?
もう一度PHPを基本からじっくり勉強し直した方が良いかもよ。
0510nobodyさん
2015/06/03(水) 21:07:19.92ID:???WEBサーバはnginxで「/var/www/docroot/hello/cake」にCakeを置きました。
ドキュメントルートは「/var/www/docroot/hello」です(Cakeはサブディレクトリ)。
そこで「https://foobar.net/cake/」でアクセスします。
しかし、cssやgifが取れない。ログには「https://foobar.net/cake/baz.css」と残っています。
Cake的には「https://foobar.net/cake/app/webroot/baz.css」を読んで欲しいが、それが上手くいかない。
ググると日・英なり、色々と出ては来るが、どうにも決定打がない。
お分かりになる方いますか。
0511nobodyさん
2015/06/03(水) 21:23:59.28ID:???黙れバカ。ぐぐれ。
0512nobodyさん
2015/06/03(水) 22:20:10.80ID:???さすがにそのレベルだと回答するのも馬鹿馬鹿しくなるな
0513nobodyさん
2015/06/03(水) 23:07:24.18ID:???0515nobodyさん
2015/06/04(木) 01:26:07.24ID:???0516nobodyさん
2015/06/04(木) 21:42:11.27ID:???0517nobodyさん
2015/06/04(木) 21:57:48.06ID:???0518nobodyさん
2015/06/06(土) 00:04:16.21ID:rAdaJfyphttps://www.youtube.com/watch?v=Tk--WgBtIBA
0519nobodyさん
2015/06/10(水) 10:26:16.68ID:???マスタ統合+リバースプロキシでシステム間を往き来できるようにはなったのですが
�@UI統一のためメニューバーを共通部品化したいが、テンプレートエンジンが異なるため統合できない、そうなると今後その部分の二重管理が避けられなくなってしまう。
�Aログイン認証をどちらかのフレームワークに寄せたいがログインセッションを共通で読めるようにする方法がわからない。例えばオレオレフレームワークでCakePHPが読めるセッションを作るといったことが出来るのか??
という問題にぶち当たり頭を抱えております。
�@�Aについてみなさまのお知恵を拝借できないでしょうか?
0523nobodyさん
2015/06/11(木) 08:53:44.17ID:???0524nobodyさん
2015/06/11(木) 12:09:32.15ID:???0526nobodyさん
2015/06/19(金) 12:17:16.27ID:SOLYvyQT$this->Auth->user()をうまく拾えるのですが、
これを例えば、Fooコントローラ内で
同じものを拾いたい場合どうすればいいか、
教えて頂けますでしょうか。
AuthComponent::$sessionKeyを同じものにしても
だめでした。
0530nobodyさん
2015/06/22(月) 14:29:35.10ID:L3kxYzS9モデル同士が密結合になるから微妙なカンジがするんだけど、コントローラーでやろうとすると、どんどん太っていくし。
0532nobodyさん
2015/06/22(月) 16:41:23.12ID:???0533nobodyさん
2015/06/23(火) 09:29:54.07ID:P4/MrXim例えば1ユーザー(Userモデル)が自分の趣味を設定できるとします。
趣味はHobbyモデルで複数選択できます。
この時、登録時は単にsaveすればいいので問題無いですが、
編集時はどうすればいいのでしょう?
一旦、Hobbyに登録されているuser_idが該当するデータを削除した後、
追加という形でしょうか?
それともHobbyモデルの該当するuser_idを一旦取得して、
新たに選択したデータを追加、選択を外したデータを削除
という形がよいでしょうか?
どちらもなんか違う気がしてるので、良い方法があれば教えてください。
0534533
2015/06/24(水) 17:26:48.43ID:???編集時は一旦全削除されて新たに追加という形になっていました。
ですので、>>533は前者の方法で正しいみたいです。
0535nobodyさん
2015/07/02(木) 17:37:38.09ID:Bg3Tlr0ucheckboxで複数検索した時、URLが
/posts?category%5B0%5D=1&category%5B1%5D=2
みたいになります。チェックボックスの数だけ
「category%5B0%5D」のパラメータが増えると思うのですが、これで正しいのでしょうか?
(実際に絞り込みができるので、正しいかもしれませんが・・・)
カラムが1つでカンマ区切りとか複数指定する方法があれば教えてください。
0536nobodyさん
2015/07/07(火) 18:57:43.11ID:???ビューにあまりプログラムを書きたくないのですが
0537nobodyさん
2015/07/12(日) 13:42:48.57ID:???見返りをもらって損はしなかったww
超本命が大穴
※を取って ∇をcに置き換え
s※nn2∇h.net/s11/465rty.jpg
0539nobodyさん
2015/07/13(月) 03:11:40.57ID:???http://rola-diet.sblo.jp/
0540nobodyさん
2015/07/13(月) 21:23:44.80ID:???0541nobodyさん
2015/07/13(月) 23:12:26.27ID:???0542nobodyさん
2015/07/14(火) 01:13:58.74ID:???はえーな
0543nobodyさん
2015/07/14(火) 03:47:01.98ID:???もともと2chって質疑をやるには向いてないと思う
仮に回答があったとして何を根拠に信用できるかというのもある
cakeの場合 >1 にあるようなユーザフォーラムもあるし
ja.stackoverflow.com みたいなところだってあるからそういうところを活用すべきでは
0544nobodyさん
2015/07/14(火) 21:00:51.06ID:???0545nobodyさん
2015/07/15(水) 10:22:55.73ID:???0546nobodyさん
2015/07/19(日) 12:03:10.80ID:???ここのほうがまだレス付きそう
0547nobodyさん
2015/07/20(月) 05:50:38.35ID:kX6qAGro0548nobodyさん
2015/07/20(月) 14:06:13.04ID:???0549nobodyさん
2015/08/05(水) 20:18:38.91ID:???0550nobodyさん
2015/08/05(水) 23:24:25.23ID:???0551nobodyさん
2015/08/07(金) 11:17:17.91ID:???リリースのない2.5未満のバージョンを使っている人は差分を見て自力でホットフィクスを行ってください。
0552nobodyさん
2015/08/08(土) 00:19:49.90ID:???まァ、12時間前の俺なんだけど。てか、しばらく来ないうちに過疎りすぎだろ。
0555nobodyさん
2015/08/08(土) 03:18:03.61ID:???運用で発覚してるのか、それともコードレビューで見つけてるのか。。、
0556nobodyさん
2015/08/08(土) 07:08:36.37ID:???人が書いたコードを読むのは勉強になるので。
0557nobodyさん
2015/08/08(土) 11:57:41.64ID:???コード見ずにテストする方法では検出が不可能か、極めて難しい問題ってのが有るんだよ。
そして負荷が高くなった時とかまれにしか発生しないが重大な問題になりがち。
だからコードを見ないでテストすることにも一定の意味はあるが、
コードを見て問題点を探す作業、つまり>>556もいってるコードレビューね。
これは 絶対に 省くことは出来ない。
コードレビューを軽視して、仕様ばっかり見ているような所はダメなところだよ。
んで、コードレビューという作業は、他人の書いた難解なコードを解読する 作業じゃない。
っていうかそんなの馬鹿じゃない?
Aさん「難しい問題作りました!」
Bさん「難しい。うーん、うーん。あっ分かった!」
お前ら、謎解き合戦でもして遊んでるのか? それで誰が喜ぶんだ?って。
読めないコードは、読む人の技術不足じゃない。書く人の技術不足だ。
読めなければ書き直しを言い渡して良い。
(もちろん言語の文法が理解できないっていうのは、読む人の技術不足。
文法がわからないからっていうのは、書き直しの理由にはならない)
0558nobodyさん
2015/08/08(土) 12:13:44.49ID:???自分立ち入りで書いたソースならコードレビューするけど、さすがにフレームワークはしないでしょ。
今回みたいに興味があってするとか、運用で問題発覚して解析するというのは別として。
0559nobodyさん
2015/08/08(土) 20:59:26.33ID:???何か使えなくなるコードがあったりしない?
0561nobodyさん
2015/08/08(土) 22:19:04.30ID:???2.6.0 -> 2.6.9 みたいな同じマイナーバージョンならそれほど問題は起きないはず。そうじゃない場合は、公式にあるマイグレート手順の通りにすればそれほど問題は起きないはず。
ただ、prefix でルーティングしてる場合は多少バグってでも上げるべきかな。
0562nobodyさん
2015/08/09(日) 00:02:51.87ID:???その、それほど問題は起きないはずってのが怖いよね。万が一バグったらそのままのがよかったじゃんってなる。
0563nobodyさん
2015/08/09(日) 01:18:36.79ID:???1. prefix ルーティングを使用している
2. 'prefix' => 'admin' なら admins テーブルからログインユーザーを探す、といった prefix キーに依存した認証処理になっている
3. その認証の結果アクセスできるはずの admin_系の画面を第三者に利用されると困る
3つ全部に該当する場合に問題になるので、バグが起きた場合のリスクと、admin_系の画面を不正に利用された場合のリスクを考えて選択するといいかも。
同時に報告したもう一つの脆弱性は正直大したことじゃないので。
もっとも、クリティカルなフィールドの検証に range か comparison を使ってなければの話だけど。
0564nobodyさん
2015/08/09(日) 13:20:09.43ID:???何か問題起きないか不安だ。どんな機能が更新されたのかいまいち情報ないし。
0565nobodyさん
2015/08/09(日) 13:30:21.06ID:???0567nobodyさん
2015/08/10(月) 15:09:16.81ID:???リファラを書き換える事って出来ますか?
AAAというサイトへアクセスを想定しています。
実際には、Yahooで検索して遷移したとします。
しかし、AAAのサーバ側では「Googleからのリファラであった」と見せかけるにはどうした良いですか?
0568nobodyさん
2015/08/10(月) 16:08:21.74ID:???0570nobodyさん
2015/08/10(月) 21:00:17.17ID:???ソケット通信 header で出てくるんじゃないかな?
俺まとめたから、まとめーたーのどこかに載ってるよ。
0571nobodyさん
2015/08/10(月) 22:04:25.69ID:???0572nobodyさん
2015/08/10(月) 22:48:10.74ID:???http://hope.2ch.net/test/read.cgi/touhou/1439135722/
0574nobodyさん
2015/08/13(木) 19:28:44.54ID:???3.0からのオブジェクト返しにちょっと慣れずにいます。
今まではリレーションされたレコードを含めて配列で一気に取ってきておいて、
あとは巨大な配列をブンブン回して処理していたのを、
ある程度Entityに分担させられるようになる(Lazy loading)って認識でいいのかな?
あとは、DBからコードの形で取得したデータを
対応する文字列に置き換えたりっていうような処理を
自分はHelperとかにやらせてたりしたけれど、それもEntityにやらせる方が良かったりする?
0575nobodyさん
2015/08/14(金) 12:00:47.77ID:ghYlBS32CakePHP2.xでApp::usesとかApp::importとかに書くのはクラス名?(拡張子を抜いた)ファイル名?
クラス名=ファイル名が前提?
1ファイルに複数クラス作っちゃダメ?
0576nobodyさん
2015/08/14(金) 13:18:21.94ID:???http://api.cakephp.org/2.5/class-App.html#_uses
まずAPIドキュメントを見るんだ
書いてあるとおりクラス名だ importの方はいろいろ柔軟だけれども
原則としては1クラス1ファイルだが、特定のクラスからだけしか参照しない
内部クラス的なものはそのクラスと同じファイルにまとめてしまうことはあるな
0577nobodyさん
2015/08/14(金) 14:41:49.62ID:???string $name optional null
Name of the Class or a unique name for the file
って書いてあるけどファイルでもいいってこと?
Lib/Hoge.phpに
<?php
class Hoge1 {}
class Hoge2 {}
とか作って
App::import('Lib', 'Hoge');
すれば Hoge1 も Hoge2 も使える?
0578nobodyさん
2015/08/14(金) 15:24:22.91ID:???http://book.cakephp.org/2.0/ja/core-utility-libraries/app.html
2つ目はできるかできないかならできるが、インスタンス化はもちろん自前でやらなければならない
単にimport書くのが面倒だという理由ならやめた方がいい
0579nobodyさん
2015/08/15(土) 14:02:48.31ID:???thx
こういうのって普通の使い方は書いてあるけど
「じゃあ、こういう使い方はできるの?」ってのには触れてないんだよね。
言語の基礎的なことなら自分で試せばいいんだけど、フレームワークが間に入ってると
そもそもできないのか、自分の使い方が悪いのかが切り分けにくいし。
独自例外クラスとかほとんど空なのに個別にファイルつくるのは面倒だから
1ファイルにまとめたかった。
Javaとかなら1ファイル1クラス(非ネストクラス)って決まってるから諦めつくんだけど。
0580nobodyさん
2015/08/15(土) 16:08:08.61ID:???登録済みのpathにあるファイルなら、クラス名=ファイル名ならクラス名だけで解決できる
path登録してないなら明示的にpathを特定してimportすることになる
e.g. App::import('File', 'MyClass', array('file' => '/path/to/MyFile.php'));
App::uses()使ったほうが遅延読み込みしてくれるし、IDEの補完やメンテナンスのことも
考えれば(書いた本人が直すとは限らない)規約に従って作っておいたほうが、最終的にはスムーズ
0581nobodyさん
2015/08/20(木) 12:01:52.92ID:???2でちょっと作りかけたコードがあるが、今ならまだ移行できる
0582『佳子様』の『秘密』を『暴露』
2015/08/20(木) 15:37:21.30ID:???.
.
Σ(Д・;)"プチエンジェル事件"!(小学生売春事件)
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
プチエンジェル事件に隠された日本の闇を暴露する!
■実は、『女性皇族』の『男遊び』と、
女性皇族がおこなったハニートラップだった!!
■その『男遊び』と『トラップ』を誤魔化す為の、
『プチエンジェル事件』が真相だったのだ!!
■闇に包まれた真相を、私が『暴露』する!!
※知る覚悟はできていますか?
下記を『Google』か『Yahoo』で検索して下さい。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
検索⇒『佳子様 真子さま kare氏』
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
※上記で検索しますと、1ページ目の5番目以内に、
【懇約〕秋篠宮家の佳子様と・・・・・・・
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑が表示されます。
※世の中、知らない方が良い事もあるんです・・・。
▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
.
.
.
0583nobodyさん
2015/08/20(木) 17:42:51.65ID:???日本では流行らない気がする
0584nobodyさん
2015/08/20(木) 21:43:48.53ID:???0585nobodyさん
2015/08/21(金) 04:29:01.85ID:???0586nobodyさん
2015/08/21(金) 10:20:45.46ID:???あれホントうざかった
3を始める人はまたその状況が続くんだな
0587nobodyさん
2015/08/21(金) 20:18:15.77ID:???今まではConfig\hoge.phpに独自グローバル定数をまとめて定義し、
bootstrap.phpでconfig(’hoge’);
と書いて読み込ませていました。
が、3.0系ではそもそもconfig関数が無くなっています。
自前でincludeすれば良いといえばそれまでですが、そもそもとして
3.0系ではグローバル関数を使用すること自体がよろしくないのでしょうか?
0588nobodyさん
2015/08/22(土) 03:29:22.56ID:???■名前衝突のリスクが高い
PHP本体のバージョンアップや、サードパーティのライブラリとの共存で問題が生じる可能性がある。
■オートロードできない
使われないかもしれない関数/定数であっても予め定義しておかなければならず、パフォーマンスが低下する。
という欠点があるので削減していく方向なのだろう。
と思っていたけれど、stackTrace() のように3系になってから新たに導入された前例があるので何とも言えない。
ちなみに導入された理由は Cake\Error\Debugger を毎回書くのに疲れたから。
0590nobodyさん
2015/08/23(日) 16:19:04.63ID:???$this->Paginator->settings = [
'limit' => 10,
'order' => [ 'created' => 'asc' ]
];
みたいに指定すると、ビューのページネーションのリンクに
sort:Model.created/direction:asc
みたいなのが付くんですが、これを付けないようにする方法ありませんか?
orderは 'created' => 'asc'で固定にしたいです。
0591nobodyさん
2015/08/23(日) 20:13:46.96ID:???モデル名を省略せずに 'Model.created' => 'asc' の形式で指定すれば、当該ソート条件の時は付かないはず。
もしくは $this->Paginator->paginate() を呼んだ後に自力で消す。
unset($this->request->params['paging']['Model']['options']['order']);
'Model' は正しい名前に読みかえてね。
0592nobodyさん
2015/08/26(水) 12:42:42.47ID:Dkufhip4あざす!結果ですが、以下を参考にページ切り替えをAJAX化したら、何故だか付かなくなりました。
http://book.cakephp.org/2.0/en/core-libraries/helpers/js.html#ajax-pagination
また上手くいかなくなったら、上記の方法を試してみようと思います。
もう一つページネーションの質問で、最初のページにいる時もfirstとprevにaタグが付いて同じページへのリンクになってしまいます。
echo $this->Paginator->prev(
' <<前 ',
array('tag' => 'li'),
null,
array('class' => 'disabled', 'tag' => 'li')
);
が
<li class="disabled"><a href="同じページのURL"><<前</a></li>
こうなる。
実用上支障はないのですが、リンクにならないようにする方法があったら教えてください。
0593nobodyさん
2015/08/26(水) 13:19:15.80ID:kqv3nla0appを用途によって分けているのですが、例えば
/app-admin/View/Photos/form.ctp
のビューを
/app-user/View/Photos/form.ctp
として使うことって出来ますかね?
単純に後者のビュー内で、前者のファイルパスをincludeすれば出来ると思いますが、
Cakeの機能で可能なら教えて下さい。
0595nobodyさん
2015/08/26(水) 14:21:29.17ID:???現在のページを Cake が正しく認識できていないんだと思う。
予期せずソートパラメータが消えたのもそのためかも?
差支えなければ、そのビュースクリプトで
pr($this->Paginator->params());
を実行した時の結果を張ってくれないかな?
0596593
2015/08/26(水) 15:19:26.19ID:???コントローラーでrenderする時のパスって、appを分けてる場合はどうなるのですか?
普通に絶対パスを書くのですか?
0597nobodyさん
2015/08/26(水) 16:05:32.49ID:???今更だけど、最初の質問については、そうではないと思う。
Lazy loading は 2系でも Model のアクティブレコード機能か Helper を使えば簡単に実装できるので。
むしろ、3系の大きなアドバンテージは Eager loading の方。
$this->Articles->find('all', ['contain' => ['Comments.Authors']])
を実行した場合のクエリが発行回数が劇的に改善されているはず。
二番目の質問については、Entity に書くのが無難だと思う。
まず、記述が短い。そして、この問題の解決ため、将来的に Presenter が導入されるかもしれない。
https://github.com/cakephp/cakephp/issues/6698
仮に導入された場合 Entity で実装しておけば、ビュースクリプトの記述に互換性がある。
■Entity
$article->isPublished() //Article::isPublished()
■Helper
$this->Article->isPublished($article) //ArticleHelper::isPublished()
■Presenter
$article->isPublished() // ArticlePresenter::isPublished()
0600nobodyさん
2015/08/26(水) 20:15:04.12ID:???横だけど、appわけないって、管理画面と公開画面作る時どうしてるの?
prefixで対応してるの?それだと困らない?
0602nobodyさん
2015/08/26(水) 21:01:09.92ID:???管理画面は、ほぼphpmyadminから。
その他はcore.php にて
IPアドレスでdebug オンオフ。
debug の値に応じて編集画面を表示したりしてる。
むしろそこまでがっつり管理画面いる?
二度手間じゃない?機能増えるたびに管理画面も増えるんだし。
0603nobodyさん
2015/08/26(水) 22:51:10.16ID:???ありがとうございます。
シンプルなページネーションするコントローラとビューを作って、$this->Paginator->params()を表示してみました。
やっぱり、現在ページへもリンクされてしまいます。
array(10) {
'page' => int(1)
'current' => int(10)
'count' => int(69)
'prevPage' => bool(false)
'nextPage' => bool(true)
'pageCount' => int(7)
'order' => NULL
'limit' => int(10)
'options' => array(1) {
'conditions' => array(0) { }
}
'paramType' => string(5) "named"
}
コントローラーでは
$this->Paginator->settings = [
'limit' => 10
];
$this->set( 'users', $this->Paginator->paginate( 'User' ) );
のようにやってるだけです。
Cakeはリンクしてしまう仕様なんですかね?
2.7.2です。
0604nobodyさん
2015/08/26(水) 23:03:27.56ID:???・IPアドレス制限したい場合は?
・管理と公開でdebugレベルを変えたい時は?
・制作時にプロジェクトが分かれてる場合は?
・URLを変えたい時は?
※通常、管理用のURLは推測されにくいURLにする。サブドメインとか
・ファイルがごちゃごちゃしてミスに繋がりにくくない?
※有名どころのPHPのOSSなんかは分けてるよ
などなど考えられるけど、一度も遭遇しなかった?
>>602
管理者が一人の場合はphpMyAdminでもいいけど、アソシエーションの時は面倒だよ?
Aのテーブル削除したら、BのテーブルにあるA_idのレコード削除とか。
管理画面ってその名の通り、「管理しやすい画面」だと思うから、
手間が増えても良いと思うんだけど、
むしろそこを面倒臭がるからミスや流出に繋がるわけで。
0605nobodyさん
2015/08/26(水) 23:49:39.48ID:???>・IPアドレス制限したい場合は?
httpd.conf の Location
>・管理と公開でdebugレベルを変えたい時は?
httpd.conf の環境変数。
ローカルでは管理でも公開でも debug モードにしたいのでは?
>・制作時にプロジェクトが分かれてる場合は?
状況が分からない
>・URLを変えたい時は?
そのためにルーティングがあるのでは?
ドメインを変えたい場合はバーチャルホスト
>・ファイルがごちゃごちゃしてミスに繋がりにくくない?
違うファイルを編集したことはない
挙げてもらった例は個人的にはメリットだとは思えないけど。
むしろ、分けた場合の方がデメリットが大きいのでは?
正直 cake test app を正常に実行できるのか疑問。
0606nobodyさん
2015/08/27(木) 00:09:42.79ID:???>httpd.conf の Location
>httpd.conf の環境変数。
つーことは、共有鯖では無理だね。基本的に。
>状況が分からない
今まで1人で制作してきたの?
デザイナーとプログラマーが分かれている場合や
管理画面(公開画面)だけ操作させたい、ってのもあると思うが。
>そのためにルーティングがあるのでは?
http://example.com/admin/をhttp://admin.example.com/
にルーティングで変えられるの?そうであれば自分の無知を認める。
>違うファイルを編集したことはない
まぁ、ファイル名で判断するから誤認は少ないか。
でも、Controllerの場合、prefix用のコードが増えるから
単純に1ファイルのコードが増えて(長くなって)視認性が悪くなると思うんだけど。
>むしろ、分けた場合の方がデメリットが大きいのでは?
じゃ、君が考えるデメリット教えてよ。
ちなみに共通化するファイルはbootstrap.phpで設定出来るようになってるから、
同じファイルが増えるってことはないと思うよ。
0607nobodyさん
2015/08/27(木) 00:29:15.45ID:???リンクしない仕様なんだよ。
パラメータには問題ないね。prevPage が true になっていると推測していたんだけど。
俺には分からないや。わざわざ張ってもらったのにごめんね。
0608nobodyさん
2015/08/27(木) 00:35:46.77ID:???いやいや、反応くれてありがとうでした。
なんかおかしいのかな?CakeのPaginatorHelperのソースちょっと見てみますわ。
0609nobodyさん
2015/08/27(木) 01:39:43.38ID:???>つーことは、共有鯖では無理だね。基本的に。
応用として .htaccess + mod_rewrite で可能では?
>今まで1人で制作してきたの?
>デザイナーとプログラマーが分かれている場合や
>管理画面(公開画面)だけ操作させたい、ってのもあると思うが。
まさか。そもそもチーム開発と prefix がどう関係するのかと。
それとも一般画面プロジェクトと管理画面プロジェクトを別の会社で受注でもするのかい?
>http://example.com/admin/をhttp://admin.example.com/
>にルーティングで変えられるの?そうであれば自分の無知を認める。
可能。実際に、今運用しているサイトは無数のサブドメインを使っている。
>単純に1ファイルのコードが増えて(長くなって)視認性が悪くなると思うんだけど。
そもそもコントローラに長い処理は書かない。
>じゃ、君が考えるデメリット教えてよ。
・さっきも書いたけれど、正直 cake test app を正常に実行できるのか疑問。
それぞれの app で実行している場合、コードカバレージが正確にならない。
・一般側に /default/Model/Article.php 、管理側に /admin/Model/Article.php を作成した場合の挙動が不明
優先的に読まれるのか、作成してはいけないのか。
せっかく Cake を使っているのに基本的なふるまいが独自フレームワーク化している。
・分けてしまったために困っている人が実際にスレにいる
>>596 に答えてやったらどう?
俺は分けたことないからワークアラウンドが分からん。
0610nobodyさん
2015/08/27(木) 03:13:04.96ID:???>応用として .htaccess + mod_rewrite で可能では?
無理だと思うよ。mod_rewritreでどうやってアクセス制限?
>まさか。そもそもチーム開発と prefix がどう関係するのかと。
チーム開発なんだから役割分担、作業分担してるでしょ?
デザイナーには出来るだけプログラムコードを触らせないし、
ディレクターやリーダー以外は重要ファイルにアクセス出来ないようにする。
でも、prefix式だと1つのファイルに記述するから無理だよね?
>可能。実際に、今運用しているサイトは無数のサブドメインを使っている。
じゃ、書き方教えてよ。いくつでも使ってるんでしょ?
>・さっきも書いたけれど、正直 cake test app を正常に実行できるのか疑問。
appを指定できるのに出来ない意味が分からん。
>・一般側に /default/Model/Article.php 、
>管理側に /admin/Model/Article.php を作成した場合の挙動が不明
>優先的に読まれるのか、作成してはいけないのか。
疑問形ってことは試してないのか。それもbootstrap.phpで順序決められるよ。
それに、2つ用意することでdefaultとadminのアソシエーションやバリデーションを
変更できるから、画面用途に合った処理が行えると思うんだけど。
もちろん、1つだけでもいいわけだし。
>・分けてしまったために困っている人が実際にスレにいる
うん?この人困ったから質問してるのか?「分けたいから方法を知りたい」に見えるが。
他人が困ったじゃなくて、実際に自分がやって困ったなら批判してよ。
俺は実際にprefix使ってて>>604みたいな疑問が出たし、
他にもAuthを複数使いたい場合、(管理画面のログイン、公開画面のログインなど)とか
管理/公開を条件分岐するために、その都度、IF文が発生するとか、
利用してみて感じる問題点を話しているのに。
0611nobodyさん
2015/08/27(木) 09:38:54.76ID:wzS4bZ57DBから取得したModelデータの配列($students)を
foreach ($students as $student) {
<input type="checkbox" value="$student->id"・・・・/>$student->name //<= 実際はFormHelperを使う。
}
みたいにチェックボックスのリストとして表示して、チェックされたstudentのidを
Controllerで受け取りたい。
で、再びViewに同じチェックボックスのリストを表示して、今度は
前画面でチェックされたstudentはチェックされた状態で表示したい。
ただし、表示するstudentsをDBから再取得することはできない。
0612nobodyさん
2015/08/27(木) 11:31:18.92ID:???>無理だと思うよ。mod_rewritreでどうやってアクセス制限?
RewriteCond で HTTP_HOST と REMOTE_ADDR を見て 403 に飛ばせば?
>ディレクターやリーダー以外は重要ファイルにアクセス出来ないようにする。
そうするのが妥当で一般的だとは思わない。
管理側のプログラムを閲覧できない場合、一般側のメンバーは自分が行った変更が管理側に与える影響を知ることができない。
>じゃ、書き方教えてよ。いくつでも使ってるんでしょ?
ホスト名で読み込む routes.php を切り替えるだけでは?
君の構成では一般/管理でそれぞれ routes.php を持っているのだろうから、その時のワークアラウンドは君の方が詳しいのでは?
俺はカスタムルーティングを使っているが。
>appを指定できるのに出来ない意味が分からん。
個別にコードカバレッジを出力していたのでは、空白だらけにならないかい?
>それに、2つ用意することでdefaultとadminのアソシエーションやバリデーションを
>変更できるから、画面用途に合った処理が行えると思うんだけど。
同一のテーブルを参照するモデルが複数存在する構成を素晴らしいとは思わない。
そもそも、アソシエーションとバリデーションは動的に変更可能。
>うん?この人困ったから質問してるのか?「分けたいから方法を知りたい」に見えるが。
>>593 で「分けているのですが」と言っているよ。
>他人が困ったじゃなくて、実際に自分がやって困ったなら批判してよ。
公式ドキュメントに管理画面を作る時にそうしろと書いてあるなら試すだけの価値はある。
>他にもAuthを複数使いたい場合、(管理画面のログイン、公開画面のログインなど)とか
AuthComponent::$sessionKey を切り替えればいい。
>管理/公開を条件分岐するために、その都度、IF文が発生するとか、
通常は index() が index.ctp を、admin_index() が admin_index.ctp をレンダリングするのでは?
0613nobodyさん
2015/08/27(木) 11:42:59.94ID:???'multiple' => 'checkbox' かな?
belongsToMany('Students') なら
$this->Form->input('students._ids', ['multiple'=>'checkbox', 'options' => $students]);
0614nobodyさん
2015/08/27(木) 14:41:18.57ID:???>管理側のプログラムを閲覧できない場合、
>一般側のメンバーは自分が行った変更が管理側に与える影響を知ることができない。
知る必要なくね?管理者が分かれば。
君の意見が正しいとするなら、既存のグループ/権限設定もおかしいって事になるよ?
そもそも俺の意見は「余計な操作をさせない・ミスに繋がらないようにする」
だから、根本的な価値観が君とは違うね。
>個別にコードカバレッジを出力していたのでは、空白だらけにならないかい?
いくら説明しても納得しないだろうから、以下のURLを提示する。よく読みましょう。
http://book.cakephp.org/2.0/ja/development/testing.html
>同一のテーブルを参照するモデルが複数存在する構成を素晴らしいとは思わない。
素晴らしい・素晴らしくないの問題じゃない。そんなの個人の感情だろ。
それ言うなら「動的に変更させるための処理を書く」という事が、
俺の価値観では素晴らしくないわ。IFや条件分岐だらけになってな。
> >>593 で「分けているのですが」と言っているよ。
うん。だから「そうしている〜から教えて」になるのでは?
そもそも分けなければ同じapp上でrenderにて別ファイルを読み込めるんだから、
質問する意味が無い。分けること前提での質問だろ。
>公式ドキュメントに管理画面を作る時にそうしろと書いてあるなら試すだけの価値はある。
以下のURL見ても納得しないんだろうな〜
http://book.cakephp.org/2.0/ja/installation/advanced-installation.html
>通常は index() が index.ctp を、admin_index() が admin_index.ctp をレンダリングするのでは?
誰もアクションを言ってるんじゃないよ。
「AuthComponent::$sessionKey を切り替えればいい。」って言ってるけど、
これを切り替えるにはどうやるの?IF使ってprefixの有無を調べるんじゃないの?
0615nobodyさん
2015/08/27(木) 21:17:15.92ID:???なんでこんな必死なのこの人
0617nobodyさん
2015/08/27(木) 22:06:28.85ID:???必死も何も「どうして使わないの?」って質問に、批判しか返してこないじゃん。
結局そういう精神論で決めつけて「勝手にしろ!」で終わらせる。議論になりゃしない。
0618nobodyさん
2015/08/27(木) 22:56:05.23ID:???どっちがいいかなんてわからんがお二人とも正しい。
ここは仲直りしようぜ。
俺の顔に免じて。
0619nobodyさん
2015/08/28(金) 09:09:31.70ID:???そうだとしたら勘違いしているかもしれんが >>615 は俺(>>612とか)ではないよ。
それは >>615 と俺しかわからないことだけれど。俺も勘違いしているのかもしれんが。
ただ、議論やめようと思ってた部分は間違っていないから、一応、謝罪しとく。
正直、そろそろ他の閲覧者に迷惑かと思ったのもあるし、ここは >>618 の仲裁で手打ちということでどうだい?
それと俺は批判したつもりはないんだけれど、そう受け取れる箇所があったならごめんね。
もっとも >>616 のように参考になるという意見もあるから、続ける分にはやぶさかではないよ。
でも、議論を続ける気なら、リンクだけ張ってその文書中のどこが自分の意見なのかを示さないというのはフェアじゃない。
俺にはそのどこに反論すればいいのか分からないからね。そして君にはそれが分かる。どう考えてもフェアじゃないでしょう?
0620nobodyさん
2015/08/28(金) 10:08:30.38ID:???フェアじゃないのはお互い様じゃないか?
618のレスもそうだが、自分の有利なレスにしか反応しない。
一方的に手打ちにしようと言っておきながら、後者では批判する。
するとまた言い合いになる。そんなの目に見えてるわな。
0621620
2015/08/28(金) 10:11:14.62ID:???とにかく「俺はこうだけど、お前はこうだからもう止めよう」
って一方的な遮断をするのは、相手の反論を一切受け付けず
自分の思うように相手を従わせたいという思惑が見えて卑怯だよ。
0622nobodyさん
2015/08/29(土) 01:22:41.97ID:???それなら、もう少しだけ続けてみようか。
俺としては >>617 までは一応、全部に反論してきたつもりだったので、
君がアンフェアに感じた部分がどこだったのか分かっていない。
議論し足りなかった議題を一つ挙げてほしい。
選択は任せるので、それを最後の議論にするというのでどうだい?
0624nobodyさん
2015/08/29(土) 02:07:18.84ID:???0625nobodyさん
2015/08/29(土) 02:13:10.69ID:???下記の3つのテーブルがあります。
○small
id,name,middle_id
○middle
id,name,large_id
○large
id,name
それぞれの関係は下記の通りです。
small→(belongTo)→middle→(belongTo)→large
コントローラからfind('list')で
small.idとconcat(large.name,middle.name,small.name)
の値を取得したいのですが、うまくできません。
どなたか、おしえていただけませんか!
0626nobodyさん
2015/08/29(土) 11:11:58.93ID:???結論から言うと無理だよ。concatで孫モデルまでまとめることは出来ない。
どうしてもそうしたいならjoinを使いましょう。
0628nobodyさん
2015/09/04(金) 19:49:50.36ID:???デュエル・マスターズ的な非電源TCGの 《 オンライン化ツクール系ソフト 》 制作の企画。
例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、
当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを
ブロック構造の組み合わせで後付け挿入できるように予めシステム化してあるソフト(エディター)。
既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。
バトスピ、ヴァンガ、バディ、フォースofウィル、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、ガンダム・ウォー、ディメンション・ゼロ、ライブオン、カードヒーローなど
のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。
マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。
WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。
設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみて。
個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。
↓
エディター群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。
↓
遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。
なるべく前述3つで可能な再現は全て実装させる方向を目指す。 まぁ努力する・・・
バトスピ、ヴァンガ、バディ、デュエマなど発売済みゲームソフトが存在してるケースはベンダーに研究させる。
↓
各社TCGを再現するテストプレイ ⇒ 更に改良や修正。
↓
機能制限した下位版を5万円以上で発売 + デュエリーグ用に改造した上位版でサーバー稼動=営業開始。
↑
下位版の改造および商用利用には、別途で当社との契約が必要。
さ〜て、製作ベンダー見つけよっと!ww(クス
http://wc2014.2ch.net/test/read.cgi/entrance2/1441218863/l50
0629nobodyさん
2015/09/04(金) 21:32:24.15ID:???0630nobodyさん
2015/09/05(土) 02:07:55.12ID:???modelでDBのviewを参照できるか、という意味?
0631nobodyさん
2015/09/05(土) 11:11:05.76ID:???をせずにCake側でビューみたいに結合した結果を
見たいってことでは?
0632nobodyさん
2015/09/05(土) 11:19:04.03ID:???おすすめのはありませんか?
サムネイル作成など、機能は多い程ありがたいです
0633nobodyさん
2015/09/05(土) 13:29:50.16ID:NBrY/rBThttp://know-how-tree.com/archives/2327
0634nobodyさん
2015/09/05(土) 18:25:19.06ID:???それはModel::find()で普通に取得するのと何の違いが?
DB側でview定義しない以上、毎回join条件を付与しなければならないのに
0635nobodyさん
2015/09/05(土) 20:17:32.51ID:???みんな使ってるの?
前使ったことあるけど微妙じゃないあれ。
いまいち使いづらい感じ。
0636nobodyさん
2015/09/06(日) 12:32:19.29ID:???ストアドファンクションとかで使う共通部品としてなら便利という認識
0637nobodyさん
2015/09/07(月) 13:32:06.16ID:???いくつかあるけど、俺は自作をおすすめする。
既存のは小回りが聞きづらいし、自作のプラグイン(とかコンポーネント)でも
そんなに手間はかからないよ。PHPのソースがネット上に多くあるしね。
0638nobodyさん
2015/09/07(月) 13:44:12.92ID:???あざす、俺もすぐに見つかるものを少し試して、思いの外出来が良くないので自作に傾いてました。
やはりタダでは製品レベルのものはなかなかないですね
0640nobodyさん
2015/09/10(木) 21:22:48.45ID:???基本的な使い方
App::uses() を使ってクラスをロードします。
App::uses('Folder', 'Utility');
App::uses('File', 'Utility');
とありますが、これは使う直前に毎回書くのでしょうか?
それとも、ファイルの冒頭などに1回書くだけ?
0641nobodyさん
2015/09/10(木) 22:03:35.21ID:???0642nobodyさん
2015/09/11(金) 23:50:23.87ID:???ありがとうございます。
別の質問もどなたか…。
Model::saveの返値は何でしょうか?成功失敗のboolでしょうか?
http://book.cakephp.org/2.0/ja/models/saving-your-data.html
何故ドキュメントにそういう基本的な事が載っていないのでしょうか?自分でソース見て調べるのがCake流?
0643nobodyさん
2015/09/12(土) 00:17:07.84ID:???http://api.cakephp.org/2.7/class-Model.html#_save
気になるところはAPIドキュメントも見ながらがいいよ
0644nobodyさん
2015/09/12(土) 02:15:06.39ID:???あざす、しかし雑な説明ですよね…
>>643さんではなく公式への不満ですが
結局自分で実際に試してみるしかないな
0645nobodyさん
2015/09/12(土) 11:08:33.05ID:???日本語版に書いてないことが英語版には書いてあることがある
最終的にはソース見たほうが早いことも多々ある
0646nobodyさん
2015/09/12(土) 11:58:17.63ID:???Cakeのずっと改善されない点の一つ
0647nobodyさん
2015/09/12(土) 12:38:29.14ID:???0649nobodyさん
2015/09/18(金) 01:50:51.05ID:???0650nobodyさん
2015/09/20(日) 15:15:49.81ID:???理解するのもだめだよな。
理解するのに読まなければならない量が多い。
0651nobodyさん
2015/09/21(月) 20:30:12.03ID:zJdcfcjchttp://goo.gl/YIsqjP
0652nobodyさん
2015/09/28(月) 17:49:39.11ID:???インジェクション的にダメ、ゼッタイ!だと思ってたのですが
queryで実行したSQLはfetchAllに渡されるとどこかで見た記憶がありまして、
もしそうであればプレースホルダ使わなくても大丈夫なのかと思ってるのですが、これは間違いでしょうか?
0653nobodyさん
2015/09/28(月) 20:24:02.91ID:???勉強しましょう
0654nobodyさん
2015/09/29(火) 13:46:47.95ID:???fetchAllはプレースホルダ使わないといけない。
0655nobodyさん
2015/09/30(水) 01:04:16.72ID:???saveしたidを取得する方法ってないですよね?
$this->Model->idだと1つのレコードしか取得できないので、
何か複数追加時のidが取れたら良いなっと思うのですが。
0656nobodyさん
2015/09/30(水) 02:03:39.95ID:???0657nobodyさん
2015/10/01(木) 00:10:43.92ID:476zm7XNMySQLのunionのイメージです。
社員(User)と取引先(Client)のメッセージをそれぞれ
UserMessage、ClientMessageに保存して使用しています。
メッセージは「社員から取引先」「取引先から社員」
に伝達するためのメールBOXのような感じです。
一覧表示時に1つにして表示したいと思い、質問しました。
バージョンは2.6.10を使用しています。ご存じの方はアドバイスください。
0658nobodyさん
2015/10/02(金) 11:11:22.98ID:H+85UFUa例えば、ageというバーチャルフィールドを作って、Userというモデルで
$condtions = array('User.age' => 20);
としてみたのですが、findでDatabase Errorが出ます。
ググっても情報が見つからないので出来ないのかもしれませんが、、、
もし出来る方法があれば教えて下さい
0659nobodyさん
2015/10/05(月) 18:46:52.19ID:jWEQQ/UZ下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点
0660nobodyさん
2015/10/06(火) 06:00:23.27ID:???0661nobodyさん
2015/11/01(日) 00:00:32.85ID:???今までAccessで作ってたようなDBをWebで実現したいなと思って
情報収集してます。素のphpはぼちぼち勉強してるんですがフレームワークも触ってみたくて半分実験、半分勉強のよな感じです。
0662nobodyさん
2015/11/01(日) 15:32:58.65ID:???情報があれば3からやりたいんだけどな〜
0663nobodyさん
2015/11/01(日) 16:39:21.98ID:???おれはPHPもMVCフレームワークの経験あるから3にしたけど
ドキュメントもまだ日本語化されてないところ多いから戸惑うことも多かったよ
パフォーマンスの高さやイマドキっぽい作りなのは3だけど
情報多いのは2なんだよね〜
0664nobodyさん
2015/11/02(月) 09:32:05.68ID:???英語勉強してないの?
頭悪いの?
0665nobodyさん
2015/11/02(月) 10:17:32.62ID:???>>663のことなら日本語ドキュメントしか読めないとは言ってないし
なんでそういう捉え方になるのか理解に苦しむ
英語もある程度は読めるけど母国語のほうが読みやすいのは間違いないでしょ?
そこは異論ないよね?
0666nobodyさん
2015/11/02(月) 10:46:36.95ID:???相手をしても仕方が無い
0667nobodyさん
2015/11/02(月) 11:19:26.92ID:???0668nobodyさん
2015/11/02(月) 20:57:19.04ID:aSd7O/p/メソッドでエラーが発生した場合に何番目で呼び出されたときに発生したエラーなのか、
エラーログを見てすぐにわかるようにしたいのですが、
みなさんどのような工夫をされていますか
0669nobodyさん
2015/11/02(月) 21:02:28.90ID:???単に変数でカウントすりゃいいんじゃないかな。俺ならファイルに詳細な動作ログ書き出す
0670nobodyさん
2015/11/02(月) 22:49:44.79ID:???動作するたびにログを取る。
ログしない=エラー
0671nobodyさん
2015/11/02(月) 23:39:16.74ID:???function action () {
$this->A();
$this->B();
}
function A() {
$this->B();
}
function B() {
}
}
B()でエラーが出た時、
A()で呼ばれたB()でエラーになったのか
その後に呼ばれたB()でエラーになったのか
やはり前後のログとかから判断するのが普通ですかね
むずかしい
0672nobodyさん
2015/11/03(火) 00:40:59.39ID:???0673nobodyさん
2015/11/05(木) 20:51:49.24ID:x5tD0Tad下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in Tokyo
・転職会議で2.5点
・転職会議の「その他>2ch情報」の欄で過去の労基2chスレが表示される
0674nobodyさん
2015/11/06(金) 14:28:00.21ID:???詳細は後日公開するとのことなので私も詳しくは書きませんが、
特に業務で使っている方は、公開までの猶予期間内になるべくアップグレードしておいてくださいね。
0675nobodyさん
2015/11/06(金) 16:04:30.06ID:???まったくよーCakeはしょうがねえなどうしてくれるんだよ
0678nobodyさん
2015/11/06(金) 22:24:51.77ID:???あと、1系に関しては今回のリリースに含まれていませんが、そもそも1系は数日前に偶然サポートが終了しています。
仮に脆弱性が認められた場合にも、今後修正リリースが出ることはありませんのでご注意ください。
0679nobodyさん
2015/11/07(土) 15:51:12.76ID:???0680nobodyさん
2015/11/25(水) 17:14:55.71ID:???HTMLヘルパーでhttpsで始まるリンクを生成するにはどうしたら良いのでしょうか?
別のヘルパーでも構いませんが、Cakeの標準的な方法があれば教えてください
0681nobodyさん
2015/11/29(日) 04:38:05.23ID:???前者はビュー以外からも使える点で汎用性が高く、後者は Cake に不慣れでも実装が簡単。
0682sage
2015/11/30(月) 13:20:14.64ID:r6oWoP7k俺なら別のアプローチを使う。
SecurityコンポーネントのforceSSLを使うことで、ControllerまたはActionレベルでSSLを強制できる。
>>681の方法だと全てのページのリンクをオーバーライドしたメソッドに書き換える必要がある。
いっぽう俺の方法ならSSL強制されたURLに非SSLでアクセスするとURLをhttpsに切り替えてリダイレクトしてくれる。
CakePHP+Security+forceSSLでググれば実装方法はいっぱい出てくる。
0684nobodyさん
2015/11/30(月) 16:37:03.55ID:???その方法は既に試したが、Cakeがredirectを発行する際にPOSTされた値が引き継がれず、使えなかった
0685nobodyさん
2015/12/01(火) 08:40:23.37ID:???0687nobodyさん
2015/12/02(水) 20:24:30.36ID:???httpでログインページに遷移→Securityコンポーネントがhttpsにリダイレクト→httpsのログインページに到達→そこからログイン情報をPOST
って流れにすればいいんだよね?
でも最初からhttpsにリンク張りたいんだよなぁ、ブラウザから見えるリンク先がhttpだと不安を与えるかもしれないし
0688nobodyさん
2015/12/03(木) 15:53:02.33ID:???思い出しただけでもあの体は反則だよ
ついでに見返りもあって損はなかった
022it.★★t/d11/861xmas.jpg
★★をneに変更する
0689nobodyさん
2015/12/03(木) 17:57:04.77ID:mKDK02zz普通は
アップロード→バリデーション→登録処理(ファイルはサーバの指定位置に移動)
だと思うのですが、バリデーションの方法で悩んでいます。
画像(jpg/fig/png)の判定は割りと問題ないと思いますが、
画像のファイルサイズの場合、どうしようかと悩みます。
というのも、ファイルサイズを気にせずにアップロードする人が多いです。
デジカメやスマホで写真を撮るとそれなりのサイズになりますので。
ですので、ファイルサイズ制限に関するバリデーションは入れない方が良いのでは?
とも思うのですが、そうするとサーバ攻撃の元になるので良くないです。
何か良い方法・考え方はないでしょうか?
もちろん、Cakeを使う場合でお願いします。
0690nobodyさん
2015/12/03(木) 18:56:52.86ID:???0691nobodyさん
2015/12/05(土) 13:54:12.48ID:67hesvTc下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in 東京
・転職会議で2.5点
・転職会議の「その他>2ch情報」の欄で過去の 労基 2chスレが表示される
0692nobodyさん
2015/12/08(火) 01:25:06.39ID:???0693nobodyさん
2015/12/08(火) 16:38:11.99ID:J+sKcpKq/.:::::::::::::::::::::::\
. /.::::::::::/ヽ::::::::::::ヽ
. /::::::::::/ 、_ __,\:::::::::::.
ー=≦:::::::ri:::/ bb) Y:::::::ハ
ー=彡::ハ|/ ゝ i)::::八_ おまえらまだWeb業界で消耗してんの?
⌒ンノ∧ `ニ 从::::≧=‐
. イ /_  ̄`
. , -‐ ´ ! ー ´ ! ` ー-、
0694nobodyさん
2015/12/11(金) 09:10:32.49ID:???/.:::::::::::::::::::::::\
. /.::::::::::/ヽ::::::::::::ヽ
. /::::::::::/ 、_ __,\:::::::::::.
ー=≦:::::::ri:::/ bb) Y:::::::ハ
ー=彡::ハ|/ ゝ i)::::八_ 俺なら別のアプローチを使う
⌒ンノ∧ `ニ 从::::≧=‐
. イ /_  ̄`
. , -‐ ´ ! ー ´ ! ` ー-、
0695nobodyさん
2015/12/11(金) 09:41:30.75ID:???というかCakePHPがもう終わりか。Stack Overflowとかで質問投げてみてももうまともな回答付ける人は見ていない印象。というかビュー自体が伸びない。
0696nobodyさん
2015/12/11(金) 13:40:38.06ID:???Rubyに勢いがあるような気はするけど、PHP自体の需要は落ちてない。
言語人気ランキングでは相変わらずの上位だし。
みんなどうしてるんだろうな?
WordPress使って、ちょっとPHPでカスタマイズするって程度なのかなぁ。
0697nobodyさん
2015/12/11(金) 14:33:33.47ID:???そこそこ使えるフレームワークを利用してPHPで作る、という仕事が死滅してるとも思えない。需要はあるはずだよな。
そう簡単に他のものに乗り換えるのも効率悪いし。
うちはCakeで培った資産があるから未だにCakeだわ。不満はあるが慣れてしまったから大抵のものはさっと作れるし。
0698nobodyさん
2015/12/11(金) 16:26:27.61ID:???案件毎に毎回使うフレームワークや言語がコロコロ変わるから全然定着しないわ
0699nobodyさん
2015/12/11(金) 21:07:28.13ID:???0700nobodyさん
2015/12/11(金) 22:24:54.41ID:???JSファイルやPHPに直書きってわけでもあるまい。
なにかしらのデータを保存する管理画面みたいなのがあって、
そこでデータの出し入れをしてるはず。
そして、そうなればある程度のUIが必要だから、簡単にとは行かないと思う。
0701nobodyさん
2015/12/11(金) 22:36:59.36ID:???ユーザークライアントをSPAにすると管理画面もサーバサイドレンダリングにこだわる必要ないしね
0702nobodyさん
2015/12/11(金) 22:38:51.47ID:???phpでやるような案件には、cakeほどの機能がいらないって時代になってんじゃない
もっと大規模なやつはnodeとかで
0703nobodyさん
2015/12/12(土) 02:32:33.16ID:???あと、node使うケースとphp使うケースって違うと思うんだが。javaなら分かるけどさ。
0704nobodyさん
2015/12/12(土) 07:47:17.28ID:???0705nobodyさん
2015/12/12(土) 13:25:14.54ID:???いきなりCakeからPHP学んだの?
俺は、最初は自作ライブラリみたいなのを作りつつ学んでたから、
自ずとオレオレみたいな小規模プログラムがあるんだよな
0706nobodyさん
2015/12/12(土) 13:43:07.05ID:???あるけど初期の頃に作ったのはあんまり気が利いてなくて出来が良くないから、使い回す気にならないんだよな
つーか使いづれえし
0707nobodyさん
2015/12/17(木) 09:45:25.06ID:???なるべく簡単にw
0708nobodyさん
2015/12/17(木) 09:57:18.25ID:???ホントこんなこともできないのかとビックリする、時代に全然追従する気がないな
0709nobodyさん
2015/12/17(木) 13:05:33.70ID:???0710nobodyさん
2015/12/17(木) 19:10:30.10ID:???携帯にパスワード飛ばしてPCで認証。
これにだんかい
0711nobodyさん
2015/12/17(木) 23:01:39.55ID:???別に普通のダブルオプトイン処理と変わらない気がするけどなぁ
0712nobodyさん
2015/12/18(金) 01:34:27.94ID:???意思確認か本人確認かで目的は違うけど
0713nobodyさん
2015/12/23(水) 02:19:21.01ID:Kn0zTwz6・沢山の人が、偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト
10人に一人は カ ル ト か 外 国 人
「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !,,,,
0714nobodyさん
2015/12/29(火) 14:40:19.96ID:???nodeはねぇ
フレームワークほぼ無いから
セキュリティ周り自分で全部やらんとダメでORMもない
使うのはそういうのあくまでそういのう関係ないところ
0715nobodyさん
2015/12/29(火) 16:51:37.93ID:???恥ずかしくないの?
http://bookshelfjs.org/
Bookshelf is a JavaScript ORM for Node.js,
0716nobodyさん
2015/12/29(火) 17:59:22.99ID:???0717nobodyさん
2015/12/29(火) 22:28:20.55ID:???0718nobodyさん
2015/12/29(火) 23:10:18.99ID:???0719nobodyさん
2015/12/30(水) 04:27:15.27ID:???少数の優れたものだけが存在しているって感じがする。
0720nobodyさん
2016/01/04(月) 20:21:03.87ID:???少数の優れたものだけが存在するなんて状況はありえない
裏で熾烈な競争があった結果
0721nobodyさん
2016/01/08(金) 16:56:20.23ID:Gm/1Dq7Dというのも、管理画面でいつの間にか設定変更されていることがあり、
それがいつ・どのタイミングでされたのか分からず困る時がありました。
(もちろん、サーバのログまで調べればある程度辿れるでしょうが・・・
なので、afterSaveで読み書きが発生した時に
実行時のcontrollerとactionを保存しようかと思うのですが、
みなさんはどうしているのかなと思い質問しました。
0723nobodyさん
2016/01/09(土) 10:36:50.87ID:???いい感じ?
Cakeは重いってイメージしかないが。
0724nobodyさん
2016/01/09(土) 11:08:40.06ID:???重さよりも機能のショボさが気になる、歴史ある割に便利にならない
0727nobodyさん
2016/01/09(土) 14:06:17.70ID:???更新タイミング知りたいだけなら
DBに更新時間のフィールドないのか?
いちいち保存するより、DBあさったほうが早いんじゃない?
5W1Hみたいのがほしいなら、ログを残すのもありだけど
0731nobodyさん
2016/01/10(日) 13:35:24.96ID:???DTIの500円の最低スペックVPSで動かしてると、WPもCakeも体感同じくらい重い、大した差は無いんだろう
0732nobodyさん
2016/01/11(月) 11:00:11.34ID:???ローカルな言葉でかいてすまん
DBに直接入ってselect文発行して調べるってことね
あとは管理画面のTOPページとか1枚ページ作って
管理画面から変更できるテーブル全部呼び出して、
更新日時で最近更新されたフィールド全部引っ張ってきて表示とか
変な変更とかしてなければ、フィールド更新時はUPDATEだったかな?のフィールドも更新されると思うんだけど
問題が発生してから調査するぐらいなら、後者は重くなる処理だからあまりお勧めはしない。
0733>>732
2016/01/11(月) 11:21:26.04ID:???DBの設定でトランザクションログをとるなりして、探すしかないかな
ここまで書いて思ったけど、
もしかしてプログラムの意図と違った動作をしてるcontrollerとかactionを探したいってことなのかな?
ただ単純にいつだれがどこで目的のデータをいじったのかを知りたいってことなのかな?
自分は後者の更新日時だけを調べるって話で書いてたけど。
afterSaveとか使わないで、更新ボタンを押したときにどのデータをいじったのか
保存するようにすればいいだけな気もするけど。
0734nobodyさん
2016/01/11(月) 18:39:16.11ID:???すまん。やっぱり意味が分からん。
「DBに直接入ってselect文発行して調べる」ってのは、
誰がどのタイミングでどんなSQL文を実行したかログを見ろってことなの?
各テーブルの更新日時で更新されてるか確認するのは分かるんだけど
それって前回の更新日時も記録しておかないと意味ないよね?
記憶を辿って「誰か○日に更新したらしい」というのが分かるだけで。
別に更新内容そのものを確認できるようにする必要はないと思うけど、
サーバのログイン履歴みたいな感じで、
「誰がいつ、どのモデル(管理画面ならページ)を操作(action)したのか?」
が分かれば、問題発生した時のヒントになると思うんだが。
0735nobodyさん
2016/01/11(月) 18:45:38.02ID:???user_logs:id,user_id,controller,model,action,created
というテーブルを作ったとする。
user_idはログインした人のユーザーID。
AppController.phpにafterSaveで上記のテーブルにsaveするようにすれば、
最低限、「誰がいつどの操作をしたのか?」が分かると思うんだが。
こういう事じゃないのか?
0738nobodyさん
2016/01/12(火) 17:11:39.34ID:???0740nobodyさん
2016/01/13(水) 21:27:15.10ID:grQAu3Nphttp://peace.2ch.net/test/read.cgi/esite/1451533808/l50
0741nobodyさん
2016/01/14(木) 01:59:49.88ID:???0742nobodyさん
2016/01/15(金) 12:15:02.86ID:xp6SmtIr0744nobodyさん
2016/01/15(金) 22:22:55.19ID:???0745nobodyさん
2016/01/15(金) 22:54:55.06ID:???https://projects.spring.io/spring-framework/
0746nobodyさん
2016/01/15(金) 23:39:14.76ID:QNGL66/vhttps://www.youtube.com/watch?v=uQILlqoTtNw
0747nobodyさん
2016/01/31(日) 13:07:36.50ID:???$this->Model->invalidate()
って、3ではどうすりゃいいのさ?
コントローラーでエラーを発生させたいんだけど。。。
0748nobodyさん
2016/02/01(月) 10:49:29.24ID:???$entity->errors('my_field', ['This is the error message']);
see http://book.cakephp.org/3.0/en/orm/entities.html#validation-errors
0750nobodyさん
2016/02/11(木) 21:02:04.75ID:???0751nobodyさん
2016/02/20(土) 19:09:16.27ID:???2系です
0753nobodyさん
2016/02/20(土) 20:45:45.95ID:???避けた方が良さそうやな
0755nobodyさん
2016/02/21(日) 11:05:37.53ID:???0757nobodyさん
2016/02/21(日) 23:56:16.79ID:???0758nobodyさん
2016/02/22(月) 11:31:28.31ID:???http://bakery.cakephp.org/2016/02/21/cakephp_3016_3111_323_released.html
脆弱性の分類としては、XSS(クロスサイトスクリプティング)に該当するのではないかと思います。
3系で作成したサイトをインターネット上に公開している場合は必ず更新を行ってください。
更新を怠った場合、皆さまのサイトがフィッシング詐欺に使われてしまう可能性があります。
また、Google 等の検索エンジンからウィルスに感染しているサイトと見做され、皆さまのサイトが索引から削除されてしまうかもしれません。
なお、2系に関しては影響を受けません。
0759nobodyさん
2016/02/22(月) 13:56:58.53ID:???0760nobodyさん
2016/02/24(水) 17:41:38.84ID:???.
板違い(?)の上に、話をさえぎってしまいゴメンナサイ!(*_ _)人
でも、この板のユーザーさんにも有意義な告知かと思うのでカキコませてください。
★ 謝礼は十分いたします ★ アメブロなどのサイト制作ができる方!!
アメブロなどを使用してのサイト制作のできる方を早急に求めています!
私はリケジョやPC女子からはほど遠く、サイト作成にはまったく疎いのでとても不自由しています…(> <;)
そこで私に代わりサイトを作成してくださる方を求めてこの場をお借りしました。
■サイトの内容…
アダルト系、違法性、その他公序良俗に反するものではありませんのでご安心ください。
■サイト制作の仕様ベース…
アメーバブログで十分です。願わくばwordpressなどのブログ形式のサイトを希望します。
それに準ずるもので使い慣れたものがあれば別のものでも構いません。
■条件はありません…
技術さえお持ちでしたら、学歴・職歴等は一切問いません。
フリーター、ニート、高齢ニート、コミュニケーション障害をお持ちの方、引きこもりの方、中年失業者、長期無職等、歓迎!
■作業形態…
作業は在宅でやって頂くことになりますので、時間の指定は一切ありません。別のお仕事の傍らに…でもOKです。
■詳細をお知りになりたい方は…
下記メールアドレスまでご連絡ください。詳しく書いた返信文を差し上げます。
※真剣な告知です。冷やかしはご遠慮ください。
井 上
inoue1952w★gmail.com
迷惑メール対策のため@部分を★にしてあります。
実際に送信する際には★を@マークに変えてください。
.
.
0761nobodyさん
2016/02/29(月) 17:32:06.68ID:???みんなWebプログラミングしなくなったのかな・・・
0762nobodyさん
2016/03/02(水) 19:34:27.35ID:???メアドの形式チェックってどこでやってんのこれ?
required外してもメアドだけは何かチェックが走っちゃう
0763nobodyさん
2016/03/02(水) 23:05:25.45ID:???cakePHPを使った方が良いのかな?
0766nobodyさん
2016/03/03(木) 12:39:12.43ID:???過去の仕事の蓄積から、絶対Cakeで作った方がコスト安いので、毎回嫌々使う羽目になる
0768nobodyさん
2016/03/03(木) 19:20:16.50ID:???0769nobodyさん
2016/03/03(木) 21:16:56.38ID:???サーバー側のチェックを外したいなら、TableクラスのvalidationDefault()メソッド中の$validator->email()がやっています。
あるいは、ブラウザによってはクライアント側でチェックが走るのかも?
フィールド名がemailだとinputのtypeも勝手にemailになるので、それを外したいということだったら、
$this->Form->input('email', ['type'=>'text']);
みたいに指定するとチェックされなくなれるかもしれません。
0770nobodyさん
2016/03/04(金) 14:31:32.75ID:???Cakeの命名規則&仕様っぽいオレオレ作ったよ。
findとかsaveとか使えるけど、完全にMVCじゃなくてnewしてモデル読むやつ。
だから、小規模案件だと使い勝手が良い。必要なファイルだけ使用すればいいだけだし。
CakeだとコンソールとかACLとか余計なものもくっついてくるからね。
0773nobodyさん
2016/03/06(日) 23:15:14.15ID:???サーバ移行というか、PHP5.3→5.4の変更時も簡単だったよ。
Cakeで言うとObjectクラスを変更するだけだったし。
Cakeの場合、PHPのバージョンを変更するなら、Cake自体を変更になるし。
(1.3から2とかだいぶ変わったしな
0774nobodyさん
2016/03/06(日) 23:32:24.29ID:????
0775nobodyさん
2016/03/07(月) 07:10:28.71ID:???0776nobodyさん
2016/03/07(月) 08:39:06.62ID:???0777nobodyさん
2016/03/07(月) 10:25:39.22ID:???0778nobodyさん
2016/03/07(月) 13:39:00.33ID:???メジャーアップデートってなんだよw
0780nobodyさん
2016/03/07(月) 19:03:17.18ID:???0781nobodyさん
2016/03/08(火) 14:24:40.78ID:???0782nobodyさん
2016/03/08(火) 19:07:49.98ID:???0783nobodyさん
2016/03/09(水) 07:56:13.50ID:???互換性で言えば出ないとは言い切れない
ので出ることもあるとしか言えない
0784nobodyさん
2016/03/09(水) 08:57:08.56ID:???0785nobodyさん
2016/03/12(土) 13:33:41.85ID:???0786nobodyさん
2016/03/12(土) 14:47:32.01ID:???0787nobodyさん
2016/03/12(土) 14:58:49.08ID:???0788nobodyさん
2016/03/12(土) 15:10:32.94ID:???全てまともだと言えよう。
0789nobodyさん
2016/03/12(土) 15:10:50.93ID:???0790nobodyさん
2016/03/12(土) 15:12:24.74ID:???0793nobodyさん
2016/03/12(土) 19:51:08.91ID:???個人運営のしょぼいサイトか?
商業用作ってるかどうかが意見の分かれ目なのかな
0794nobodyさん
2016/03/12(土) 20:31:38.44ID:???fwの機能としては充分てことだろ。
機能が必要なサイトなら、そのサイトに適当な機能をあちこちから選んでつければ良いだけ。
詰め込みすぎて自由度がなくなったり、学習コストが高くなるくらいなら、
今のcakeくらいでちょうど良い。
0795nobodyさん
2016/03/12(土) 20:42:14.82ID:???別に自由度なくなったり学習コスト上がったりしないだろ
0796nobodyさん
2016/03/13(日) 07:59:08.23ID:???Cakeに無いのって例えば何なの?
0797nobodyさん
2016/03/13(日) 09:37:33.07ID:???本当にCake使ってるの?
0798nobodyさん
2016/03/13(日) 10:25:59.14ID:???他に何入れてるの?
0799nobodyさん
2016/03/13(日) 11:57:36.28ID:???DebugKit
Minify
Blowfishで暗号化するやつ
CakeResque
Opauth
BoostCake
TwigView
TwigBake
メンテ中表示にするやつ
時間表示を○分前とかにするやつ
ユーザーエージェント判定するやつ
PayPal支払い
ドラッグドロップでアップロードするやつ
captchaするやつ
Googleマップ簡単に入れるやつ
NGワード判定
QRコード生成
CSV読み書き
PDF生成
タグ機能
httpとhttpsの出し分け処理するやつ
ぱっと思い付いたのがこのくらい、多分他にもあるがこの辺は仕事で請け負う規模のサービスだと大体毎回使うから
最初から入ってるか、定番のものがあるとありがたいといつも思ってる
0800nobodyさん
2016/03/13(日) 13:03:53.97ID:???使ってないから、ない機能が思いつかないんっだろうねw
ない機能はたくさんある。使ってるからわかる!
言わないけどな!
0801nobodyさん
2016/03/13(日) 13:05:09.06ID:???それらが入っているCakePHP以外の
フレームワークって何があるの?
マジレスするとフレームワークに入れるべきではない機能ばっかりだ。
(だから他のフレームワークにも入っていない)
0802nobodyさん
2016/03/13(日) 13:14:49.45ID:???少なくとも使用者の俺の立場からは、入っててくれた方がうれしいよ
0803nobodyさん
2016/03/13(日) 13:56:27.62ID:???ドラえもんの四次元ポケットじゃないんだから、
無いのは自分で作ればいいだけじゃん。
のび太よろしく、なんでも道具に頼るのは良くない。
0804nobodyさん
2016/03/13(日) 13:58:25.46ID:???そんな車輪の再発明みたいな無駄な時間使いたくないからFW使ってるんだから
なんでも最初からあった方がいいに決まってる、自分の労力はもっと上の方の機能に使いたいじゃん
そんな基本もわからないほどレベル低いの?
0806nobodyさん
2016/03/13(日) 15:22:34.15ID:???> どういう理由で入れるべきではないと主張してるのかは知らんが
そりゃフレームワークなんだから、
「枠組み」の部分はフレームワークに入れる必要があるが
枠組みの中の部分はライブラリを使えばいいんだよ。
0807nobodyさん
2016/03/13(日) 15:33:07.35ID:???極端すぎ。1か0で考えてるのかよ。
少なくともFWに必要な基本的な機能はあるんだから、
追加分は自分で作れって話だろ。どんだけレベル低いんだ
0808nobodyさん
2016/03/13(日) 21:57:28.50ID:???左右に並べる事が出来ていました。
しかし、Eclipse 4.5のMarsでリモートシステムで接続し
ファイル編集をしようとしたところ、右クリック > 新規エディタ
とする事が出来なくなってしまいました。
Eclipseの最新バージョン(Mars)では出来ないのが仕様となってしまったのでしょうか?
0811nobodyさん
2016/03/14(月) 12:00:33.07ID:???0812nobodyさん
2016/03/14(月) 18:06:11.28ID:???分からんかったらすっこんでろ。アキバ系のキモオタク。
0813nobodyさん
2016/03/14(月) 22:20:49.75ID:???0814nobodyさん
2016/03/26(土) 09:58:30.36ID:???もう誰も使っていないのか
スレが落ちたらさらに笑う
0815nobodyさん
2016/03/26(土) 10:43:22.70ID:???フレームワークとしてある意味充分で枯れてるからね。
書き込みの勢いだけで判断する愚かな人はいないよ。
0816nobodyさん
2016/03/26(土) 11:53:22.32ID:???0817nobodyさん
2016/03/26(土) 12:00:16.12ID:???railsじゃダメなの?
0818nobodyさん
2016/03/26(土) 12:20:37.42ID:???0820nobodyさん
2016/03/26(土) 14:16:19.21ID:KniYU/rm3のメリットってなんだろう
0824nobodyさん
2016/03/27(日) 14:32:05.67ID:???0826nobodyさん
2016/03/27(日) 19:45:38.96ID:???0827nobodyさん
2016/03/28(月) 00:11:51.08ID:???0829nobodyさん
2016/03/28(月) 04:15:00.41ID:???0830nobodyさん
2016/03/28(月) 06:57:30.40ID:???0831nobodyさん
2016/03/28(月) 11:25:44.48ID:???0832nobodyさん
2016/03/30(水) 19:15:43.87ID:???<head>〜</head>の内容を書くことが結構あるけど。
0833nobodyさん
2016/04/13(水) 11:03:40.18ID:eWmkLfyAそれと、急にInternal Error Has Occurred.が出るんだけど、何が原因?
ページネータなんて、自分で作った方が高機能なもの作れるんじゃね?
なんでヘルパーで実現しなければならないの?
明らかに開発効率下がってるよ。
0834nobodyさん
2016/04/13(水) 11:10:28.42ID:eWmkLfyAバグは直ったけど、ページネータ以外のデータ処理でキーが必要なのにnullとかのときの例外メッセージが書けない。
これって、仕様なんだろうね。
0835nobodyさん
2016/04/13(水) 11:22:30.55ID:eWmkLfyAPHP7にフレームワークってどうやって動かすの?
まだ、PHP7対応のフレームワークって無いわけか?
早く高速のPHP7でフレームワークに対応してほしい
もうひとつ加えれば、なるべく分派してほしくない。よりスタンダードチックなフレームワークを作ってほしい。
軽いやつ。
0837nobodyさん
2016/04/13(水) 23:40:56.42ID:???他のライブラリを使う手もある
http://harikt.com/blog/2016/01/13/cakephp-orm-and-illuminate-pagination/
0838nobodyさん
2016/04/13(水) 23:46:26.60ID:???Cakeも確か2.7か2.8あたりで対応したんじゃなかったっけ?
予約語の関係でStringクラスが使えなくなるのがメインの障害だったとか
0839nobodyさん
2016/04/15(金) 02:33:50.76ID:???他のライブラリでページネーションのような仕組みを付けられるの?
もしあるなら教えて。使い勝手見てみる。
0840nobodyさん
2016/04/15(金) 11:19:07.22ID:???0841nobodyさん
2016/04/15(金) 14:53:56.31ID:???0842nobodyさん
2016/04/24(日) 11:05:40.86ID:rcoMW0LlCakePHPのgithubに対応状況が色々書かれてたと思いますよ
0843nobodyさん
2016/04/25(月) 22:55:23.97ID:???0845nobodyさん
2016/04/26(火) 23:44:10.04ID:???まだあんまり3系の仕事ない感じですか?
0846nobodyさん
2016/04/27(水) 16:39:20.17ID:???0847nobodyさん
2016/04/28(木) 15:11:08.05ID:???0848nobodyさん
2016/05/30(月) 19:13:29.78ID:???0849nobodyさん
2016/06/04(土) 03:15:19.86ID:MZ0krgccどうも証明書のCNチェックでNGになっているみたい。
回避する方法はあるんでしょうか?
0850nobodyさん
2016/06/12(日) 11:36:34.44ID:???0851nobodyさん
2016/06/15(水) 12:23:43.13ID:???http://qiita.com/chinpei215/items/3c116171c5308365c314
0852nobodyさん
2016/07/12(火) 13:13:54.39ID:bO4py1IVアイディアと情熱のある方のみ、お願いします。
http://good-hill.xsrv.jp/?id=77121
『 グッドエンジェル 』
投資家と起業家のマッチングサービス
IT投資家からベンチャーキャピタルまで参加されています。
0853nobodyさん
2016/07/19(火) 21:25:46.72ID:???0855nobodyさん
2016/07/22(金) 00:50:47.36ID:???0857nobodyさん
2016/07/22(金) 01:27:32.09ID:???明日朝イチで調べなきゃ
0858nobodyさん
2016/07/22(金) 01:52:03.59ID:???環境変数でHTTP_から始まるものを使っていたら、一通りチェックしたほうがいい。
0859nobodyさん
2016/07/29(金) 12:59:09.98ID:UvtMyrK13.2から変わった?
0860nobodyさん
2016/08/17(水) 13:08:40.97ID:???0861nobodyさん
2016/08/17(水) 13:16:27.17ID:???0862nobodyさん
2016/08/17(水) 21:20:08.42ID:???0863nobodyさん
2016/08/18(木) 08:17:19.93ID:???0864nobodyさん
2016/08/21(日) 01:50:18.05ID:NlLXLZki仕事概略 【東京都 23区西部】IT分野/クラウドサービス開発
言語:PHP
雇用形態 正社員
1つの目安といたしまして、今案件は350,000円〜800,000円程の月収を予想しております。
0865nobodyさん
2016/09/03(土) 13:16:09.71ID:???0866nobodyさん
2016/09/03(土) 20:25:47.79ID:???0867nobodyさん
2016/09/03(土) 20:44:47.30ID:???0868nobodyさん
2016/09/04(日) 10:13:46.09ID:???0869nobodyさん
2016/09/04(日) 13:00:18.19ID:???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するのは止めます。
やはりセキュリティ的に不安ですね(やってるサイト多いですが
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:???0993nobodyさん
2017/01/25(水) 12:56:06.97ID:???0994nobodyさん
2017/01/25(水) 12:56:42.86ID:???0995nobodyさん
2017/01/25(水) 13:04:27.91ID:???0996nobodyさん
2017/01/25(水) 13:05:13.94ID:???0997nobodyさん
2017/01/25(水) 13:05:30.61ID:???0998nobodyさん
2017/01/25(水) 13:12:41.69ID:???0999nobodyさん
2017/01/25(水) 13:12:58.26ID:???【PHP】フレームワーク CakePHP 19ホール目【v3.3】 [無断転載禁止]©2ch.net
http://tamae.2ch.net/test/read.cgi/php/1482547831/
1000nobodyさん
2017/01/25(水) 13:13:15.05ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
life time: 906日 15時間 15分 34秒
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。