◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

【PHP】フレームワーク CakePHP 17ホール目【v3α】YouTube動画>2本 ->画像>2枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/php/1406984261/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1 :
nobodyさん
2014/08/02(土) 21:57:41.01 ID:LI0DdohH
CakePHPは、Ruby on Railsの概念の多くを取り入れた、高速開発とPHPの機動性を兼ね備えたフレームワーク
質問するときは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/
Twitter
https://twitter.com/cakephp
Facebook
https://www.facebook.com/CakePHP

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/


※前スレ
http://kanae.2ch.net/test/read.cgi/php/1393661004/
2 :
nobodyさん
2014/08/02(土) 22:00:21.62 ID:???
前スレ、埋まりきってないのに何故か落ちたので立てた。

>>1 少し修正した。
Lithium の話題はもう何スレッドも出てきてないので消したよ。
3 :
nobodyさん
2014/08/03(日) 09:32:53.64 ID:???
あーー、スレタイ間違えたわ

17ホール目じゃなくて18ホール目だった!

スマン
4 :
nobodyさん
2014/08/03(日) 13:46:39.60 ID:???
良いってことよ。乙。
5 :
nobodyさん
2014/08/05(火) 15:21:34.94 ID:???
Nginx+cakephpで、DocumentRoot以外に適用したいんだけど、うまくいかない
具体的には、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;
}
}
6 :
nobodyさん
2014/08/07(木) 00:21:06.42 ID:???
Baserってどうすか?
7 :
nobodyさん
2014/08/07(木) 14:20:30.27 ID:???
あれ使うならWordPressの方がよっぽどいい
8 :
nobodyさん
2014/08/07(木) 14:56:16.53 ID:???
>>7
WordPress以下って、そこまで酷いってこと?
9 :
nobodyさん
2014/08/07(木) 15:06:32.73 ID:???
>>8
世界中で何万人と使っているOSS以下なのが、
「そこまで酷い」に該当するの???
10 :
nobodyさん
2014/08/07(木) 16:55:45.08 ID:???
>>9
WordPressって、コードが酷いって散々言われているので。。。
11 :
nobodyさん
2014/08/07(木) 17:46:25.12 ID:???
>>10
じゃ、君の質問は
「BaserCMSはWordPressよりコードが綺麗なの?」
あるいは
「BaserCMSってコードが綺麗ですか?」
って事を聞きたいのか?
12 :
nobodyさん
2014/08/10(日) 09:39:28.18 ID:???
cakephpのテストでモックって使うべき?
勉強してもわからない。
モデルで、twitterにログインできるか?
をテストしたいんだけど。
13 :
nobodyさん
2014/08/10(日) 17:39:12.38 ID:???
テストの使い方がわからない
14 :
nobodyさん
2014/08/10(日) 19:57:19.49 ID:???
>>12 その場合は使わなくても問題なさそう。
やったことないけど twitter から成功したかどうかのレスポンスが返ってくるんだよね?
それが期待通りかテストすればいいと思う。

モックは、あるメソッドが期待通りの回数よばれたか、みたいなテストに便利。
たとえば、トランザクションの成功ケースのテストだとこんな感じ。

$mock->expects($this->one())->method('begin');
$mock->expects($this->one())->method('commit');
$mock->expects($this->never())->method('rollback');

begin() と commit() は一回だけ呼ばれるべきだし、 rollback() は呼ばれるべきじゃない。
15 :
nobodyさん
2014/08/10(日) 20:15:20.15 ID:???
>>14
ありがとうございます。
ツイッター側でメールアドレスとパスワード入力してOKボタン押さないといけないんです。

file_get_contentsみたいに帰ってくるならいいんですが。

あと、モックで回数を確認するのにと言うけどトランザクション以外で例ありますか?

今まで、回数を確認したいと思ったことがないんです。
16 :
nobodyさん
2014/08/11(月) 02:25:00.88 ID:???
>>15 画面操作が必要なんですね。
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行修正する、という愚挙に出ます。
17 :
nobodyさん
2014/08/11(月) 02:34:11.23 ID:???
>>16 訂正 will は with の誤りです。
18 :
nobodyさん
2014/08/11(月) 11:37:29.34 ID:???
>>16
ご丁寧にありがとうございます!
19 :
nobodyさん
2014/08/11(月) 15:39:39.01 ID:???
>>18 どういたしまして
20 :
nobodyさん
2014/08/14(木) 11:29:49.85 ID:???
どうしてもテストを書く時、
テストを先に、メインのプログラムを後に。というのがやりづらい。

先にメインのプログラムから書いてしまう。

何かコツみたいなないですか?
21 :
nobodyさん
2014/08/14(木) 17:57:35.56 ID:???
そもそもテストの意味がまるでわからない。
何かを登録する処理があるとして、
それをブラウザで実行して確認すれば良いだけじゃないのか?
22 :
nobodyさん
2014/08/14(木) 19:34:58.00 ID:???
あれデジャビュ
23 :
nobodyさん
2014/08/15(金) 00:06:24.74 ID:???
>>21
そう思うんだけど、テストした方が良いというのが定説なんだよね。
24 :
nobodyさん
2014/08/15(金) 04:46:25.44 ID:???
>>21
テストケースを書けばテストも自動化できるので、コードの品質管理の上では必須。
ただ、Cake使いにはそういう所は少ない印象。
そういう取組をする現場はもっと新しいものを積極的に採用してるね。
25 :
nobodyさん
2014/08/16(土) 01:43:18.22 ID:???
>>24
テストケースって言うけどさ、ブラウザで実行して確認するのとどう違うんだ?
26 :
nobodyさん
2014/08/16(土) 08:47:31.75 ID:???
>>25
新規会員登録に成功、失敗。
ログインに成功、失敗。
パスワード変更に成功、失敗。

この合計6つのテストを一瞬でやれる。
また、これにツイッターでログイン機能をつける場合、ブラウザテストだとすべてをテストし直す必要があるが、
テストケースがある場合、どんな方法でツイッターログインをつけようがテストさえつけりゃOKということになる。
27 :
nobodyさん
2014/08/16(土) 08:49:14.66 ID:???
特に自分の場合はもう30過ぎたおっさんなので昨日のご飯すら覚えてない。
強いて言えば昔書いたプログラムなどほとんど覚えてない。

しかし、テストケースさえありゃどんな目的で作ったのか一目でわかるようになる。
28 :
nobodyさん
2014/08/16(土) 16:43:12.80 ID:???
>>26
それをブラウザで実行して確認するのと
何がどうメリットがあるのか全く理解できないんだよな。
どうせテスト書いてもブラウザで確認する作業もあると思うし。
29 :
nobodyさん
2014/08/16(土) 16:46:43.74 ID:???
単体テストでググれ
30 :
nobodyさん
2014/08/16(土) 19:48:20.56 ID:???
>>28
俺もテスト書くまではあなたと同意見だった。テスト書く手間もあるし、書き方もわからんし。
ただ、確認する項目が100,200となってくると同じ確認を何度もできなくなる。
手間だから。

安心感みたいなのもあるかもしれない。
31 :
nobodyさん
2014/08/20(水) 08:16:48.64 ID:???
32 :
nobodyさん
2014/08/21(木) 20:58:07.10 ID:???
公開画面の一部だけCake使うってこと出来ませんかね?
例えばDBに登録しているバナーを表示して、
表示回数をカウントするような機能。

こういうのは早い動作(処理)を求められるけど、
Cakeを通すとどうしても動作が遅くなってしまう。
けど、読み書きにControllerやModelを使いたい。

なにかいい方法ありませんかね?
33 :
nobodyさん
2014/08/21(木) 22:41:55.19 ID:???
Cakeと他のアプリの共存は.htaccessないし類似の設定で振り分ければできる
って書こうと思ったが後半見ると質問の意図は違うのか?

Cakeを丸ごと使うと遅くなるから機能の一部だけ使って速度と便利さ両立するような方法ない?って話?
34 :
nobodyさん
2014/08/21(木) 22:43:19.63 ID:???
>>33
はい。そういうことです。
1.3系にはあるみたいですが、2系ではググっても見当たりません。
35 :
nobodyさん
2014/08/21(木) 23:12:05.66 ID:???
そもそもそこまでしてCakeにこだわる意味あるのか?
フルスタックで高速開発が売りなのにわざわざバラして使うとか

素直に他の独立して使えるORMかSQLクエリビルダーのライブラリ使うってのは駄目なわけ?
軽いのならidiormとかあるじゃん
その例の程度だとControllerの必要性は感じないし

もしくは処理速くするだけならCakeフルに使ったままで
PHPをAPCやらで高速化するという手もあると思うけど
36 :
nobodyさん
2014/08/22(金) 00:12:48.81 ID:???
>>35
Cakeにこだわる意味あります。例えば>>32の要件の場合、
バナーの管理って管理画面を作ると思うのです。
その場合のログインシステム、バナー画像の管理、アクセス数の確認
など管理画面でやりたいことが結構あります。

これをフルスクラッチで作るのは結構骨が折れます。
「アクセスが集中する箇所を軽くしたい」という要件を満たすためだけに、
フレームワーク使わないというのは非効率に感じるのです。
37 :
nobodyさん
2014/08/22(金) 00:18:28.47 ID:???
なんで全部フルスクラッチにするの?
表示のカウントは管理画面と別でしょ?
管理画面だけCakeで作ってDBだけ共用すれば?
38 :
nobodyさん
2014/08/22(金) 00:32:14.41 ID:???
>>37
ということは、管理画面だけCakeにして
他は別のフレームワークを使うということですか?

それはそれで正しい開発の在り方なのでしょうか・・・
39 :
nobodyさん
2014/08/22(金) 00:42:28.69 ID:???
フロント側に他のページもあるならそこもCakeで作ればいいよ

要はアクセス集中する部分だけ素のPHPに近い状態で書けば速いわけだけど
Cakeはフレームワークの一部だけ取り出して使うことをあまり想定してないからこの用途にはあまり向かないんじゃないのってこと
かと言ってフルスクラッチはキツイだろうから軽めの他のライブラリ併用すれば?と

そこに他のフレームワーク使って何とかなるなら管理画面ごとそのフレームワーク使えばいいよね
40 :
nobodyさん
2014/08/22(金) 01:16:14.35 ID:???
機能がよく分割されてるのは、SymfonyとかLaravelだな。
Silex+Twig+Eloquentとか簡単にできる。
41 :
nobodyさん
2014/08/22(金) 01:34:06.53 ID:???
あとAuraかな
42 :
nobodyさん
2014/08/22(金) 02:05:27.82 ID:???
外部ファイルにapp/webroot/index.phpの中身をコピって下部のDispatcherの部分のコード削って
その続きからApp::uses('Model', 'Model')などと書き始めれば動くことは動きそう
でも軽いかこれ?
43 :
nobodyさん
2014/08/22(金) 02:13:08.95 ID:???
バナーの表示回数ってWebサーバのログから集計したら
リアルタイムにデータ取りにくい代わりに負荷減らせね?
44 :
nobodyさん
2014/08/22(金) 03:07:44.02 ID:???
サーバのログから集計するって初めて聞いた考え方だなw
サーバのログ=テキストファイルだけど、
それを分析・分類するのはどうするんだ?シェル書くのか?
45 :
nobodyさん
2014/08/22(金) 09:21:10.25 ID:???
アクセス解析のごく一般的な方法の一つでそ
共用のレンサバに機能としてついてるようなアクセス解析はほぼこの類
Apacheログのパーサーくらい探せばPHPのライブラリもあるだろうが
シェルスクリプトのが軽いか


最近はFluentdでログを構造化するのが流行ってんじゃね
46 :
nobodyさん
2014/08/22(金) 09:34:12.26 ID:???
CakeのModelだけ使うなんてドMの所業としか思えないよママン(´・ω・`)
47 :
nobodyさん
2014/08/22(金) 12:33:28.35 ID:???
でも、バリデーション便利だよ?
48 :
nobodyさん
2014/08/23(土) 14:14:21.76 ID:1tdBFRBe
チュートリアルの認証部分のコントローラの$componentsのloginRedirectのaction部分をいじってるんですが、
ファイルを保存してもすぐに反映されません。
これはどこかにキャッシュされますか?
49 :
nobodyさん
2014/09/02(火) 17:18:10.52 ID:QrpuDeHl
WordPressのテーマ編集のように、
ビューを管理画面から編集する機能をつけようと思っているのですが、
単にPHPのソースを編集する形にしても問題ないのでしょうか?
(不特定多数が使用しません。管理者のみです)

非プログラマにPHPファイルを編集させるのは違和感があるのですが、
WordPressでそうなってるので、特に問題ないのかな?と感じています。
もし、問題がある可能性があれば注意点を教えて下さい。
50 :
nobodyさん
2014/09/02(火) 23:39:56.72 ID:4+zCLOUH
WordPress と同じぐらいの問題がある。
CakePHP 固有の問題は思いつかない。
51 :
nobodyさん
2014/09/02(火) 23:50:38.40 ID:???
テンプレートファイルの編集ミスったら普通にエラー出るじゃん
稼働中に止まってもいいサイトならどうでもいいが
管理者だってミスるだろうしせめて構文チェックくらい入れて差し上げろ
52 :
nobodyさん
2014/09/02(火) 23:51:19.97 ID:???
実サイトへの反映前にプレビューできる機能があるとベターだろうな
若干面倒だが
53 :
nobodyさん
2014/09/03(水) 00:19:55.11 ID:???
>>50-52
なるほど。ビューの編集機能ってあった方が良いんですかね?
自分は直接いじるので無くても構わないのですが、
CMSだとあるのが必須のような気がして、迷います。
54 :
nobodyさん
2014/09/03(水) 00:48:46.04 ID:???
【まともにCMSを運用してるユーザーやWeb開発者】
IDEかエディタでテーマ編集してローカル環境でテストしてからアップする
管理画面にビュー編集機能がなくても大して気にしない

【個人サイトやビジネス利用でも運用が適当なユーザー】
少々サイトが止まってても良いので管理画面から直に変更を加えたいこともある

というイメージ

あと考えられるのはCMSまたはCakeのディレクトリ構造をよくわかっていない奴がビューを触りたいなら便利なのかもな
テーマ編集機能がないとそもそもどのファイルいじれば表示変わるんだよと文句言う奴もそれなりにいる
その程度の知識でビュー触んなハゲと言いたいが現実は非情である
55 :
nobodyさん
2014/09/03(水) 01:03:28.90 ID:???
有名所のCMSはレンタルサーバの簡単インストールに対応してる場合がある
さらにWPはwordpress.comみたいなホスティングもあるし
極端な話FTPすら分からなくても利用開始できてしまうんだよな
そこまで行くともうブラウザから殆どの作業ができるようにせざるを得ないという感じなのでは

個人的には機能実装の優先度は低いと思う
大衆向けCMSとして成功したならいずれ要望が出てくるんだろうが
56 :
nobodyさん
2014/09/03(水) 01:13:13.14 ID:???
Web製作者がビューいじるだけならどうでもいい
大勢の一般人に使わせるならあってもいい

そして一般人に使わせるCMSならビューには
自動エスケープするテンプレートエンジンを使ったほうがいい
57 :
nobodyさん
2014/09/03(水) 03:02:35.39 ID:???
そういえば BaserCMS とかに編集機能あるよね
58 :
nobodyさん
2014/09/03(水) 11:31:38.30 ID:???
あるけど、あれも直接編集する形だよ
59 :
nobodyさん
2014/09/04(木) 05:40:00.77 ID:???
<?php if ($a): ?>
<p>こんにちは</p>
<?php else: ?>
<p>こんばんは</p>
<?php endif; ?>

FWを使用しなくてviewに相当するスクリプトにこう書いているものを、
cakephpではどうやって書くのがよい作法なのでしょうか?
60 :
nobodyさん
2014/09/04(木) 10:02:35.94 ID:???
唯一の正解はないと思うが自分が段階的にリファクタリングすると考えると


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日かかるかもしれないな
61 :
nobodyさん
2014/09/04(木) 10:44:49.53 ID:???
ビューやヘルパーやコントローラーに何でもかんでも書いてるCakeのアプリってさ
大概テストコードも少ない上に1つのクラスとメソッドがとても長いんだよね
保守を押し付けられたら死ぬしかない
62 :
nobodyさん
2014/09/04(木) 12:37:25.21 ID:???
>>60
横だけど、1の書き方はおかしくないか?
ビューやコントローラで変数に代入するってのは違うと思うだが。

普通に共通ヘルパー作るので良いと思うんだけど。
<?php echo $this->ViewCommon->greeting(); ?>
みたいな感じで出力して。

ヘルパー内の関数(greeting)で時間帯に合わせて
出力メッセージ変えれば、>>59がやりたかった事をシンプルに出来るだろ。
63 :
nobodyさん
2014/09/04(木) 19:57:46.19 ID:???
ビューはなるべくやめたほうがいいのは同意するけど
コントローラでビュー変数をセットするのって普通じゃないの?
ビューにModelのfindの結果渡すのと同じだし
64 :
nobodyさん
2014/09/04(木) 20:18:57.95 ID:???
これくらい単純ならヘルパーが手軽よなあ
ヘルパーはプレゼンテーションロジック担当というMVC原理主義に従うならモデル作るのが正解なんだろう
65 :
nobodyさん
2014/09/04(木) 20:37:01.94 ID:???
>>63
それはビューに変数を代入したり、可変する場合な。
>>59のような挨拶って代入する必要ないだろ。
「◯◯さん、こんにちは」の、名前の部分は別だが。
66 :
nobodyさん
2014/09/04(木) 20:41:26.45 ID:???
条件によって変化してるんだから可変と解釈しても問題なくない?
67 :
nobodyさん
2014/09/04(木) 20:46:00.11 ID:???
質問者の意図として、挨拶文のところは、簡単な例で示しただけだと思うから、
「ヘルパーで十分」って回答するのは、あまりに浅はかだろw
68 :
nobodyさん
2014/09/04(木) 20:51:18.46 ID:???
>>61
共通ヘルパーが神クラス化してるアプリ見たことあるわw
ヘルパーなのに主役というギャグだったんだと思ってる
69 :
nobodyさん
2014/09/04(木) 20:59:14.22 ID:???
CakePHPとかいう初心者向け似非MVC養成ギブス
さっさと投げ捨てよう
70 :
nobodyさん
2014/09/05(金) 00:09:03.50 ID:???
>>67
エスパーじゃないんだからさ、例示以上の事を推測できないでしょ。

ま、一応用途を推測した上で回答してるけど、
それでもコントローラから挨拶文を生成するやり方は
バッドプラクティスだと思うけどなぁ
71 :
nobodyさん
2014/09/05(金) 01:22:18.58 ID:???
この例の挨拶文の分岐はビューロジックじゃなくね?
どっちの挨拶文を選択するかはビュー関係なしに解決できる。
"よい作法"を問われたらモデルに書いて素直なMVCするが正解だとおも。

ヘルパーは表示整形用途に留めるべきで、
コントローラはMV間の糊に徹するべき。

3系ならViewCellも選択肢に入る。
72 :
nobodyさん
2014/09/05(金) 01:28:31.63 ID:???
俺はヘルパーかコントローラに気分次第で書いて、太ったら慌ててモデルとテスト作るクチだがね。
73 :
nobodyさん
2014/09/05(金) 01:53:21.35 ID:???
モデルに書く意味が分からん。ただのビューの表現に過ぎないのに。
例えば、おはよう・こんにちは・こんばんわ以外に
時間帯によって挨拶文を出力したいとする。

ロジックが発生するけど、これモデルか?モデルなら何のモデルだ?
Userモデルか?会員サイトじゃない場合はどうするんだよ。
だったらヘルパーにする方が汎用性高いだろ。

別に例を出すと、パンくずリストがある。ページによって位置が変わる。
しかし、これはHTMLヘルパーに用意されている機能だ。
コントローラに依存しそうな機能なのにヘルパーだ。
なぜか。ビューで表現する機能だからだ。

1から10まで仕様通りに作れとは言わないが、
より複雑に作る事をお勧めするのは如何なものかと感じる。
74 :
nobodyさん
2014/09/05(金) 01:56:33.77 ID:???
FW初心者がのたまう"モデル"ってデータベースありきで話通じないときある
最初はデータベースにモデルを永続化しないアプリケーションを作りながら
MVCフレームワークを学ばせたほうがいいんじゃないかと思う
75 :
nobodyさん
2014/09/05(金) 02:12:07.63 ID:???
>>74
あるある
フレームワークで用意されたModel・AppModelクラスを継承したものだけがモデルだと思ってる
実際はモデルの部分集合にすぎんのに
んで行き場を失ったビジネスロジックがコントローラやヘルパーでヒャッハーしてる
76 :
nobodyさん
2014/09/05(金) 03:12:00.07 ID:???
Cakeのパンくずリストの実装って微妙じゃね?
特にHTMLヘルパーがパンくずの配列$_crumbsを状態として持ってるのは違和感バリバリだわ
おもいっきり単一責任の原則に反してるしパンくずリストの構築に責任を持つクラスを作るべき
ヘルパーのメソッドはパンくずリストを表すオブジェクトか配列を受け取って出力の整形をするだけでいい

>会員サイトじゃない場合はどうするんだよ。
腹筋崩壊するからやめろっやwwww
77 :
nobodyさん
2014/09/05(金) 04:34:38.73 ID:???
>>74-76
な、結局煽ったり重箱の隅突っつくしかなくなるだろ?
いつの間にか話が「モデルの使い方」になってら。
話のすり替えもいいとこだ。

>>67では「簡単な例で示しただけ。浅はか」と言ったから、
仕様を会員サイトで想定し体験をだしたら、腹筋崩壊するぐらい面白いっと。
次はどんな煽りで来るんだろうなー面白いこと言えたらいいんだけどなー
78 :
nobodyさん
2014/09/05(金) 10:37:11.84 ID:???
共通Helperそこまで叩くほどなん?
複雑な処理なら一部他に任せるように変えてけばよくね?
モデルに委任してもいいし
コントローラ経由でモデルに処理移すのと大差ないやん
79 :
78
2014/09/05(金) 11:00:32.52 ID:???
んー処理が複雑or挨拶文を設定ファイルから読みたいときは
例えばSystemMessageクラスをモデルに作るのもあり……?
80 :
78
2014/09/05(金) 11:10:14.48 ID:???
ま、喧嘩すんなや
ビューロジックとビジネスロジックの解釈の違いが噛み合わん原因っしょ
>>73の会員サイトの例で説明を試みると

挨拶文はUserモデルと比べれば瑣末にすぎないビューの表現の一種やん→ビューロジック ヘルパー派
挨拶文の選択条件は見せ方に依存しねえじゃん→ビジネスロジック モデル派
81 :
nobodyさん
2014/09/05(金) 12:29:00.74 ID:???
おはこんばんちわ、○○さん!
82 :
nobodyさん
2014/09/07(日) 03:06:53.03 ID:???
すみません誰か分かる人いたら教えてください
pagenationでUNION使いたいんだけど情報が全くないので困ってます
生のSQL叩いてpagenationに組み込む方法しかないのかな
83 :
nobodyさん
2014/09/07(日) 11:45:44.93 ID:???
>>82
多分、別のモデルを作るのがいいと思う。

簡単なのは、UNION 後のビュー(データベースのビュー)のモデルを作る方法。
この方法なら、Model::$paginate() と Model::$paginateCount() をわざわざ実装する必要がないからね。

ビューを作るのが嫌な場合、それらのメソッドを実装したモデルを作ることになると思うけど、
その場合は、生の SQL を書くより DboSource::buildStatement() を使った方がいいと思う。
Paginator::$settings の設定を生の SQL に組み込むのは大変だよ。
84 :
nobodyさん
2014/09/07(日) 11:47:23.50 ID:???
間違えた。
Model::paginate() と Model::paginateCount() ね。
85 :
nobodyさん
2014/09/07(日) 17:38:42.22 ID:???
>>83
レスありがとうございます
ビュー作るのは少し微妙なのでbuildStatement()の方で補おうと思います
それでもなかなかややこしいですね
86 :
nobodyさん
2014/09/10(水) 19:35:59.90 ID:???
自分の個人サイトでcakephp使ってる人居ますか?
リニューアルついでにcakephp使おうか迷ってる。
87 :
nobodyさん
2014/09/11(木) 01:14:28.20 ID:???
いるだろそりゃ。俺もその一人だが。
88 :
nobodyさん
2014/09/11(木) 01:15:53.40 ID:???
どんなサイトか分からんが、個人でやって迷ってんならやってみろよ
89 :
nobodyさん
2014/09/24(水) 23:35:14.19 ID:???
2.4でoracle使いたいんだけど、どうやったら使えるの?
90 :
nobodyさん
2014/09/25(木) 01:32:54.46 ID:???
2系からはサポートしなくなった。

俺は使ったことないんだけど、Oracle のプラグイン作ってくれた人がいる
https://bitbucket.org/odin88/cakephp-2.0-oracle/src
91 :
nobodyさん
2014/10/07(火) 11:48:06.87 ID:QG2cjBR/
CakePHP2 のhasManyで、プライマリーキー以外を使ったアソシエーションは定義できないのでしょうか。

たとえば 商品 hasMany 素材 だとして
商品のPK以外の値と 素材テーブルのある値とでアソシエーションを組みたい場合があります。
この場合、「素材のある値」はforeingKey で指定可能ですが、商品テーブル側のどの値を使うのかは
PKで決め打ちになっていていじれません。

どうするのが良いでしょうか。
92 :
nobodyさん
2014/10/08(水) 23:25:18.00 ID:???
>>91
プライマリーキーって動的に変えられるから、変えてからアソシエーションすりゃいいんじゃないのかな。
93 :
nobodyさん
2014/10/09(木) 18:34:02.73 ID:???
>>92
ありがとうございます。

やってみましたところ、うまくいきました。
94 :
nobodyさん
2014/10/25(土) 16:31:19.49 ID:???
愛国者と言うほど保守派でもないが、民主党に投票するほど反日ではない
95 :
nobodyさん
2014/11/04(火) 02:37:17.02 ID:???
cakeって学習コストどんなもん?
fuelと比べてつらい? 簡単?
96 :
nobodyさん
2014/11/04(火) 02:55:59.62 ID:???
XAMPP1.8.3
PHP5.5
CakePHP2.4.10

http://ameblo.jp/tondemonight/entry-10124640485.html

少し古いページですが、URLの末尾にスラッシュ(トレイリングスラッシュ)を
つけようと思い上記ページの通りに.htaccessを設定しました。
思い通りの動きにはなったのですが、何故かpostもgetもデータが受け取れなくなりました。

htaccessを理解しないまま貼り付けたため、何が原因でこういう事態になったのかわかりません。
とりあえず、htaccessを元に戻せばデータの受け渡しはできるのですが。。。

XAMPP上で上記の動きになったので、さくらインターネット環境でも
試したのですが同様の現象が発生しました。

どなたか詳しい方、教えて頂けないでしょうか?
97 :
nobodyさん
2014/11/15(土) 12:14:51.51 ID:W0Odgr3A
存在しないURLでアクセスされた際に

Missing Method in AdminController

こいうエラーメッセージが表示されてしまいます。
これを表示させない方法はありますか?

やりたい事は、もし存在しない(コントローラー等が未定義)の状態で
アクセスされたら指定したエラーページに飛ばしたいです。
98 :
nobodyさん
2014/11/15(土) 16:00:55.50 ID:???
config の debug レベルを変更
99 :
nobodyさん
2014/11/15(土) 19:52:27.40 ID:ZGSnFqpd
>>98
ありがとうございます。
100 :
nobodyさん
2014/11/15(土) 20:12:36.24 ID:VK5/2N9R
フォームヘルパーを使って以下のコードを記述すると

echo $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>
101 :
nobodyさん
2014/11/15(土) 22:46:51.55 ID:???
cakePHPのコントローラー名は

【複数形の英単語】Controller.php


という名前にするのがルールなのでしょうか?
必ず複数形にする必要があるのでしょうか?
102 :
nobodyさん
2014/11/16(日) 02:51:08.67 ID:???
>>101
ルールではない、規約だ

規約にのっとっていれば色々とフレームワークが自動でやってくれる部分が多いが、
規約から外れたとしてもなんとかする方法は(面倒臭い方法だが)用意されている

そういう面倒臭さが嫌なら大人しく規約に従っておくのが吉
103 :
nobodyさん
2014/11/16(日) 11:29:55.49 ID:88uIuRDd
>>102
了解です。
thank you
104 :
nobodyさん
2014/11/16(日) 11:31:49.43 ID:QtKRF6/y
因みにcakePHPでサイトが作成されている事を
(開発の出来る人を想定)閲覧者にばれない様に作り込む事は可能ですか?
幾らやってもばれるものでしょか?


セキュリティ的に開発に使用しているFWは隠蔽した方が良い気がしております。
105 :
nobodyさん
2014/11/16(日) 11:40:56.93 ID:???
>>104
種類がばれて問題になるようなFWは使わないほうがいい
106 :
nobodyさん
2014/11/16(日) 13:04:20.46 ID:rzwbZ1qv
>>105
一から開発するの凄く手間じゃないか
107 :
nobodyさん
2014/11/16(日) 14:58:24.60 ID:???
>>104
cakeだとわかるような部分が見つかったらその都度対応すればいい
108 :
nobodyさん
2014/11/16(日) 15:00:53.86 ID:???
cakeのセキュリティのなにが不満なのだろう?
そしてなにを満たせばセキュリティ的に合格なFWなのだろう?

セキュリティがーとかいう人間に限って知識が薄っぺらい。
109 :
nobodyさん
2014/11/16(日) 15:33:17.44 ID:I3T4ePm6
>>104

アセットディレクトリを /wp-contents/themes/*** にして、/wp-admin/ の振る舞いを偽装して
WordPress っぽくつくる。

これであまり熱心ではない開発者はWPだと思うだろ。

あとは Router というか $routes の設定をいじって、URLのパターンから推測できないようにする。
エラーメッセージの文言をすべて変更する。

まぁでも、既知の領域では隠蔽できるだろうけど、いつ何時新しい状態が現れるか分からないから完全に隠すのは難しいと思われる。
110 :
nobodyさん
2014/11/16(日) 19:46:24.87 ID:???
Cakeの1や2系で、検索サイトのDB設計したりすると遅いの?
零細企業のサイトで、たった数件の検索に毎回15秒かかってるとこがあって理解できん
作った人間が下手なだけならいいが、Cakeの問題なら仕事で使いたくない
MVCやルーティングだけFW、DBやSQLカスタマイズでセキュリティ自力対応じゃダメかね
Cake案件が多いので、企業が使いたがってるのかは知らんが、気になってしょうがない
111 :
nobodyさん
2014/11/16(日) 21:26:26.08 ID:???
まともに設計してそこまで遅くなるわけない
開発者もサーバの性能も糞すぎるとかじゃねえの
112 :
nobodyさん
2014/11/16(日) 22:24:01.26 ID:???
データが1000万行あって、トランザクションして、ソートして、メモリ足りなくて、SQLシステム共にスワップして…

だったら15秒くらいかかる。
113 :
nobodyさん
2014/11/16(日) 22:36:50.85 ID:???
そのサイトには、総数500件って書いてあるから
非表示状態のレコード含めても1000行はこえないでしょ
過去テーブルに移してなきゃ、ID番号が4万台だから最大4万行のはず
114 :
nobodyさん
2014/11/16(日) 22:40:15.89 ID:???
115 :
nobodyさん
2014/11/17(月) 18:34:09.12 ID:???
>>113
すごいエスパーだな
116 :
nobodyさん
2014/11/17(月) 20:32:45.39 ID:???
パフォーマンスの調査すらできない奴なら
何使っても一緒だわな…
117 :
nobodyさん
2014/11/17(月) 23:14:10.85 ID:84kAq3io
>>109
ありがとうございます。
118 :
nobodyさん
2014/11/18(火) 07:26:12.45 ID:BXcgCvPC
cakePHPでテーブルを定義して
<td style="width:100px"></td>

という風に列幅を指定しているにも関わらずサイズが適用されません。
なぜでしょうか?また、どうすればcakePHPを使用していても
指定したサイズに列幅調整を行う事が出来ますか?
119 :
nobodyさん
2014/11/18(火) 16:42:48.64 ID:???
idをauto_incrementにすると、1から順に増えてきますが、1001からとかってできますか?
120 :
nobodyさん
2014/11/18(火) 18:42:27.17 ID:???
>>119
それはcakeじゃなくてDBの問題。MySQLなら
ALTER TABLE テーブル名 AUTO_INCREMENT=1001
とか実行すればいいよ
まあphpmyadminとか使ってGUIでやったほうが楽だけどね

>>118
まちがいなくcakeは無関係
出力された後のことはHTMLとブラウザの解釈の問題
とりあえずは簡単なサンプルでタグの不整合だのCSSだのをチェックし直すといい
121 :
nobodyさん
2014/11/18(火) 19:07:45.09 ID:???
phpすら関係ないなw
122 :
nobodyさん
2014/11/18(火) 20:13:46.51 ID:???
>>110
インデックス貼ってないんじゃないの?
mysqlってインデックス貼らないと遅くなるの俺は最近知ったね。
123 :
nobodyさん
2014/11/18(火) 23:18:16.68 ID:72ycgRPS
Google Analytics をelementの中に定義して
次の呼び出しをしているのですがなぜか
Google Analytics に認識されません。

サイトにアクセスした直後にリアルタイムを見ていますが
アクセスが一向にカウントされないのですがなぜでしょうか?


<?=$this->element("google_analytics")?>
</head>
124 :
nobodyさん
2014/11/18(火) 23:24:02.50 ID:8pS7TyyM
>>123
だけど分かりました。単なるタイムラグでした。
125 :
nobodyさん
2014/11/18(火) 23:27:49.19 ID:???
PHP関係ない質問はよそでやれよ……
126 :
nobodyさん
2014/11/18(火) 23:34:44.64 ID:???
>>110
その遅さじゃindexどころか、innodbで↓やってるとしか思えないな

「総件数(○○件)」 SELECT count(*) FROM テーブル
「検索項目A(○件)」 SELECT count(*) FROM テーブル WHERE カラム = 'A'
「検索項目B(○件)」 SELECT count(*) FROM テーブル WHERE カラム = 'B'
「検索項目C(○件)」 SELECT count(*) FROM テーブル WHERE カラム = 'C'
127 :
nobodyさん
2014/11/20(木) 18:21:53.44 ID:CTsz5JQb
cakePHPで次の様にオーソドックスなパス配置で
システムを組んでいます。

hogeuser/apps/test_app
→アプリ本体

hogeuser/cake
→cakePHPのモジュール群

hogeuser/www/test_app
→最初にアクセスされる基本ファイル等(index.php)


hogeuser/www/image/****
→ここにAuth認証でログインしたユーザのみが画像等をアップロード出来る様な
システムを組みたいのですが、cakePHPで実現可能でしょうか?


様にしたいのですが
128 :
nobodyさん
2014/11/21(金) 01:55:20.21 ID:???
>>127
アセットのパスは CakePHP に依存せず自由だよ。
ほかの原因で権限が無いとかはあるかもしれないけど、Cake側では制限はない。
129 :
nobodyさん
2014/11/27(木) 14:38:07.68 ID:???
スマホ用のビューってどうやって管理してますか?
テーマを作るってやり方を見たのですが、
他に良い方法があれば教えてください。
130 :
nobodyさん
2014/11/27(木) 22:10:45.74 ID:???
なぜテーマが使えないのか、
あるいは何がしたいのか書かないとレスしようがないんじゃないかな
131 :
nobodyさん
2014/11/28(金) 06:59:13.03 ID:???
CSSで解決できるから、FWから見たらstaticページと扱いが何も変わらない。
Model(ロジック)の方は、特別にスマホ対応をする場合もあるかもしれんが。
132 :
129
2014/12/01(月) 13:39:14.91 ID:???
>>130
「テーマが使えない」ではなく、他に方法があれば教えてくださいという質問です。

>>131
レスポンシブデザインならCSSだけで良いのですが、
スマホ専用サイトの場合、ビューが変わるし、必要なモデルも変わります。
PC版と同じコントローラーを使って同じだけモデルを呼び出すのは
無駄な要素が大きいと思い、テーマの変更だけで良いのかな?と思いまして。
133 :
nobodyさん
2014/12/01(月) 23:10:19.10 ID:???
>>132
俺はテーマ以外考えられんな。
レスポンシブでPC、スマホの両方対応というのも無駄な処理がコントローラーに増え、重くなるし。

テーマ一択で。
134 :
nobodyさん
2014/12/02(火) 00:51:09.72 ID:???
呼び出すモデルが変わるならいっそコントローラーやアクションを分けるのもありじゃない?
アクション共通ならビューにサブディレクトリ作るだけでもいい気が
135 :
nobodyさん
2014/12/02(火) 01:45:31.11 ID:???
>>133
横レスだけどレスポンシブデザインにしたらサーバーサイドの処理は基本的には変わらないんじゃないの?
俺の勘違いかな。
136 :
nobodyさん
2014/12/02(火) 02:25:29.44 ID:???
>>135
おっしゃる通り。確かに変わりませんね。
僕のミスです。失礼しました。

レスポンシブデザインって、ちゃんとしたサイトだとPCとスマホは分けるべきだと思うんだけどな。
137 :
nobodyさん
2014/12/02(火) 06:43:53.62 ID:???
Modelが変わるとか後出しだし。
Modelが変わるなら、Viewも応じて変えた方がいいに決まってる。
138 :
nobodyさん
2014/12/04(木) 15:36:33.40 ID:R0j+bkTk
ビューのコーディングについて相談です。

Cakeで出力されるHTMLのCSS部分はローワーキャメルケースですが、
HTMLヘルパーを使用しない箇所はどうしていますか?
同じようにローワーキャメルケースで書いてますか?
それとも独自の書き方を採用していますか?
139 :
nobodyさん
2014/12/04(木) 16:07:23.93 ID:???
>>138
独自だね
140 :
nobodyさん
2014/12/05(金) 10:17:08.32 ID:???
>>139
そうですか。特にこだわらないでも良いですね。ありがとうございます。
141 :
nobodyさん
2014/12/10(水) 12:16:09.19 ID:D9PtQRCX
Cake2.5.6でappをapp-adminのように変更しています。
サーバからコマンドでシェルを実行させる場合について質問です。

シェルを実行させるパスを
/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の名前を変えても実行するにはどうすれば良いのでしょうか?
142 :
nobodyさん
2014/12/10(水) 14:34:35.99 ID:???
>>141

コンソールから起動させるのは cake.php じゃなくて cake (bash) のほうな。
143 :
nobodyさん
2014/12/10(水) 14:37:49.96 ID:???
あぁ、悪いちゃんと読んでなかったわ。
app の名前を指定するパラメータは確か -app じゃなかったかな。
-app app-admin
みたいなのをくっつければいいかもしれない。

そもそも、そんな呼び出し方する理由が分からんがな。
普通は app-admin のディレクトリに移動して Console/cake を呼び出すんだぜ。
144 :
nobodyさん
2014/12/10(水) 15:23:03.23 ID:???
-app app-adminの変更で出来ました。ありがとうございました。
145 :
名無しさん@そうだ選挙に行こう
2014/12/14(日) 19:10:29.85 ID:R4VgTAzM
cakePHPでassociationを使うと
毎回結合が走っている様です。


この条件の時には結合を走らせるけれども
この場合には、結合せずにfindする


といった事をコントローラー側で制御する事は可能でしょうか?

毎回、結合してクエリ結果を返していると、テーブルのレコード件数が大きくなってきた場合に
パフォーマンスに影響が出る事が予想れます。
146 :
nobodyさん
2014/12/14(日) 21:01:50.73 ID:???
>>145
bindModel()やunbindModel()で動的に変更するか
検索時にjoinsを使えばいい
詳しい使い方は↓に載っている
http://book.cakephp.org/2.0/ja/models/associations-linking-models-together.html

このスレの質問のほとんどはこのドキュメントで解決できるので
開発者なら他のページも一通り読んでおくことを薦める
147 :
nobodyさん
2014/12/14(日) 21:34:57.75 ID:R4VgTAzM
>>146
thanks

見てみます!
148 :
nobodyさん
2014/12/15(月) 10:55:13.83 ID:???
bindModel/unbindModel 使うんだったら ContainableBehavior でも
対して変わらないような気がする。
どっちもとんでもないクエリ吐き出すんだけどね。

joins 使えばそこそこまとも。

CakePHP3 ではかなり改善される模様。
149 :
nobodyさん
2014/12/15(月) 11:30:36.76 ID:???
自分は Containable と Matchable 併用してる。
150 :
nobodyさん
2014/12/15(月) 19:02:35.15 ID:Hxt+g1uL
アソシエーションを使うより普通にSQL書いて実行
させた方が楽な気がするのだが俺だけ?
151 :
nobodyさん
2014/12/15(月) 20:40:41.52 ID:???
短かったら楽だけど、長いと間違いの元だよ
152 :
nobodyさん
2014/12/15(月) 21:02:08.37 ID:???
CakePHPの呪文を覚えない限り、複雑なのは直接書いたほうがむしろ間違わない。
153 :
nobodyさん
2014/12/15(月) 22:12:11.75 ID:UqCW5FKL
こっちは inner join したいのに left join しやがるので
アソシエーションは好かん
154 :
nobodyさん
2014/12/16(火) 03:08:27.79 ID:???
Cakeのアソシエーションって何?
SQLをPDOとかで直に書いた方がいいの?
それともZendとかで最小限のライブラリ読み込んだ方がいいの?
何で日本人はCake使いたがるの?
英文サイト解読してlaravelとか使えないの?
155 :
nobodyさん
2014/12/16(火) 09:33:38.60 ID:???
>>153
type指定でinnerに出来るよ
156 :
nobodyさん
2014/12/16(火) 10:38:29.65 ID:MEG1C3Vr
>>155
しらなんだ!!
157 :
nobodyさん
2014/12/16(火) 17:04:45.60 ID:???
なぜ、outerがデフォルトなんだ?w
158 :
nobodyさん
2014/12/16(火) 18:15:37.65 ID:???
>>157
innerだと?と思う人がいるからだよ
159 :
質問①
2014/12/18(木) 00:17:48.32 ID:ZHBfn1LO
Console/UxnkoShell.php に対してTeraTermからシェルを実行しているのですが
原因不明のエラーが出ます。

以下のコードを実行したところ投入データに一意成約違反などない筈なのに
エラーが出てしまいます。

気になるのは、エラーメッセージに「'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);
160 :
質問②
2014/12/18(木) 00:19:48.09 ID:ZHBfn1LO
デバッグ出力した結果です。

array(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)
161 :
質問①②
2014/12/18(木) 00:39:30.54 ID:ZHBfn1LO
原因が分かりました。
162 :
nobodyさん
2014/12/18(木) 10:51:48.08 ID:???
なんだったの?
163 :
nobodyさん
2014/12/18(木) 16:27:33.17 ID:IJydX9LX
>>162
アソシエーションのプライマリキーが邪魔してました。
アソシエーション使わない方が小回りが利いて良いですね。
164 :
nobodyさん
2014/12/19(金) 19:52:59.80 ID:BHq08Q5j
Ajaxで開発をこれまで行っていましたが
毎度、ブラウザのみならずJSデバッガーを開いてJSを毎度開いてデバッグする必要があり手間なので
全てpostを行い、サーバ側でバリデーションその他を行う様にしました。

開発の生産性はAjaxと比べてどちらが早いですかね?
165 :
nobodyさん
2014/12/19(金) 22:23:30.29 ID:???
>>164
サーバー側のがいい
166 :
nobodyさん
2014/12/19(金) 23:20:57.71 ID:???
そもそもAjaxだかなんだか関係なく
サーバ側でバリデーションは必須じゃないのか……
167 :
nobodyさん
2014/12/21(日) 15:17:01.54 ID:kDlJPF64
>>165 >>166
そもそもだけど、Ajaxで is_post"ajax")って感じで
バリデーションをするとcrome上でデバッガーを開いてやらないといけないでしょ?
それが面倒なんです。


普通にPOSTで全てリクエストを行っていれば
簡単にデバッグ出来るけど、Ajaxにするとサーバからの戻り値をJavaScript側でもデバッグを
する必要があるでしょ?

それが本当に面倒に感じるんです。
168 :
nobodyさん
2014/12/22(月) 22:18:50.23 ID:???
>>167
クライアント側でのバリデーションはオマケ
クライアント側でバリデーションをやろうがやるまいが、サーバ側でのバリデーションは必須
169 :
nobodyさん
2014/12/23(火) 21:07:58.32 ID:???
composer ってさ、バージョン指定してないと全部アップデートされるじゃん。
バグの原因にならんの?不安で仕方ない。

アップデートしたくないのをjsonで削除するとファイルまで削除されるし。
170 :
nobodyさん
2014/12/23(火) 21:31:44.30 ID:???
指定しなよ
171 :
nobodyさん
2014/12/24(水) 01:58:44.52 ID:???
>>170
例えばcake2.4使ってて、中身を少し変えるとするじゃん。
で、2.4を指定してcomposerしたらどうなる?

1 同じ2.4なので何も起きない
2 同じ2.4だけどファイルが少し違うので新しい2.4を、上書きする

どっちなんでしょうか?
172 :
nobodyさん
2014/12/24(水) 08:56:59.50 ID:???
>>171
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は自己責任でやれよってことで良くないか?
173 :
nobodyさん
2014/12/24(水) 11:20:42.46 ID:???
>>172
ありがとうございます!
composer.lock初めて知りました。
見てみます。
174 :
nobodyさん
2014/12/26(金) 14:52:05.09 ID:y17exSu4
Cake2.x系でFormヘルパーを使用して以下のようなラジオボタンを出力しています。

<?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を入れるようなことはできたりしないでしょうか?
175 :
nobodyさん
2014/12/26(金) 22:05:31.40 ID:???
ただの見た目の問題なんだしCSSでやればよくない?
IE8? 知らないブラウザですね
176 :
nobodyさん
2014/12/26(金) 22:20:14.73 ID:???
>>174
そういうのは出来ないと思う。
javascript で挿入するか >>175 の言うように CSS でやるか、
レンダリング結果をパースして変換。
今なら :n-th セレクタ使えるから CSS が一番手っ取り早いだろうね。
177 :
nobodyさん
2014/12/27(土) 09:59:18.74 ID:???
>>175-176
レスありがとうございます。
やっぱりできないんですね。

仰る通り、見た目の問題ですのでCSSで制御しようと思います。
ありがとうございました!
178 :
nobodyさん
2014/12/30(火) 14:19:54.96 ID:9yoyGP6/
cakePHPで入力フォームを用意して登録ボタン押下時に
サーバにポストした場合、サーバサイドでは

入力項目においてdisabled を付けている項目は $this->request->data で取得出来ない
のは仕様なのでしょうか?
179 :
nobodyさん
2014/12/31(水) 10:07:14.07 ID:???
>>178
cakeでなくhtmlの仕様
180 :
nobodyさん
2015/01/01(木) 14:03:44.77 ID:qSREffE+
>>179
ありがとうございます。解決しました。
181 :
nobodyさん
2015/01/02(金) 09:29:55.89 ID:jgbndoA2
cake2.5.8でfacebookをつかって認証してるのですが、
デバッグモードが2もしくは1の時は問題なくログイン・ログアウトできるのですが、
0にするとできなくなります。
http://www.msng.info/archives/2010/12/cakephp-error-only-when-debug-level-is-0.php
にある$this->autoRender = false;
は入れてあるのですが、他に解決策はありますか?
182 :
nobodyさん
2015/01/06(火) 01:58:05.89 ID:???
:n-th知らなかったから試しに使ってみたけど結構便利だね
けどIE8は効かないということなんで、
IE8を対象外にするわけにもいかず結局開発では使えなかった・・・
181はもうちょっと具体的にどんな実装をしたのかとか
どんなエラーが発生しているのかとか報告しないと答えようがないんじゃないかな
183 :
nobodyさん
2015/01/06(火) 20:15:42.85 ID:???
IE8早く爆発しろ
184 :
nobodyさん
2015/01/06(火) 21:00:09.97 ID:???
IE6はようやく考えなくても良くなったけどね…
IE8はまだ15~20%ぐらいあるから、簡単には切れないよね
185 :
nobodyさん
2015/01/06(火) 21:26:44.31 ID:???
ご老体のIE8様は別枠でJavaScriptで介護して差し上げろ
186 :
nobodyさん
2015/01/07(水) 14:32:26.18 ID:???
嫌だ。もう無視する。
187 :
nobodyさん
2015/01/07(水) 20:54:00.88 ID:???
自社開発webアプリでもない限り
開発側にブラウザを選ぶ権利はなくて顧客側の要望次第だろう
今まで対応していたブラウザを切りたければうまく交渉するしかないね
IE8は全然許せるけどIE6はブラウザ界のガン細胞だと思う
188 :
nobodyさん
2015/01/09(金) 12:45:51.25 ID:NOQO6qeZ
Formでデータベースに保存した画像の表示が出来ないんだけどどうやるんだ・・・
保存した物をforeachで取り出したいけどエラー地獄だわ・・・
189 :
nobodyさん
2015/01/11(日) 14:25:23.64 ID:???
そもそも画像保存にDB使うなよ
190 :
nobodyさん
2015/01/14(水) 16:05:28.03 ID:FY0jfzBq
cakephp2を使っているのですが、URLを.htmlにすることは可能でしょうか?

http://www.hagehage.com/tururi/index.html

のような形にしたいのですが。
191 :
nobodyさん
2015/01/15(木) 00:37:14.38 ID:HkjxQN1G
>>190
多分この辺の情報が役に立つと思われ
http://stackoverflow.com/questions/3410611/how-can-i-append-html-to-all-my-urls-in-cakephp

昔調べたときは、あぁ簡単にできるんだな、ぐらいに思って一度も使ったことがないからよくわからないや。
192 :
nobodyさん
2015/01/15(木) 00:39:51.88 ID:???
読んでみたら一番上の答の人がドキュメントに詳しく載ってるって書いてたなw

http://book.cakephp.org/2.0/en/development/routing.html#file-extensions
193 :
nobodyさん
2015/01/15(木) 08:59:40.27 ID:gSrUDeRO
>>191-192
ありがとうございます!
見てみます!
194 :
nobodyさん
2015/01/15(木) 16:42:24.08 ID:+TbruyRA
View側で hidden で隠し設定した値をコントローラ側で受け取る方法はありませんか?
195 :
nobodyさん
2015/01/15(木) 17:10:54.40 ID:???
>>194
あります
196 :
nobodyさん
2015/01/16(金) 00:22:26.90 ID:???
hidden てそもそも表示は隠しつつデータを受け取るためのものだろ。。。
意味不明
197 :
nobodyさん
2015/01/16(金) 01:25:11.15 ID:K/pOgg26
>>195
どうやってやるんですか?
Ajaxだと余裕ですがcakePHPでPOSTした場合にどうしても取得出来ません。

>>196
Viewのレンダリング時にhiddenに設定した内容を登録ボタンを
押した際にサーバ再度でhidde項目の値を取得したいのです。
198 :
nobodyさん
2015/01/16(金) 04:52:36.72 ID:???
>>197
普通に取得できるだろ。

おれの読解力に問題があるのだろうが、何いってるのかさっぱり分からん。
199 :
nobodyさん
2015/01/16(金) 12:44:01.48 ID:GWt4KHXH
>>198
≪View≫
<input type="hidden" name="name_hidden" value="komaneti">

≪Controller≫
$this->request->data["name_hidden"];
⇒issetで値があるかを判定するとfalse(つまり存在しない)となります。


はたして(PHP単独ではなく)本当にcakePHPでhidden項目の
値の取得をサーバ側(Controller)でする事は出来るのでしょうか?
200 :
nobodyさん
2015/01/16(金) 13:29:28.04 ID:???
hiddenまったく関係なくてnameが間違ってるだけじゃん
正しくはこう
<input type="hidden" name="data[name_hidden]" />

普通はフォームヘルパーで書くもんだよ
<?php echo $this->Form->hidden('name_hidden'); ?>

どうしてもnameを変えたくないなら$_POSTか$_REQUESTでどうぞ
あまりにも基本レベルで理解できてないようなんで、
まずはブログチュートリアルを実際にやってみたほうがいいよ
ブログチュートリアルって何?って人はそもそもマニュアル読んでない証拠なんで問題外
201 :
nobodyさん
2015/01/16(金) 14:51:16.48 ID:???
>>200
name="data[model_name][field_name]"
じゃないの?

どっちにしてもチュートリアルやってないような奴に何言っても時間の無駄だが
202 :
200
2015/01/16(金) 15:28:30.64 ID:???
>201
199の例文に合わせただけだよ
モデル名も入れた君の例なら取得側が
$this->request->data['model_name']['field_name']
になるってだけ
203 :
nobodyさん
2015/01/17(土) 19:58:26.44 ID:???
なゆあかか
204 :
nobodyさん
2015/01/18(日) 01:38:43.72 ID:YMMCDK0S
すいませんが相談させてください。
wordpressでとあるポータルサイト(1日のPVは1,000程度)を運営しているのですが、
今後、数十万件以上(WPのカスタム投稿で)のデータを登録する予定となったので、
wordpressで構築するのは負荷的に耐えられないのかと思い、
CakePHPで構築しなおそうと思っています。

という状況なのですが、CakePHPにしたからwordpressよりも早くなるとは限らず、
むしろ遅くなる可能性もあるのでしょうか?
(フレームワークとしてCakeにこだわってはいないので、採用するのは他のフレームでも構いませんが)
ググってみたりはしたのですが、この比較対象がおかしいということもあるのか、
比較記事は見当たらず、私自身がCakeの事を本質的に理解出来ていないこともあり、困ってしまっています。
WPの中で生のSQL文を書いて、直接データ登録・取得・表示するのが良いのかなと
アホみたいな事も思い始めていますが・・・・

ちなみに私自身のスキルとしては、以下の感じです。
DB:基本的に大抵のことは出来て問題無い、テーブル結合とか検索とかの事は生のSQL文を書ける
PHP:wordpressのテーマを自分でガリガリとカスタマイズして外部からの入力フォーム・表示フォームとかは自分で作成しているが、難しい事は分からない
HTML・CSS:他サイトを見よう見まねで学んでいる状態で、ちゃんと理解出来ていない事が多い
205 :
nobodyさん
2015/01/18(日) 01:53:17.52 ID:???
>>204
お前は「そんな可能性はない」と言われたらCakePHPにするのか?
そうじゃないだろう?

だったらなぜまず試さない?
試してみて遅かったら、その原因を聞きにくるというのがやり方じゃないか?
もちろん、聞きにくるときは、それなりの情報を出しながらだが
206 :
nobodyさん
2015/01/18(日) 13:36:16.56 ID:???
>>204
CMSとフレームワークの違いがわかってないのかな?
wordpressはCMSの部類でコンテンツ管理する仕組みが既に入っているけど
cakephpみたいなフレームワークは言ってみりゃ単なる便利ライブラリ集だから
コンテンツ管理する仕組みとかは全部自分で実装しなきゃいけないよ
207 :
nobodyさん
2015/01/18(日) 17:42:38.18 ID:???
脆弱性作り込んでそう

そんなあやふやな知識で博打を打つくらいなら
DBのチューニングやPHPアクセラレータの導入などしてWordPressの高速化をはかるほうがマシだと思う
翻訳止めるだけでも結構速くなるしな

DBからの読み出しメインのサイトなら、
前段にvarnishやnginxを置いてリバースプロキシキャッシュでも使えば?
208 :
nobodyさん
2015/01/19(月) 00:27:11.87 ID:???
>>204
そもそもPHPで作るのが間違い
209 :
nobodyさん
2015/01/19(月) 18:10:55.81 ID:oaFQh/MS
2015/02/02
⇒OK

cakePHPの正規表現でこの日付型文字列の入力のみOKとするには
どういうコードを書けば良いでしょうか?


2015/2/2
⇒NG
210 :
nobodyさん
2015/01/19(月) 19:25:44.90 ID:???
>>209
cake関係ないじゃん
211 :
nobodyさん
2015/01/19(月) 19:59:44.14 ID:oaFQh/MS
>>210
どうやって判定すれば良いのでしょうか?
212 :
nobodyさん
2015/01/19(月) 20:18:16.07 ID:???
>>211
validationの方法は一通り知った上での質問なんすか?
213 :
nobodyさん
2015/01/19(月) 21:40:22.05 ID:oaFQh/MS
>>212
はい、教えてください。
214 :
nobodyさん
2015/01/19(月) 23:55:25.95 ID:???
じゃあカスタムバリデーションルール作って
public $validate = array(
 'myDatetimeCheck' => array(
  'rule' => '^[0-9]{4}\/[0-9]{2}\/[0-9]{2}$',
 )
);
みたいにすればいいのでは
このパターンはケタ数しかチェックしてないから日付には使えないけど
215 :
nobodyさん
2015/01/20(火) 00:39:05.11 ID:MQEJ/fBy
>>214
サンクス


正規表現が苦手なんだよね
216 :
nobodyさん
2015/01/20(火) 00:56:53.90 ID:???
>>215
俺も得意ではないけど頭の体操がてらやってみては

ただ実際には4/31は?とか閏年じゃ無い年の02/29は?とか言う問題が出てくるから
正規表現でもできるとは思うけど
cakePHPのVaridation::dateと二段構えにするとか
カスタムバリデーションでphpのcheckdateを通すとか工夫は必要になるかも
217 :
nobodyさん
2015/01/20(火) 13:50:15.77 ID:???
お、ひさしぶりにおもしろそうな質問発見!
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年は~のロジック入れればいいよ
218 :
nobodyさん
2015/01/20(火) 22:12:54.49 ID:uK/q/RsU
管理画面を AdminController.php として定義してガリガリコードを
書いているのですが、ソースコードの行数が増えてきて
Eclipseで編集する際にフリーズを感じます。

この様にコードが増えて来た場合には
コントローラ名を分けるしかないのでしょうか?
219 :
nobodyさん
2015/01/20(火) 22:23:48.18 ID:???
アクションの数が増えたっていう話なら
機能ないし利用するモデルごとに分ける
プリフィックスルーティングでも使えばいい

メソッド一つ一つが長くなっているなら
コンポーネントやモデルや独自のサービスクラスに処理を移すことを考える
220 :
nobodyさん
2015/01/20(火) 22:51:22.09 ID:uK/q/RsU
>アクションの数が増えたっていう話なら
>機能ないし利用するモデルごとに分ける
>プリフィックスルーティングでも使えばいい
こっちの事象です。

プリフィックスルーティングとか初めて聞きました。
こちらを探して試してみます。
221 :
nobodyさん
2015/01/25(日) 13:55:32.77 ID:???
eclipseが重いところにルーティングいじっても何も解決しないと思うのは俺だけ?
URLが変わってもいいなら、普通にコントローラ分割すればいいし、
URL変えるわけにはいかないなら、"修正中だけ"別コントローラで作って
完成したら1つに戻せばいい
大きなライブラリを使ってるならeclipseから見えない場所に移動させるとか
コーディング以外にも工夫のしようはあるだろう
222 :
nobodyさん
2015/01/25(日) 18:50:35.80 ID:???
プリフィックスルーティングの話は
複数のコントローラに分割した上でhttp://example.com/admin/から始まるURLを使いたかったらってこと
AdminControllerなんて名前をつけてるのはURLの都合だろうと思ってね

eclipseが重くなるほど1つのファイルのソースコードが増えてるってのが本当なら
1つのコントローラに管理画面の全てを詰め込む設計はまずいだろうし
223 :
nobodyさん
2015/01/26(月) 11:10:30.59 ID: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 です。
224 :
nobodyさん
2015/01/26(月) 13:32:11.28 ID:???
>>223
CakeというよりPHPのエラー通りだと思うけど

そのコントローラでPostモデル呼んでないだけじゃない?
225 :
nobodyさん
2015/01/26(月) 18:47:51.81 ID:/y+cf3Fd
cake2.5.8でプロシージャをコールし、out変数を受け取りたいんだけど、
query使ってバインド変数で受け取れますか?

Oracleでやったことのある方がいたら教えていただきたく……
Oracle以外でも、ヒントになるやもしれませんので、教えてくださったら助かります

なんでOracleなのにcakeにしてしまったのか……
226 :
nobodyさん
2015/01/26(月) 20:09:16.40 ID:OoDGdBhC
>>224
サンクス

結局プレーンなPHPを使ってアップローダを作る事にしました。
227 :
nobodyさん
2015/01/29(木) 00:13:39.62 ID:rYg0zKsM
設計について相談です。
会員登録ページやログインページのURLが
/users/add
/users/login
だとします。

会員情報の変更は、会員専用ページにログインして行えるとします。
その場合、会員情報の変更はどういうURLが適切なんでしょうか?

通常は/users/editだと思いますが、少し違和感があります。(ログイン中に操作するので)
mypagesを作ってプラグイン化して/mypages/users/editみたいにする事も出来るでしょうが、
その場合は、会員用のコントローラー(UsersController.php)がだぶる気がします。

ログイン前のページ・ログイン後のページと分ける設計の場合、
どういうコントローラーとアクション構成にすれば良いと思いますか?
228 :
nobodyさん
2015/01/29(木) 20:58:50.89 ID:???
2.xでSQLServerで使用している方いますか?

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をシングルコーテーションで囲む必要が無いのに
囲んでしまっているというのが原因のように見えますが、これを回避する方法はありますでしょうか?
229 :
nobodyさん
2015/01/31(土) 21:52:23.62 ID:r0T1vu8n
バリデーションについてです。
バリデーションエラー時のメッセージにフォーム入力の値を使いたいのでですが
以下$valueの部分はどのように書けばいいのでしょうか?

public $validate = array(
'name' => array(
'isUnique' => array(
'rule' => array('isUnique'),
'message' => $value . 'は挿入済みです。',
'required' => true,
)
)
);
230 :
nobodyさん
2015/02/02(月) 22:50:58.85 ID:???
>>229
そういうのは出来ない。view側で分岐すべし
231 :
nobodyさん
2015/02/03(火) 15:50:31.15 ID:???
>>229
コールバックbeforeValidateで処理するか、
独自のバリデーションメソッド作るか、お好きな方で。
232 :
229
2015/02/04(水) 18:25:08.07 ID:???
>>230
>>231

ありがとう。
ビューで$this->validationErrors['モデル名']のループまわすことで対応しました。
233 :
nobodyさん
2015/02/04(水) 22:31:45.65 ID:HkYqZDdt
現在、cakePHPで入力内容を保存する際にどうすれば良いか悩んでいます。
普通の文字は問題無いのですが

「"」や「>」はサニタイズしてDBに保存するのか
それとも、エスケープしてDBに保存するのか


どちらが一般的なのでしょうか?
234 :
nobodyさん
2015/02/04(水) 23:47:57.07 ID:???
>>233
HTMLエスケープのことを言ってるなら
HTML出力時にエスケープするのが定石
DB保存時にHTMLエスケープしたりはしない
235 :
nobodyさん
2015/02/04(水) 23:58:09.18 ID:???
入力内容をHTMLタグを含まないテキストとして出力する場合はそのまま保存して出力時にエスケープするべき
入力時のチェック・処理だけだとその後の処理によってスクリプトの文字列が生成される可能性があるので根本的な対策にならない
入力値サニタイジング後の値を逆手に取るセカンドオーダー攻撃なんてものもある

HTMLタグを許可する場合に根本的な対策をするには構文解析して必要な要素を抜き出す必要がある

https://www.ipa.go.jp/security/vuln/websecurity.html
ここにIPAが出してる安全なウェブサイトの作り方というPDF資料がある
クロスサイトスクリプティングの項目が参考になる
236 :
nobodyさん
2015/02/05(木) 00:01:18.00 ID:???
cakeの作法通りにコーディングしているなら、
そういった処理は特に意識しなくても勝手にやってくれる
嘘だと思うなら、ブログチュートリアルの記事追加で
君の思いつく限りの変な文字を入力して保存、表示をしてみるといい
どんな入力をしようと問題なく動作するはず

自動でやってくれないのは
・DBがEUC-JPなのに入力に①を使うとかの特殊なケース
・SQLを文字列で直接書いている
・ヘルパーを使わずに変数を出力
こういったときは自分でサニタイズ、エスケープ等が必要になる
237 :
nobodyさん
2015/02/05(木) 00:10:53.62 ID:kXXlZufE
>>234 >>235 >>236
皆さん詳しくどうもありがとうございます。

入力 > 確認 > 登録 or 戻る

の処理の一連の流を作っているのですがユーザが 「"」を入力した場合に
文字列が途中で端折られる為に、どうしようか悩んでいました。
238 :
nobodyさん
2015/02/05(木) 00:11:24.20 ID:???
ブログチュートリアルも出力時にエスケープしてるな
htmlspecialchars()のラッパーがあるから楽でいいね
http://book.cakephp.org/2.0/ja/getting-started.html#id7
239 :
nobodyさん
2015/02/05(木) 00:13:20.68 ID:???
あー、229の内容はちょっと興味があったんだけどもう解決してるのか・・・
$thisを使うためにコンストラクタで$validate定義したら一応うまくいったとだけ言っておく

てきとーに回答のなかったものにも答えておく

>>225
記事内容はMySQLだけど参考になると思う
http://blog.xole.net/article.php?id=711

>>227
正解も間違いもないような話題はリアルのチームメンバーと話し合ったほうがいいと思うよ

>>228
SQLServerは環境がないから試せないけどDBのデフォルト値を設定したくなければ
create()の代わりにclear()を使うといいかも
バージョンが古くてメソッドがない場合はcreate(false)で
240 :
nobodyさん
2015/02/05(木) 00:52:32.89 ID:mACTgUNt
$message_hoge に

「彼は"おはよう"と言った」

という文字列が含まれていたとして
確認画面で<span></span>の中に確認メッセージを表示させて

「戻る」が押された場合に、最初の画面のメッセージ入力エリア(textarea)に
ままの「"」が表示された形で

「彼は"おはよう"と言った」

を出すには、②を使う事によりうまくいきました。
ここで疑問なのですがそもそも①と②の違いは何なのでしょうか?

① Sanitize::clean($message_hoge);
② h($message_hoge);


うーん、文字列で事象の説明が難しいです。。。
241 :
nobodyさん
2015/02/05(木) 01:06:39.73 ID:???
サニタイズとかいう単語フワフワしすぎてるからもう使うのやめたらいいのになってよく思う

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
242 :
nobodyさん
2015/02/05(木) 01:12:45.87 ID:???
ていうか迷うとしたらh()とSanitize::html()だと思うのだけれど
Sanitize::clean()は全く用途が違うメソッドでしょう

http://book.cakephp.org/2.0/ja/core-utility-libraries/sanitize.html#Sanitize::html

>このメソッドは、ユーザが送信したデータをHTMLの中に表示する準備をします。
>これは、ユーザがレイアウトを壊したり画像やスクリプトを挿入することを防ぐ上で特に便利な機能です。
>もし「$remove」オプションを true にセットした場合、データに含まれるHTMLのタグ等は全て削除されます。
>false にセットした場合は HTML エンティティとして表示されます。:
>文字をエスケープすることはエラーの可能性が低く、知られていない新しいタイプの攻撃に対して強いので、文字を取り除くよりもよい方法です。
243 :
nobodyさん
2015/02/05(木) 01:26:53.54 ID:???
というか、みんなViewでの出力時は<?php echo h($data); ?> みたいにしてるの?
echoするときにh()も書くなら、いっその事、DBに保存する前にサニタイズした方が良いと思うんだが。
beforeSave()で一括サニタイズできるし。それにエスケープさせたくない場合は復元すればいいだけだし。
244 :
nobodyさん
2015/02/05(木) 01:30:01.34 ID:???
また馬鹿が増えた……
245 :
nobodyさん
2015/02/05(木) 01:34:06.94 ID:???
サニタイズ脳の恐怖
246 :
nobodyさん
2015/02/05(木) 01:34:15.37 ID:???
”また”って事は最低二人の馬鹿がいるわけだな
247 :
nobodyさん
2015/02/05(木) 01:54:17.98 ID:???
{{ data }}
248 :
nobodyさん
2015/02/05(木) 10:48:48.93 ID:???
エスケープは必要なときにかけるのが基本だぞ
DBのデータをCSV出力したいとき、逆変換するのか
DBに入れないデータを表示するときは、表示のときにエスケープするのか

デートの前、家から出るときにコンドームしてるようなもんだぞ
途中でトイレいくときどうするんだ
やる前にまたゴムするのか、2重になっちゃうぞ
ってこと
249 :
nobodyさん
2015/02/05(木) 11:04:33.13 ID:MaFLMZhc
>>248
分かり易い!サンキュー

取り敢えず、 h() で要件を満たせました。

anonymosuに狙われたら一発アウトそうなセキュリティだけどw
250 :
nobodyさん
2015/02/05(木) 17:00:36.25 ID:???
2重コンドームワロタw
251 :
nobodyさん
2015/02/05(木) 18:27:25.06 ID:???
>>248
いつ生でしても良いようにピル飲んだらいいじゃない。

ってな感覚で事前エスケープしておくのは駄目ですか?
252 :
nobodyさん
2015/02/05(木) 19:14:43.36 ID:???
>>251
その辺は過去にさんざん議論されてて、結局アウトプットのときに
対処するのがベストプラクティスだねって結論が出てるんだよ。
253 :
nobodyさん
2015/02/05(木) 20:06:21.10 ID:???
>>252
でも、うっかり忘れて妊娠しちゃう可能性もあるよ!
254 :
nobodyさん
2015/02/06(金) 00:02:00.29 ID:???
わかったわかった
挿入直前自動コンドーム装着機能を持つ
テンプレートエンジンを使えばいいだろ
255 :
nobodyさん
2015/02/06(金) 02:02:30.97 ID:???
そしたら口に入れようとしたときもゴムがついて不便だよ
256 :
nobodyさん
2015/02/06(金) 09:13:12.13 ID:???
口からでも性病感染するから付けとけよ
257 :
nobodyさん
2015/02/06(金) 21:09:55.08 ID:XFfNnVZS
パイプカットすれば?
258 :
nobodyさん
2015/02/07(土) 06:03:05.10 ID:???
なんのスレだよ
259 :
nobodyさん
2015/02/07(土) 14:20:33.66 ID:???
セーフセックスでしょ?
260 :
nobodyさん
2015/02/12(木) 19:19:14.90 ID:+z/qvGfu
cakePHPで以下の様に検索ワードが複数あったとしても
自動で or and 検索する事は出来ますか?

参考になるサイトがあれば教えてください。

name = 'A' or name = 'B'

name = 'A' and name = 'B'
261 :
nobodyさん
2015/02/13(金) 09:25:45.69 ID:???
>>260
サーチプラグインで検索
262 :
nobodyさん
2015/02/13(金) 11:24:53.34 ID:???
>>259
相手がいないんだがこのスレに女の人いる?
Cake合コンとかできないかね
263 :
nobodyさん
2015/02/13(金) 12:47:36.01 ID:trE+wwbV
>>261
cakePHPオリジナルでは出来ないですか?
264 :
nobodyさん
2015/02/13(金) 13:27:08.47 ID:???
公式ドキュメントくらい読まな
http://book.cakephp.org/2.0/ja/models/retrieving-your-data.html#id5

あと、
name = 'A' and name = 'B'
は常にfalse
265 :
nobodyさん
2015/02/13(金) 16:25:24.50 ID:???
>>262
俺女だけどしても良いわよ。
266 :
nobodyさん
2015/02/13(金) 20:17:11.72 ID:hnonnNdg
>>264
OK
267 :
nobodyさん
2015/02/14(土) 12:22:29.76 ID:riWWWAwO
ユーザーテーブル(users)の設計で相談です。cakephp2系です。
ログインする時、「ユーザー名+パスワード」と「メールアドレス+パスワード」の2パターンが主に使われると思います。
管理人は前者の方法でログインし、一般ユーザーは後者でログインします。

usersテーブルが
id|username|password|email|role|created|modified
だとして、ユーザー名を使わないログインの場合は単純にusernameをNULLにして登録すれば良いんですかね?
それか、usernameにemailの値を代入するべきですかね?
でもその場合、文字数制限のバリデーションエラーが起きる気がします。
(それはroleの分類で回避すればいいことですが)

それか、usersテーブルひとつにまとめるのではなく、分けるべきでしょうか。
どのようにするのが良いかご意見お願いします。
268 :
nobodyさん
2015/02/14(土) 12:58:10.84 ID:???
>>267
ACLとかの権限関係をきっちり作るなら
あえて管理人だけ特別扱いする必要は無いのでは
269 :
267
2015/02/14(土) 14:04:25.83 ID:???
>>268
ACLできっちりじゃなくて、単純にログイン方法を分けたいだけなんです。
270 :
nobodyさん
2015/02/14(土) 17:22:20.07 ID:???
>>269
俺ならメールアドレスパスワードに統一。
別に管理人ログインフォーム作成。
管理人フォームにはユーザー名とパスワード。
って感じにする。
271 :
267
2015/02/14(土) 17:33:06.70 ID:???
>>270
はい。自分もそのような画面設計なのですが、>>267でも質問しました通り、
テーブルをどういう構造にしたらいいか教えてほしいと思いまして・・。
272 :
nobodyさん
2015/02/14(土) 18:20:44.22 ID:???
>>271
ヌルでいいよ。
名前のところにメールアドレスなんて入ってたら
次触る人がナンジャコリヤァアってなる。
273 :
267
2015/02/14(土) 20:15:38.73 ID:???
>>272
分かりました。ではテーブル設計自体は問題無さそうですね。ありがとうございます
274 :
nobodyさん
2015/02/14(土) 21:07:46.13 ID:???
こいつのテーブル もうヌルヌルだぜ
275 :
nobodyさん
2015/02/14(土) 21:59:10.14 ID:???
フォーム分けるんだったら、テーブルも分けちゃえばいい、ってのはなしか?
276 :
nobodyさん
2015/02/15(日) 00:53:41.16 ID:???
ありだと思うよ。そもそも管理用と一般用では用途が違うからね。
277 :
nobodyさん
2015/02/15(日) 14:50:48.71 ID:1brRf+Il
cakePHP2を使っています。
ヘルパーを使ってボタンを出力しようと以下のコードを書いたところ
なぜかエラーが出てしまいます。

array() の部分を省いてボタン名だけの指定であれば動きます。
cakePHP2ではボタンにID、NAME属性を付ける事が出来ないのでしょうか?

[コード]
echo $this->Form->button("Edit",
array(
"id" => "id_hoge",
"name" => "name_hoge",
),
);

[エラー内容]
Parse error: syntax error, unexpected ')'
278 :
nobodyさん
2015/02/15(日) 16:24:05.11 ID:???
モデルとルールの違うGETパラメーターのバリデーションってどうしてる?
例えばモデル的には日付がdateカラムに入ってるんだけど
ユーザーが検索するときはyear:2014とか年号だけ指定して検索できなくて
yearが1970から2015までの値以外ならバリデーションエラーをだしたい時とか
ルールが同じならコントローラー側で動的にバリデーター呼び出すだけで楽なんだけど

>>277
配列なら最後に余計なカンマ入れられるけど
引数は最後に余計なカンマ入れるとエラーになる
279 :
277
2015/02/16(月) 02:27:00.96 ID:vJjLQ3Jt
>>278
ありがとうございます!出来ました!!
280 :
nobodyさん
2015/02/18(水) 19:23:06.50 ID:4aEt4KO0
初心者なんだけど、公式ドキュメントのここ(http://book.cakephp.org/3.0/en/controllers.html)のこのコード

// 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'))って条件の「!」いらなくない?動かしてみたらやっぱりない方がちゃんと動くし。
ここで言ってもしょうがないんだろうけど、自分の考え方が正しいのか不安だから聞きたかった
281 :
nobodyさん
2015/02/18(水) 22:49:27.06 ID:???
バージョン3ってRC2にもなってたんだ
282 :
nobodyさん
2015/02/19(木) 00:34:03.06 ID:???
次で正式版みたいだね
283 :
nobodyさん
2015/02/19(木) 01:12:24.31 ID:???
根本的に変わってるから3.1までは様子みたい
284 :
nobodyさん
2015/02/19(木) 04:45:09.33 ID:???
>>283
ここまで変わると、他の言語に乗り換えるのもありだよなあ
285 :
nobodyさん
2015/02/19(木) 17:29:51.85 ID:???
cakePHP2を使っています。
コントローラで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);
286 :
nobodyさん
2015/02/19(木) 20:21:28.79 ID:???
>>285
ごめんなさい
'order' => array('employee__name' => 'desc'),
この部分が、
'order' => array('employee__group_age' => 'desc'),
でした

よろしくお願いします
287 :
nobodyさん
2015/02/19(木) 22:14:32.35 ID:???
なんでgenderだけプレフィックスなしなんだろう……紛らわしいな
原因を断定はできないがとりあえず目についたところとしてはバーチャルフィールドの名前あってなくね?
1行目group_age、4,5行目がemployee__group_ageで揺れてんじゃん


あとこの4行目の配列の一要素目 'employee_age'じゃねーの?
Group Byに指定してない列は集計関数かませずにSELECT句にそのまま使えないでしょう
名前ダミーにすんのはいいけど正確に変換してくれよ
288 :
nobodyさん
2015/02/20(金) 10:08:11.20 ID:???
>>287
正確じゃなくてすみません

ありがとうございます、試してみます
289 :
nobodyさん
2015/02/20(金) 19:16:31.11 ID:mKx/fp25
PHPで検索した結果を元にHTMLファイルを作成しています。
生成した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になるのでしょうか?
290 :
nobodyさん
2015/02/20(金) 22:35:03.17 ID:???
CakePHP 2.6.1でCakeDCのSearch Plugin使おうとしてて
readmeに従ってつくったけど検索が機能しないです
parsedParams()をvar_dumpしてみると空だし
urlの引数が/id:10/user:hoge/とかの形式じゃなくて
?id=10&user=hogeとかになっちゃってるみたい
バグかなぁ… 英語でググったり何度かソース見返すけどわからないです…
この現象の原因わかる方いますか?
291 :
nobodyさん
2015/02/21(土) 09:54:25.08 ID:???
>>290
namedからqueryにデホルトの仕様が変わったんだよ
292 :
nobodyさん
2015/02/21(土) 14:39:47.92 ID:???
>>291
そうなんだ!動かない原因は別なのか…
もう少し探ってみます
ありがとうございまつ
293 :
289
2015/02/21(土) 14:53:33.16 ID:gR4qq4TK
誰か教えてください。
294 :
nobodyさん
2015/02/21(土) 15:38:23.20 ID:???
エディタの問題じゃねえの?
295 :
289
2015/02/21(土) 15:44:22.51 ID:gR4qq4TK
>>294
ありがとうございます。
解決しました。
296 :
nobodyさん
2015/02/22(日) 17:44:38.17 ID:???
composer 使ってる人ってこまめにアップデートしてるの?
下手にバージョン上げてもバグる原因増えるだけだと思いやってないんだけど。
297 :
nobodyさん
2015/02/22(日) 19:27:47.08 ID:???
何の為のバージョン指定だ
298 :
nobodyさん
2015/02/22(日) 21:39:50.80 ID:???
投稿フォームと投稿一覧が同じページ内にある掲示版的なものを作成しています。
入力欄が問題なく埋められていた場合、投稿フォームの「投稿」ボタンを押すと、コントローラーのaddが呼ばれてその投稿が追加されindexにリダイレクト、という動きはなんとかできたのですが、
入力欄の入力をバリデーションして不正なものがあった際に、indexのページ内の投稿欄にそのことを示すメッセージを表示するようにする方法がわかりません。
唯一思いついたのは、addのビューを投稿欄のみにしておいて、indexのビュー内からiframeで呼ぶことくらいです。
どなたかご教示頂けると幸いです。
299 :
nobodyさん
2015/02/23(月) 00:25:29.64 ID:???
>>298
投稿欄部分をajaxで書き換え
300 :
nobodyさん
2015/02/23(月) 01:14:35.54 ID:???
>>299
ありがとうございます。調べるうちに、バリデーションエラーの内容をセッションに書き込んでリダイレクト先でセッションから読み出して代入、という方法も見かけたんですがこっちの方がずっとスマートですね。
というか結果的にcakephp関係ない質問になってしまって申し訳ないです。
301 :
nobodyさん
2015/02/23(月) 08:49:31.17 ID:???
>>300
俺はいつもindexに書き込み処理をつけるね。
そういう場合。
302 :
nobodyさん
2015/02/23(月) 12:35:39.33 ID:???
MVCについてイマイチ自分が理解してないのもあって、てっきりcrudの4機能は別のメソッドに書かなきゃならないものなのかと思っていましたが、そうすれば全部解決なんですよね。
実は今回やってるものが非常に特殊なケースで、IE6対応も切り捨てられないため、ajaxでやろうとして困っているところでした。
303 :
nobodyさん
2015/02/23(月) 13:57:46.86 ID:qtvdKJqN
>MVCについてイマイチ自分が理解してないのもあって、
馬鹿
304 :
nobodyさん
2015/02/23(月) 14:33:46.89 ID:3dGVU3d0
文字コードをUTF-8からSJISに変換したつもりなのですが
以下コードを実行すると、なぜか取得した文字コードが空文字に
なってしまいます。何が原因なのでしょうか?


【コード】
//文字を設定
$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:[]
305 :
nobodyさん
2015/02/23(月) 14:59:54.92 ID:???
>>304
autoじゃなくてUTF8を指定すべきじゃないかな。
あとはphp.iniで指定してる内部文字エンコーディングとかでも変わってるくるからね。
306 :
nobodyさん
2015/02/23(月) 15:07:53.87 ID:3dGVU3d0
>>305
UTF-8 を指定してもダメでした。
307 :
nobodyさん
2015/02/24(火) 21:03:39.17 ID:???
cakephp形式のURL配列で
hoge/fuga/hoge2
まで指定したい場合はどうしたらいいんでしょう?
controller=>hoge,action=>fuga,のあと、hoge2にあたる部分の指定の仕方がどうにも見当たりません。
308 :
nobodyさん
2015/02/24(火) 22:00:31.14 ID:???
すいません、自己解決しました。
最後のhoge2に当たるところで数字を使っていたのがどうもよくなかったみたいで、文字列に変えたところ、actionを指定した後にカンマを打ってそのまま書くだけでうまく行きました。
でもコントローラからstrvalしてビューに渡してもなぜかビューではint扱いされるんですね。
309 :
nobodyさん
2015/02/26(木) 17:58:39.07 ID:36YMsn8X
2.5.8を使っています。Viewの場所をコントローラーで変更できないでしょうか?
/app/View → /app/webroot/templates

みたいに、Viewファイルが存在するディレクトリを変えたいです。
310 :
nobodyさん
2015/02/26(木) 22:07:17.99 ID:???
>>309
core.phpにビューのディレクトリ指定してる部分がある
311 :
nobodyさん
2015/02/26(木) 23:30:44.40 ID:36YMsn8X
>>310
bootstrap.phpにあった
App::build(array('View' => WWW_ROOT . 'templates/'));
を、コントローラーのbeforeFilter()に追加したら出来ました。
ありがとうございました。
312 :
nobodyさん
2015/02/27(金) 01:42:29.56 ID:YC5Ps1qe
echo mb_detect_encoding($str_output); ・・・①
$str_output = mb_convert_encoding($str_output,"UTF-8","ASCII");
echo mb_detect_encoding($str_output); ・・・②

文字列をUTF-8にコンバートしているのですが
上記コードを実行しても一向にutf-8になりません。


常にASCII が返ってきます。
何が原因なのでしょうか?
313 :
nobodyさん
2015/02/27(金) 01:59:37.38 ID:???
マルチバイト文字で試してる?
314 :
nobodyさん
2015/02/27(金) 05:01:23.09 ID:YC5Ps1qe
>>313
半角英数字です。
315 :
nobodyさん
2015/02/28(土) 14:46:39.93 ID:IfvfAmZV
海外のレンタルサーバでphpを実行したんですが
以下の様なエラーが出ます。

何が原因なのでしょうか?

UID of script is smaller than min_uid
316 :
nobodyさん
2015/02/28(土) 14:56:54.33 ID:IfvfAmZV
315
自己解決しました。
317 :
nobodyさん
2015/03/02(月) 20:14:31.17 ID:/EFmk8QS
助けてください。

value serverが糞過ぎです。

cronを設定しても動きません!!もしvalue serverで正常に動作させる方法が載っているHPを

ご存知の方がいらっしゃいましたら教えてください。
318 :
nobodyさん
2015/03/02(月) 22:25:23.88 ID:???
スレチ
319 :
nobodyさん
2015/03/03(火) 07:45:40.08 ID:???
>>317
どうせ設定ミスだからまず最初にローカルで動作確認してから
同じ設定をvalueserverに張り付けた方がいい
レンタルサーバーでいきなりcron動かすのは問題点特定しにくいから鬼門
320 :
nobodyさん
2015/03/03(火) 09:37:28.36 ID:???
環境構築面倒くさがってレンタル鯖でテストするやつもいるからなあ
今ならビルトインサーバで一発だし今回みたいなケースもxampp使えばすぐなのに
321 :
nobodyさん
2015/03/06(金) 00:22:12.48 ID:???
3.0のドキュメントって英語版もまだだいぶ不親切だな
saveallがやってた動きがどうにも再現できん、難しいこと全然やってないのになあ
322 :
nobodyさん
2015/03/06(金) 01:05:40.10 ID:???
cakephp1で動いてるサイトあるんだけど、機能を追加したい。
3ヶ月かけて作ったサイトなんだけど
2でリニューアルすべき?
みんなならどうする?
323 :
nobodyさん
2015/03/06(金) 07:38:23.90 ID:???
1と2や3は修正点多いから、コスト安くするなら1のままで機能追加したいかな、
CakePHP以外にもPHPのバージョンを5.x系の最新にする手間もあるし

バージョン上げるなら、3がRC版がリリースされたので3に上げたい、
だけど上げるとしても機能追加とバージョンアップ作業は別々にした方が安心、
同時だとCakePHP、PHPのバージョンアップ、機能追加とやる事多過ぎで混乱すると思う
324 :
nobodyさん
2015/03/06(金) 10:32:09.44 ID:???
>>323
ありがとうございます!
325 :
nobodyさん
2015/03/07(土) 00:01:00.07 ID:4wJwCx0B
すごいプログラミングを考えた!どうよ?
http://fox.2ch.net/test/read.cgi/poverty/1425651890/
326 :
nobodyさん
2015/03/12(木) 11:53:15.78 ID:???
独り事だけど、setFlashってめちゃくちゃ便利だな。
セッション使うから嫌って変数を作ってたんだが、setFlashだけで良いことに気づいた。
elementも指定できるから、処理が成功/失敗のHTMLを出力することも出来るし、ビューに無駄な箇所が減る。
327 :
nobodyさん
2015/03/12(木) 14:39:44.54 ID:???
リダイレクトさせるとデバッグしにくいから$this->flashばかり使っちゃってる
328 :
nobodyさん
2015/03/13(金) 13:31:35.39 ID:qp4/hKaL
Configure::write('Session.cookie', 'CAKEPHP');でクッキー名を指定できますが、
FooControllerのAuthでは'FooCookie', BarControllerのAuthでは'BarCookie'のように
クッキーの名前だけ分けたいのですがどこで指定すればよいのでしょうか。
お願い致します。
329 :
nobodyさん
2015/03/13(金) 20:39:40.33 ID:???
セッションクッキーをコントローラーで分けるというのはそもそもの実装方針が危うそうだが…
あえてやるなら各コントローラーのbeforefilterかな
330 :
nobodyさん
2015/03/14(土) 12:38:08.43 ID:???
これから新規で開発しようと思うんだけど
3使うのってまだ早いですかね?

公式ドキュメントも日本語訳まだ整備されてないですよね
331 :
nobodyさん
2015/03/14(土) 15:21:12.60 ID:???
cakephp使ったことないけど3系になったら
使ってみたいわ
332 :
nobodyさん
2015/03/14(土) 17:04:29.47 ID:???
ドキュメントが日本語になってないことより、ドキュメントに書いてないことを調べる術が少ないのが困るな
ドキュメントに書いてないことが多いのはいつものことなんだけども
333 :
nobodyさん
2015/03/14(土) 18:33:04.60 ID:FIB+Mu1T
Cake2.5.8を使っています。ユーザー(ログイン機能を持つ)が複数ある場合の
アソシエーション構成について悩んでいます。
テーブルは以下になります(重要な箇所以外省いています)

■ユーザーテーブル(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で
どのテーブルを取得するか選ぶ方法も考えたのですが、
その設計が正しいのか否か分かりません。

どういうモデル構成でどうアソシエーションを組めば良いか
アドバイスください。お願いします。
334 :
nobodyさん
2015/03/15(日) 22:01:54.15 ID:???
>>333
自分ならusersに会員タイプ判断用のtypeフィールド追加して、その値によって動的にcontainさせる
hasoneアソシエーション自体は三つとも設定しておく

あと実際の運用でこの程度のフィールド数なら
タイプごとにテーブル分けなくてもいい気がするけど
省略してるフィールドが多いならこのテーブル構成でいいと思う
335 :
nobodyさん
2015/03/16(月) 08:32:28.20 ID:???
3を触ってみてるんだけど、複数のフォームから送信されたデータをエンティティに変換する方法がよくわからない
newEntities()で一発変換できるって書いてたんだが、それだとformのcreateには何渡せばいいんだ?まずnewEntityしたのを渡してからpostが飛んできたらpatchEntitiesって感じにすると返り値が変な配列になるし
336 :
333
2015/03/16(月) 10:52:24.28 ID:???
>>334
やっぱりContainする方法がベストですかね。ありがとうございます。

あと、省略しているフィールドは多いですね。
1テーブル20ぐらいありますし、後に増える可能性もあります。
パスワード再設定用のテーブルや退会した理由をを保存するテーブルなど
ユーザー+共通テーブルがいくつかあるため、分ける形を採用しました。
337 :
1/2
2015/03/16(月) 14:25:07.97 ID:???
findの際の遠いアソシエーションでのconditionsについて質問です。

◆ 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で絞り込みたい

続く
338 :
2/2
2015/03/16(月) 14:26:08.03 ID:???
$this->Item->find('all', array(
'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を取得することで一応は解決しましたが、
あまりスマートに見えませんし、更に離れたアソシエーションだと難儀しそうです。

上手いやり方もしくは根本的な考え方の違いがあるのでしょうか?
シンプルそうなのに検索しても解決策がみあたらず、困っています。

よろしくおねがいします! 👀
339 :
nobodyさん
2015/03/16(月) 18:24:40.64 ID: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&amp;message_id:1

どちらにしろメッセージを投稿する時はbbs_idを保持しなければいけないので、
Aパターンでも良い気がしますが、Bの方が関係性は明確です。

どの形で良いかご意見ください。
340 :
nobodyさん
2015/03/16(月) 23:44:21.41 ID:L8XNWzC1
>>337-338
1個先のアソシエーションで条件指定する場合は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でアクセスできるようにするのがいい
341 :
339
2015/03/17(火) 00:48:50.89 ID:???
>>340
>ルーティングとコントローラー/モデルを切り分けて考えた方がいい

という一文でハッとしました。
確かにURLはルーティング次第でどうとでもなりますよね。
1つのコントローラーでまとめるのではなく、
シンプルに目的に応じたコントローラー・アクションを作ります。

ありがとうございました!
342 :
nobodyさん
2015/03/19(木) 14:00:57.78 ID:???
ビッ○カメラ札幌店の副店長の佐藤伸弦が暴行事件が起きていた

佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦

佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦

佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦

佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦

佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦
343 :
nobodyさん
2015/03/20(金) 01:10:50.26 ID:ScoidpU5
エクストリムサーバを使っています。
現在

php で mkdir コマンドを実行してもディレクトリがなぜか
作成出来ません。

mkdirの戻り値が false になってしまいます。

何が原因なのでしょうか?
344 :
nobodyさん
2015/03/20(金) 14:15:11.15 ID:???
>>332
元のソースを追っかける癖をつけとくと捗るぞ
マニュアルでピンと来なくてもソース見れば、なーんだってことは良くある
345 :
339
2015/03/20(金) 16:27:02.68 ID:fjnzAr64
Cakeの命名規則ってどこまで忠実に再現してますか?

Class名をキャメルケース、関数をキャメルバックで書くのは分かるのですが、
変数もキャメルバックで書くのは抵抗があって、
スネークケース($foo_bar)にしています。
346 :
nobodyさん
2015/03/20(金) 23:35:07.93 ID:???
>>343
権限

>>345
2系まではわりと適当だけど3系になってからPSR準拠になってるし少しずつ従っていった方がいいよ
俺はmysqlとかjsとの連携を考えるてずっと変数はスネークケースでやってきたけどそろそろ潮時かもしれん
phpcsでたくさん例外作るのも面倒だしね
でもインデントがスペース四つなのは未だに納得できない
347 :
345
2015/03/21(土) 01:58:13.22 ID:???
>>346
1つのサイト作るのに色んな命名規則使うから悩みますよね。
CSSやJavascriptでもそれぞれ必要とされる規則は違うし。

ただ、変数にキャメルバックはどうも違和感があるんですよね・・・
キャメルバックにする分、文字数が減って見やすくなるとは思うんですが。
あと、インデントはスペース4つではなく2つにしてます。さすがに4つは長いかと。

という事を考えると、色々とCakeの規則から逸れてしまいますね・・。
348 :
nobodyさん
2015/03/21(土) 14:40:09.68 ID:???
自分の経験で規則から逸らしたくなるようじゃ
経験が足りないってことなんだよw
349 :
nobodyさん
2015/03/21(土) 14:58:23.21 ID:???
経験があるからこそ規約に疑問を持つのだろう
PSR通りにコーディングするのは今日からプログラム始めた素人にもできる

みんなが疑問持ちながら好き勝手に書くと良くないから
グループ開発の指針としてコーディング規約があるにすぎない
350 :
nobodyさん
2015/03/21(土) 15:14:19.63 ID:???
経験が「ない」からじゃなくて「足りない」からね

大勢が使う何かの規約を責任持って作ったことがあれば
それからわざわざ逸そうなんて思わないってこと
351 :
nobodyさん
2015/03/21(土) 16:42:25.47 ID:???
4スペースで見辛いって、どんなコードを書いてるのか気になる
352 :
nobodyさん
2015/03/21(土) 20:42:49.66 ID:???
>>350
グループ開発ならコーディング規約は大切だけどcake使ってるからcakeの規約を必ず採用しなければいけないわけじゃないと思うけどな
もちろんコアは必ず規約に従うべきだけどapp以下は規約推奨という程度だよ

>>351
タブインデント支持なんだろ
353 :
nobodyさん
2015/03/22(日) 00:28:55.54 ID:???
CakePHPを始めたばかりです。ちょうど知りたかった内容なので.


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は「タブインデントが正解」で良いのですよね?
354 :
nobodyさん
2015/03/22(日) 01:51:28.83 ID:???
>>353
cakephpcsは最新版だとcakephp3の規約準拠なので2系使ってる人はこっちの古いバージョン使ってね
ってREADMEに書いてあった
cakephpは2系はタブインデントで3はスペースインデントに変わってる
355 :
353
2015/03/22(日) 05:08:44.10 ID:???
>>354
感謝です。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って大丈夫なのでしょうか。
 何を信じて良いんだろ~
356 :
nobodyさん
2015/03/22(日) 14:35:05.61 ID:???
3.0の日本語版はほとんどのところが未翻訳か2.0の内容のままだし
正式リリースもまだだしそんなもん
357 :
nobodyさん
2015/03/22(日) 16:16:39.32 ID:???
お客様根性って奴ね

Found an issue? Submit a correction on GitHub
358 :
nobodyさん
2015/03/24(火) 21:25:37.75 ID:???
いつの間にか3のstableでてるやん
359 :
nobodyさん
2015/03/24(火) 22:27:39.16 ID:???
>>358
ここまで違うと3にするか、他に乗り換えるか迷うよね
360 :
nobodyさん
2015/03/24(火) 22:51:32.29 ID:???
新規案件もしばらく2だろうなー
今回は1から2のインパクトより大きい
361 :
nobodyさん
2015/03/25(水) 10:40:02.23 ID:???
実際、まだ1.3で稼働しているサイトも一杯あるだろうし、
新規案件とはいえ、なかなか変えられないわな
362 :
nobodyさん
2015/03/25(水) 22:03:40.40 ID:nkhbQP1f
Bbs→(belongsTo)→User→(hasOne)→Profile

こういう関係のテーブル構成でfindをrecursive=>2でfirst取得すると、
array(
[Bbs] => array()
[User] =>Array(
 [Profile] => Array()
))

こんな感じの配列になるのですが、Userの中に入れない方法って無いでしょうか?
つまり、$data['User']['Profile']['name']ではなく、
$data['Profile']['name']だけで参照させたいです。
363 :
nobodyさん
2015/03/25(水) 23:13:38.47 ID:???
362です。自己レスですけど、joins使うのが一番みたいですね。
全部アソシエーションで出来たらと思ったのですが無理なので、
joinsを使って対応します。
364 :
nobodyさん
2015/03/26(木) 21:56:46.58 ID:???
確認画面などで出力する時、h()でエスケープしてます?
それともsave時点でエスケープします?
365 :
nobodyさん
2015/03/26(木) 23:26:01.65 ID:???
出力する時にエスケープが一般的だと思う
366 :
nobodyさん
2015/03/27(金) 00:53:05.30 ID:???
入力データはいじらずに保存しておくべし
何に使うことになるかわからんからな
367 :
nobodyさん
2015/03/27(金) 12:05:56.79 ID:???
無知で申し訳ないんだが、
入力時点でエスケープやサニタイズしなくても
Cake使ってる上ではセキュリティ的には問題ないんだよね?
368 :
nobodyさん
2015/03/27(金) 20:44:33.33 ID:???
cake3でだいぶ良くなったらしいね
Laravelが流行だどうこう言ってますけど

結局、cakeとcodeigniter学んでおけばいいっしょ
369 :
nobodyさん
2015/03/27(金) 22:21:52.83 ID:/GK6nVHi
日本時刻が【2015/03/27 22:18】で海外サーバ(Lunarpages)で
PHPを実行し、日本時刻を表示しようと以下のコードを書きました。

【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)


実行した結果、時刻が日本時間とかなりずれているのですがどこが間違っていますか?
370 :
nobodyさん
2015/03/27(金) 22:27:30.43 ID:???
質問するスレが間違っています。
371 :
nobodyさん
2015/03/27(金) 22:39:55.31 ID:???
過疎っていたのでPHP繋がりでここに質問しました。
教えてください。。。
372 :
nobodyさん
2015/03/28(土) 11:31:26.66 ID:???
そのサーバーのphpのタイムゾーンを表示させる
そのサーバーの現在時刻を表示させる
時刻計算してGMTを表示させる
時刻計算してJSTを表示させる

この手順でうまくいかなければ諦めろ
はい、この話は終わり
373 :
nobodyさん
2015/03/28(土) 15:51:44.79 ID:???
>>372
試してみます。
374 :
nobodyさん
2015/03/28(土) 15:56:09.33 ID:???
jQueryしか使っていないのにJavaScriptをcromeでデバッグすると
init.js というスクリプトがデバッグされていますが
なぜこんな自分で読込もしていない様なスクリプトが読み込まれているのでしょうか?


※javascriptのスレッドが見つからなかったので人が一番多そうなここで
質問させてもらっています。
375 :
nobodyさん
2015/03/28(土) 17:42:04.24 ID:???
Web制作板の専門スレの方が人が多いよ。

はい、この話は終わり
376 :
nobodyさん
2015/03/29(日) 01:04:03.61 ID:???
なんか、後々「CakePHPとかいうオワコンフレームワークを使ってるやつらはこの程度の質問にも答えられない低能だったんだなw」
みたいな煽りをするための材料作りに来たような感じ
377 :
nobodyさん
2015/03/29(日) 16:04:33.31 ID:???
Cake3、悪くはないんだけど一年半くらい遅かったなという感じ
378 :
nobodyさん
2015/03/29(日) 19:57:31.43 ID:???
どういう意味?
379 :
nobodyさん
2015/03/29(日) 20:26:31.18 ID:???
どうせDDD信者だろ
380 :
nobodyさん
2015/03/30(月) 23:11:34.93 ID:???
共用サーバでServer Queenをかりたのですが php が使えません。。。

どうすればPHPが使える様になりますか?

マニュアルが古すぎて設定が出来ないです。
http://www.serverqueen.jp/cs/startup/zoomimg/shared_php01.html
381 :
nobodyさん
2015/03/30(月) 23:42:44.98 ID:???
スレ違いというか板違いというか2chで聞くことじゃない
なんで最近こういうのが増えたんだ?
382 :
nobodyさん
2015/03/31(火) 02:02:19.81 ID:???
ひそかにドッ○インストールとかのせいだとおれは思ってる
いまのとこ誰も賛同してくれてないけどな
でもあると思うんだよなぁ
383 :
nobodyさん
2015/03/31(火) 05:51:02.97 ID:???
>>382
なんで関係あるの?
384 :
nobodyさん
2015/03/31(火) 10:08:31.38 ID:???
>>382
俺は春だからと思うよ
385 :
nobodyさん
2015/03/31(火) 11:14:53.43 ID:???
>>383
1:初心者がタダでプログラミングを学ぼうとする
2:ドッドインストールというサイトを見つけて勉強する
3:しかし、基本的なことをちょっと紹介してるだけなので、何が必要か分からない。
4:知恵袋や教えてgooで質問するのは手間がかかる
5:「そうだ!2ちゃんねるなら会員登録が必要ないし、大勢居るから教えてくれるだろう!」
6:適当に板名を見てWebProg板を探すも、どのスレに質問していいかわからない
7:「ま、スレタイにPHPってついてるし、上の方にあるからこのスレでいいやろ」

って感じだと予想
386 :
nobodyさん
2015/03/31(火) 11:25:28.40 ID:???
>>385
なるほどそういう意味か
387 :
nobodyさん
2015/03/31(火) 15:33:31.65 ID:???
schooとかドットインストールとか
動画学習系のあるけど、やってみてわかったけど動画学習は効率悪い

気分的にやった感はすごいあるけど
388 :
nobodyさん
2015/03/31(火) 15:53:01.22 ID:???
10年ぐらい前、WAVEというスクールに40万ぐらいだして通ってたが、
そこが作ったDVDを再生しながら同じように入力する程度で、全く身に付かなかった。
あれなら3000円ぐらいの初心者本買って、その通り作る方がマシだわ
389 :
nobodyさん
2015/04/01(水) 00:49:18.74 ID:???
ドットインストールの管理人すごいよな
知識豊富すぎだろ
390 :
nobodyさん
2015/04/01(水) 10:35:00.70 ID:???
そりゃー >>389 より知識は↑だろ。
391 :
nobodyさん
2015/04/01(水) 10:37:36.77 ID:???
1テーブル(1登録画面)に入力箇所が30ぐらいあるのですが、
毎回、動作テストの度にフォーム入力していくので面倒です。

こういう時ってCakeのテスト機能を使うのでしょうか?
いまいち、テストの使い方がよくわからないので教えて下さい。
392 :
nobodyさん
2015/04/01(水) 17:00:09.59 ID:PiSv1kDp

馬鹿まるだし
393 :
nobodyさん
2015/04/01(水) 21:48:03.44 ID:PiSv1kDp
テストやでぇ~

aiueo<br><br>
,
&
394 :
nobodyさん
2015/04/01(水) 22:47:15.60 ID:???
>>391
手を抜きたいのならフォームのオートコンプリート系アドオン
ちゃんとやるならテスト
395 :
nobodyさん
2015/04/01(水) 23:37:29.02 ID:???
>>394
ちゃんとやりたいのですが、どうやってテストを作ればいいか分かりません。
せめてググり方だけでも教えて下さい
396 :
nobodyさん
2015/04/01(水) 23:56:21.88 ID:PiSv1kDp
>>395
とりあえず舌をおもいっきりかめばいいと思うよ
397 :
nobodyさん
2015/04/01(水) 23:56:38.03 ID:???
>>395
cakephp phpunit
398 :
nobodyさん
2015/04/02(木) 00:50:20.30 ID:???
>>396
おもいっきり噛んだら死ぬだろwwwww
399 :
nobodyさん
2015/04/02(木) 04:06:35.84 ID:???
>>398
その方がいいとおもうんだよ。
400 :
nobodyさん
2015/04/02(木) 10:32:15.69 ID:???
>>399
分からないことを教えてっていうだけで舌噛めとかwwwwww
401 :
nobodyさん
2015/04/03(金) 18:37:35.13 ID:???
パンくずとかMETAの内容をビューから設定するのって、ちょっと違和感ある。
かと言ってコントローラーで設定するのも悩む。
402 :
nobodyさん
2015/04/03(金) 22:48:02.25 ID:???
>>401
構造だけコントローラーで渡して表示はビューでやればええやん
403 :
nobodyさん
2015/04/03(金) 23:32:55.11 ID:???
ディスク容量の制限の無いオススメのサーバはどこですか?
海外サーバを希望です。
404 :
nobodyさん
2015/04/03(金) 23:37:54.15 ID:???
>>402
どういうこと?例えば

ホーム > ネット関係 > WebProg

だとして、この流れをコントローラーから配列を作成してsetし、
ビューでヘルパーから読み込むとか?(俺はそうしてた

でも、ページ毎のタイトルをDBで管理しない限りは、
コントローラーに直接書かなきゃいけないからなぁ
DB管理していないページもあるし。
405 :
nobodyさん
2015/04/03(金) 23:53:39.12 ID:???
>>404
そんな感じ
二階層までならコントローラー名とアクション名に準じたタイトルでパンくず作ってあげてもいいかも
それ以上の階層はdbなりconfigure使うしかないんじゃないかなー

>>403
AWSっていう海外サーバーならお金払えば払っただけ無制限にディスク使わしてくれるらしいよ
406 :
nobodyさん
2015/04/04(土) 00:40:37.59 ID:???
>>405
404だけど、やっぱりそうか。ページ名をどこで管理するかが問題なんだよなぁ。
DB使うと、簡単なページを追加した時でも、DBに追加する必要もあるし。
407 :
nobodyさん
2015/04/04(土) 15:50:08.18 ID:???
Cake3のお勉強でもしようと思ったんだけど
インストールするのにComposerとかみんな使ってんの?
色々知らないことが増えてる…
408 :
nobodyさん
2015/04/05(日) 01:16:56.44 ID:???
cake2で構築してるシステムを今さら3にアップするのは
やっぱりリスキーだよね?
409 :
nobodyさん
2015/04/05(日) 02:17:41.58 ID:???
趣味なら良いと思うが、運用中で、しかも会員サイトなら他人に迷惑かかるから止めたほうが良いと思う
410 :
nobodyさん
2015/04/05(日) 04:14:01.43 ID:???
既存のcake2システムをcake3にアップか
おれならお断りする案件だな
411 :
nobodyさん
2015/04/05(日) 15:06:11.90 ID:???
>>409 >>410
いや、結構ガチガチの会員サイト


安定しているシステムなのにこれをcake3に置き換えてボコボコになりそうで怖いです。

VB6.0→VB.net へのリプレースみたく大変な事になりそう。
412 :
nobodyさん
2015/04/05(日) 17:50:15.66 ID:???
ボコボコになるだろうな。情報も少ないし、困った時も解決しづらい。
413 :
nobodyさん
2015/04/06(月) 12:01:41.30 ID:???
joinsで直接結合すると、afterFindって効かないんですね。(Cake2系で)
プライマリーキー以外で結合する必要があるから
アソシエーションじゃなくてjoinsに書いてるけど、その点だけが困る。
414 :
nobodyさん
2015/04/06(月) 21:23:28.83 ID:???
>>413
updateallするんでなければpkeyを動的に切り替えた方が楽だよ
415 :
nobodyさん
2015/04/06(月) 21:52:45.80 ID:???
>>414
結合させるモデルの両方共プライマリーキーじゃないんです。
なので、動的切替は無理かと。
416 :
nobodyさん
2015/04/07(火) 21:18:58.02 ID:???
>>415
いけるいける
primarykeyとforeignkey切り替えれば
まあ素直にjoinした方が見通しいいかもしれないけど
417 :
nobodyさん
2015/04/08(水) 10:25:46.98 ID:???
>>416
どうやっていけますか?

User→Profile
User→Bbs
Bbs→Entry

というモデル設計で、BbsとEntryをhasOneで繋ぎつつ、
Bbsのuser_idとProfileのuser_idを結合したいのですが。
418 :
nobodyさん
2015/04/08(水) 22:50:18.86 ID:???
>>417
そういう構成なら直接結合しないでUser経由して結合した方がいいよ
深い結合については>>340あたりを参照
419 :
nobodyさん
2015/04/09(木) 00:21:50.88 ID:???
>>418
分かりました。難しいですが勉強します。ありがとうございました。
420 :
nobodyさん
2015/04/09(木) 00:40:19.67 ID:???
>>418
413=415=417=419ですが自己レスです。
joinsを使ってもUser経由で結合してもそんなにSQLの回数は変わりませんね。
強いて言うなら、$data['User']['Profile']['name'];
みたいに多次元配列になるのが煩わしいだけでしょうか。
joinsの場合は、$data['Profile']で書けますが。

よほど深い階層になる場合や複雑なSQLでない限り、
極力、joinsは使わないようにします。色々と教えていただきありがとうございました。
421 :
nobodyさん
2015/04/09(木) 01:19:01.76 ID:???
414,416,418ですがいくらなんでも行動と理解が早すぎると思いました
422 :
nobodyさん
2015/04/09(木) 14:29:29.47 ID:???
多重配列になるのが嫌なら、それこそafterFindで調節する手もあるな。
どちらにしろフレームワーク使うんだから、後々修正しやすい方がいい
423 :
nobodyさん
2015/04/13(月) 14:41:46.28 ID:kiqQUtSe
会員専用ページ(マイページ)の設計について悩んでいます。

core.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のみで切り替えるのか
どれが良いか悩みますので、作り方に法則のようなものがあれば教えて下さい。
424 :
nobodyさん
2015/04/13(月) 22:48:51.65 ID:???
>>423
editとかのページはauthコンポーネントのallow使って制御した方がいい
detailをprefixで振り分けてるのは悪くはないけどそこまで表示内容に違いがないのならprefix使うまでも無い気がする
425 :
nobodyさん
2015/04/14(火) 11:10:39.83 ID:???
>>424
つまり、わざわざmypageというprefixやコントローラーを作るのではなく、
各アクションにアクセス制限(authのallow)をするだけでいい

ってことですかね?それが一般的ならそうしますが、
どうもログイン後のページって、adminとかmypageを付けるような気がするんです。
決まりがあるわけじゃないでしょうが、ググってもそういう情報が多くて・・・
426 :
nobodyさん
2015/04/14(火) 11:13:26.07 ID:???
あと、>>423の以下の例は間違いでした。

例)会員ではない人が日記を閲覧
/diaries/detail/1 →DiariesControllerにmypage_detailを追加

/diaries/detail/1 →DiariesControllerにdetailを追加
(誰でも閲覧できるから、prefix必要ないです)
427 :
nobodyさん
2015/04/14(火) 22:26:08.70 ID:???
>>425
規模が大きくなるのならログイン必須であることを明示するためにもprefixあった方がいいかもだけど
一人で小規模でやるなら分けるほどでもない
428 :
nobodyさん
2015/04/14(火) 23:14:54.67 ID:???
>>427
どの程度が「規模が大きい」から図りかねるのですが、
モデルが50ぐらいあるなら大きいって認識でいいですかね?
前述した通り、「一般的なベターなやり方」を教えて欲しいのですが・・・
429 :
nobodyさん
2015/04/14(火) 23:40:26.26 ID:???
>>428
モデルというよりコントローラーの数によるだろうけど、それだけでかけりゃ分けた方がいいよ

一般的にベターとか言われも、例えば規模が本当に小さければcakephpなんて使わずに
phpの1ファイルで実装した方がいい場合もあるわけだし
規模感無視して一般的な話をしようとしても無理だよ
430 :
nobodyさん
2015/04/15(水) 00:06:47.65 ID:???
今、cakeを勉強中なのですが、他のフレームワークを今まで使ったことがないのでわからないので検討違いかもしれないですが、
cakeのモデルって使い勝手悪いのですが、これがフレームワークでは普通なのでしょうか?
アソシエーション定義してもrecursiveの深さを検索するとかこんなもの使い道あるのでしょうか?
テーブルにただマッピングされてるだけのsql発行クラス以上の使い方があるのでしょうか?
っていうか、このモデルというのは使い勝手がいいのですか?
431 :
nobodyさん
2015/04/15(水) 00:22:06.23 ID:???
>>430がRDBMSさえも理解してない素人なのか自前でORマッパーを作りかねない玄人なのか判断つきかねる
432 :
nobodyさん
2015/04/15(水) 00:30:30.11 ID:???
>>429
フレームワーク使うのに、小規模ってことは無いと思うんです。
例えば「お問い合わせフォーム作りたいから使おう」とか「会社紹介ページ作りたいから使おう」
ってレベルの人がフレームワークに立ち寄らないと思うんです。

それより規模がでかくて数々のプラグインや便利ツール(ヘルパー・コンポーネント等)
があるからフレームワークを使おうと思うわけで。

そしてもうひとつの利点である「開発方法を定める」ってのもあると思うんです。
命名規則やMVCの考え方など、1人でやってたらその都度変わりそうな要件も
フレームワークを使うことで統一する事が出来るし、それは後の改修のしやすさに繋がる。

だからこそ「一般的でベターな方法を追求する」事ってメリットがあると思うんですよ。
そこにメリットが無かったり、「人それぞれじゃね?」ってなると、
それこそオレオレフレームワークと変わらない気がします。

>>430がフレームワークを使おうと思ったキッカケも、
「自分一人の考えで済ませたくないから」じゃないですかね。
そして過去の自分の経験・考えがあるからこそ、
「Cakeのモデル定義は使い勝手が悪い」という判断ができるわけで。

だからやっぱり「自分の好きな様にやれよ」って言われても、しっくり来ないんです。
433 :
nobodyさん
2015/04/15(水) 00:47:12.63 ID:???
レンタルサーバでFTP接続しか受け付けないサーバに
TeraTermで接続するにはどうすれば良いでしょうか?
434 :
nobodyさん
2015/04/15(水) 00:57:56.92 ID:???
>>431
sqlもおぼつかないど素人です。

>>432
>だからやっぱり「自分の好きな様にやれよ」って言われても、しっくり来ないんです。

そうですね、なにか他人と共有できるものを獲得できるようにフレームワークで一番最初に引っかかったものいじってみたしだいです。


よくわからないので、とりあえず青い鳥を探してがんばってみることにします。
ありがとうございました。
435 :
nobodyさん
2015/04/15(水) 01:03:19.42 ID:???
>>432
いわんとすることはわかるけど、cakeでもコントローラー10個以下の小規模なものと
コントローラー100個以上の大規模なものでは、cakeという規約の上でも開発ポリシーは変わるよ
もちろん参加メンバーの多寡でも変わる

たとえばcakeはキャッシュ先をファイルとapcとmemcacheとredisに対応してるけど、
決してデフォルト設定のファイルキャッシュが多くの場合にベターな手段であるということではない
最終的に自分の案件でなにを使うか決めるのはやはりそれぞれの開発者だよ
436 :
nobodyさん
2015/04/15(水) 01:16:06.96 ID:???
>>435
フレームワークを使わない場合、
ファイル管理は主にフォルダ分けで対応していたと思うんです。
そのフォルダ分けがコントローラー分けに変わっただけで。

でも、コントローラーを分ける理由てファイルが肥大化して読みにくくなるからで、
1コントローラー1アクションを実行するCakeの場合、
パフォーマンスに大きく影響はでないと思います。

ただ、その「ファイルが読みにくくなる」というのは開発効率の面で大きな問題ですし、
バグのリスクが高まるなら、素直にファイルを分けたり、
プラグイン化するのも大事だと思います。

その、「どれぐらいの量に達したらこうするべき」って指標があれば良いんですけどね。
それはあくまで要件次第って事が難しくさせるんです。

基本的に誰しも最初は小規模の物を作るだろうし、
継続して運営していくようなものなら後から機能を追加して大きくなっていくと思うし。

とりあえず、会員専用ページのURLやコントローラー構成に「こうするべき」
という指標はないということで納得する事にします。色々とありがとうございました。
437 :
nobodyさん
2015/04/15(水) 02:03:20.77 ID:???
「sqlもおぼつかないど素人」を自称する430が、
Cakeのモデルを「使い勝手が悪い」と評価した理由や経緯に
興味があるんだけれど。差し支えなければ教えて欲しい。
438 :
nobodyさん
2015/04/15(水) 03:26:27.37 ID:???
>>437
findで帰ってくる連想配列が使いづらい
モデルのhasManyでつながってるモデルのさらにhasManyを取得するのがrecursiveで階層指定する以外、ドキュメントに見当たらない。
とか

まだ、勉強段階で自分が勘違いしてるかもしれんが、使い勝手がいいとは。。。
439 :
nobodyさん
2015/04/15(水) 08:07:14.49 ID:???
>>438
findの返り値はcakephp3からオブジェクトになったはず
俺はpdoで返ってくる値とどちらも大して違わないと思うけど、
cakephp2の配列は良くも悪くもphp的だね

recursiveが扱いにくいのは事実で、基本的にはcontainableを使う方がいい
440 :
437
2015/04/15(水) 13:46:41.43 ID:???
>>438
回答ありがとう。「モデルの使い勝手が悪い」にはそもそも同意していて、
初心者の観点だとどのへんが辛いと感じるのかなと思ったので。

Cake2でのモデルを扱うには、Containable と Hash を活用するようにすれば
少しは辛さは軽減できると思うけれど、何というかどちらもいわゆるバッド
ノウハウの類であって、本質的な辛さを解決するものではないし、だからこそ
Cake3では、エンティティオブジェクトを返すようになり、Containable /
recursive / afterFind / virtualfield などがなくなってしまったんだと思う。
441 :
nobodyさん
2015/04/15(水) 16:25:28.65 ID:???
海外サーバ上の膨大なデータ(数GB)をローカルにダウンロードしています。
データ量が膨大で3日程かかってしまいます。


DL中にWindows Update等の横やりがはいり、DL処理が中断されてしまいます。

その後DL処理を再開するにあたり、既にローカルに対象ファイルがある場合には
スキップして、新しいファイルのみWEBサーバからローカルにDLする設定方法はありますか?
442 :
nobodyさん
2015/04/15(水) 17:44:41.75 ID:???
>>441
それってCakeと関係なくね?
CakeはPHPというプログラムを使って、主にWebサイトやシステムを作るものだよ?
あなたの悩みはFTPとかSSHとかtelnetとか通信上の問題だと思うんだけど。
443 :
nobodyさん
2015/04/15(水) 20:13:33.16 ID:???
>>441
ベリファイ処理の時の完了フラグ建てとくとか?
少なくともCakePHPに求める機能ではないね
444 :
nobodyさん
2015/04/15(水) 20:20:48.34 ID:???
>>439
ありがとうございます。
Containableはよさそうですね。

>>440
Hashはバッドノウハウってのはまさにですが使ってますね。
とりあえずはcake2をしばらく弄ってみます。
445 :
nobodyさん
2015/04/16(木) 19:40:28.40 ID:???
ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★
ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★
446 :
nobodyさん
2015/04/16(木) 20:04:32.48 ID:qC1kWGvR
>>445
<b>どうやってかいた?</b>
447 :
nobodyさん
2015/04/16(木) 20:13:15.48 ID:???
ウンコって書きました。もうしませんごめんなさい。 by FIX ★
448 :
nobodyさん
2015/04/16(木) 20:14:44.25 ID:???
ftp://って書くとウンコ・・・ってでる
449 :
nobodyさん
2015/04/16(木) 22:21:57.51 ID:???
ウンコって書きました。もうしませんごめんなさい。 by FIX ★あいうえお
450 :
nobodyさん
2015/04/18(土) 17:51:43.74 ID:???
http://peace.2ch.net/test/read.cgi/bun/1349529904

>>472


なんで IDとか日付が他のレスと違ってるの?
2chのバグ?
451 :
nobodyさん
2015/04/19(日) 18:05:07.95 ID:0/QVOYd7
cake2系で多次元配列のバリデーションエラーってどう表示すればいいのでしょうか?

#ビュー
echo $this->Form->input('Entry.1.name', array('type' => 'text'));
echo $this->Form->error('Entry.1.name');

では表示されませんでした。
452 :
nobodyさん
2015/04/19(日) 19:11:07.38 ID:???
>>451
そもそもエラー発生してる?
formのdatetimeのバリデーションとかyear monty dayでエラー吐かせる処理とか参考にするとよいよ
453 :
nobodyさん
2015/04/19(日) 20:23:57.18 ID:0/QVOYd7
>>452
$this->Entry->validationErrorsをするとエラーは発生しています。
とりあえず簡単には出来そうにないですね、カスタマイズしていかないと・・。
454 :
nobodyさん
2015/04/19(日) 22:10:36.85 ID:???
>>453
いや、書き方はそれであってると思うよ
少なくとも自分はその書き方で実現できている(cake2.4.6)
なのでエラーの設定側の方を疑ってみるとして、
debug($this->Entry->validationErrors[1]['name']);
の出力結果が
array(
(int) 0 => 'エラーメッセージ'
)
みたいになっているか確認してみるといい
455 :
nobodyさん
2015/04/19(日) 23:57:05.45 ID:0/QVOYd7
>>454
逆になってました。
array(
'name' => array('0' => 'メッセージ’)
)
みたいな。

バリデーションを発生させる時、手動でやってるのですが、
$this->Entry->set($this->request->data['Entry'][1]);
$this->Entry->validates()
みたいにしているのが駄目なんですかね?
でも、こうしないと個別にバリデーション出来ないし・・・。
456 :
451
2015/04/20(月) 00:10:41.17 ID:???
分かりました。上記の書き方では駄目みたいです。
$this->Entry->saveAll($this->request->data['Entry'], array( 'validate' => 'only' ));
だと複数レコードのバリデーションだけやってくれ、
>>451の$this->Form->errorが無くてもエラー表示されました。
457 :
nobodyさん
2015/04/24(金) 11:11:15.22 ID:???
>>433
Tera Term開発者(チーム)にFTP機能を追加してくれるように頼むか、自分でパッチを書いて提案する
458 :
nobodyさん
2015/04/24(金) 17:42:45.73 ID:T3bkqRm0
>>450
に誰か回答してやれよ。
459 :
nobodyさん
2015/04/24(金) 18:37:24.44 ID:???
自分で答え書いてるから回答する必要ない
460 :
nobodyさん
2015/04/25(土) 02:41:48.48 ID:???
ちゃんとintlも入れてphpiniも書き換えたのに500吐く
もうレンサバで動かすのが無理なのか?
3.0でなんかやってる人ってVPSとかでやってんのかな?
461 :
nobodyさん
2015/04/25(土) 19:24:11.08 ID:tDD6UmBw
Cake初心者です。2.5.1を使っています。
バッチ処理用にシェルを作ってコンソールから実行するとapp/tmp/cache/models以下にroot権限のファイルができます。
するとWebから実行した時ファイルに書き込めないとエラーになります。
これは普通どうやって対策するものなんでしょうか?よろしくお願いします。
462 :
nobodyさん
2015/04/25(土) 20:56:01.41 ID:???
バッチの実行者を変えればいいんじゃないの?
463 :
nobodyさん
2015/04/26(日) 10:00:38.91 ID:???
>>461
これじゃなくて?

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
464 :
nobodyさん
2015/04/26(日) 10:02:31.68 ID:???
>>463
コピペしたらわかりにくくなった
すまそ
ここね

http://qiita.com/sampleb3/items/d274bc1cecda8ef62c28
465 :
nobodyさん
2015/04/26(日) 11:02:48.16 ID:???
2.6.4を使用しています。WordPressのインストール設定のように、
ブラウザからテーブル作成や初期レコードの追加などを行いたいです。
DBに登録するデータの設定はSchemaから行うのはわかったのですが、
コマンドではなくてブラウザから行う方法が分かりません。

何かやり方がありましたら手順を教えて下さい。
(出来ればPHPのsystemコマンドを使う方法以外で教えて下さい)
466 :
nobodyさん
2015/04/26(日) 13:52:26.27 ID:???
>>465
phpMyAdmin
467 :
nobodyさん
2015/04/26(日) 14:02:32.53 ID:???
>>466
Cake上から実行したいのです
468 :
nobodyさん
2015/04/26(日) 15:07:52.26 ID:???
>>467
cakeでDB管理ページを作ればいいんじゃね?
469 :
nobodyさん
2015/04/26(日) 18:29:57.09 ID:???
Cakeで新規アプリを作るときにDB構築をブラウザだけで
一からやりたいという希望のようだけれど、そんな機能はないよ
470 :
nobodyさん
2015/04/26(日) 20:30:12.18 ID:???
baserCMSを参考にします。ご迷惑おかけしました。
471 :
nobodyさん
2015/04/26(日) 22:32:06.38 ID:???
cakephp3を使ってるんだけど、データベースの設定のところにあるタイムゾーンってphpの仕様に合わせて書けばいいんだよね?
Asia/Tokyoって書いたらMySQLがエラー吐くんだけども
472 :
nobodyさん
2015/04/27(月) 17:10:39.74 ID:???
>>471
おれもエラー出たからETCのままにしてるけど
DBの読み書きで問題出てないとだけ報告
473 :
nobodyさん
2015/04/27(月) 19:03:49.33 ID:???
createdとかの時間が9時間前で書き込まれてるんだけども、これなんとかならんのかね
データベース側でselect now()やってみたら正しい時間になるんだけども
474 :
nobodyさん
2015/04/27(月) 23:42:19.48 ID:???
ごめんなさい、上のものですが、9時間前で書き込まれるのはbootstrap.phpでタイムゾーンを日本に設定してなかったのが原因でした。
このファイルこういう為にあったのね…
適当すぎました。
475 :
nobodyさん
2015/04/28(火) 00:34:09.14 ID:???
>>472
どこの高速道路でスクリプト走らせてるんだよ
476 :
nobodyさん
2015/04/28(火) 15:17:14.96 ID:???
Cakeに限らないと思いますが、1対多のモデルを絞り込み検索する場合って、
多の方を検索して一致する親IDを抽出し、conditionsするのがセオリーですよね?
477 :
nobodyさん
2015/04/30(木) 02:23:35.28 ID:pzkccb8r
cakephpで複数のログインページを作ろうとすると、
beforeFilterでセッションを別にしてもなんか動作ばぐる(
複数のうちのひとつの認証ページにしか飛ばない)んですけど
実現できた人いますか?
478 :
nobodyさん
2015/04/30(木) 12:27:23.16 ID:???
>>477
どうやって別にしてるか簡単にソース書いてみ
479 :
nobodyさん
2015/04/30(木) 18:28:35.07 ID:???
cakephp2.5で、データベースを使いたくない場合、
コントローラーにpublic $uses = nullとしているんですが
相変わらず
Error: Cannot access empty property
というエラーが表示されるんですが、どうしたらいいでしょうか?
480 :
nobodyさん
2015/04/30(木) 20:39:57.17 ID:???
>>478
ありがとさんくす
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';
}
481 :
nobodyさん
2015/04/30(木) 20:40:36.55 ID:???

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';

です
482 :
nobodyさん
2015/04/30(木) 20:44:57.61 ID:???
>>479
nullじゃなくてfalseじゃね
483 :
nobodyさん
2015/04/30(木) 20:58:11.41 ID:???
>>482
nullとfalse両方でやってみたけど以下のエラーを吐いてしまいます…
Fatal error: Cannot access empty property in /home/xxx/www/cakephp/lib/Cake/Controller/Controller.php on line 437
484 :
nobodyさん
2015/04/30(木) 21:50:07.20 ID:???
>>483
$usesじゃなくて$useTableじゃね
485 :
nobodyさん
2015/05/01(金) 03:25:03.53 ID:???
>>484
さんくす!!
486 :
nobodyさん
2015/05/05(火) 07:01:11.64 ID:???
paginatorで、本来とは違うモデル(データーベース)のin句を使いたいんですけど
やり方が分かりません
誰かやり方を教えてくれませんか?
487 :
nobodyさん
2015/05/05(火) 20:48:55.06 ID:???
>>486
標準のページングと違う動作をさせたければ
paginateCount()とpaginate()という関数を
モデルかビヘイビアに作り、paginateCountで全体の件数、
paginateで1ページ分のデータをreturnするよう実装すればいい

引数とかの詳細はマニュアルに書いてある
http://book.cakephp.org/2.0/ja/core-libraries/components/pagination.html#id3
488 :
nobodyさん
2015/05/06(水) 18:37:43.56 ID:???
>>486
もうちょっと具体的に書いてもらわないと何とも
489 :
nobodyさん
2015/05/06(水) 19:12:43.08 ID:???
そもそもpagenatorでin句って使えるの???
490 :
nobodyさん
2015/05/06(水) 20:39:42.84 ID:???
countとれるconditionsなら何でもいけるんじゃないの
491 :
nobodyさん
2015/05/07(木) 22:42:13.49 ID:???
Paginatorのビュー表示、$this->Paginator->numbersで
「1|2|3|4|5」と表示して5をクリックしたら、
「3|4|5|6|7」と表示させることって出来るのでしょうか?
492 :
nobodyさん
2015/05/08(金) 00:05:45.85 ID:???
>>491
むしろ自動でそうならない?
493 :
486
2015/05/09(土) 08:14:27.22 ID:???
みなさんレスありがとうございます。
結局、IN句がどうしても入らないので(文字列扱いになる)、
ORを利用することで解決しました

もしIN句で実現できるよーって人がいましたらレスしてくれると嬉しいです。
494 :
nobodyさん
2015/05/09(土) 12:00:46.20 ID:???
>>493
inはorやnot inとかと違って、明示的に書かずに配列を入れるだけでいいはずだよ
普通のfindのconditionsではin動いてる?
495 :
nobodyさん
2015/05/09(土) 13:18:29.99 ID:???
>>492
自動って、$this->Paginator->numbers()を出力したらということですか?
このままではなりません。普通に、5|6|7・・・とページが増えるだけです。
496 :
nobodyさん
2015/05/09(土) 13:29:34.52 ID:???
>>495
引数のmodulesの数を4とかに調整してみ
497 :
nobodyさん
2015/05/09(土) 13:58:19.35 ID:HYo3XLyg
>>492
自動ではならなかったと思うが…。
498 :
nobodyさん
2015/05/13(水) 13:39:51.91 ID:???
1対1のテーブルの場合(usersとprofilesとする)、
これまでprofilesにuser_idを追加していたんだけど、必要なかったんだね。
profilesのidのauto_incrementを止めて、
ProfileモデルにprimaryKey='id'とすれば、saveもfindも問題なく拾ってくれる。

既出だと思うが、自分としては発見だったのでメモする。
499 :
nobodyさん
2015/05/13(水) 22:16:31.12 ID:???
>>498
hasoneかつbelongstoでお互い同じidならってこと?
便利そうに見えるけど何となく気持ち悪い気もする
500 :
nobodyさん
2015/05/13(水) 22:27:43.38 ID:???
>>499
users:id
profiles:user_id

にも出来るよ。見た目的にはこの方が良いかも。
501 :
nobodyさん
2015/05/13(水) 23:51:45.42 ID:???
>>500
idの代わりにuser_idをプライマリにするのね
それならまだわかる
502 :
nobodyさん
2015/05/19(火) 12:15:05.85 ID:jQo/pXrB
任意のタイミングでユーザのセッションを切りかつ認証を拒否する
エレガントな方法ってありますでしょうか?

セッションにユーザのIDとパスワードを入れといて
ページ遷移ごとにいちいち認証かけるってのも、あるけど
非セキュアな気がして気が進みません。。。
503 :
nobodyさん
2015/05/19(火) 13:20:38.39 ID:???
Auth使う方法は駄目なの?
504 :
nobodyさん
2015/05/19(火) 17:12:56.72 ID:c25x6ol9
物凄く小規模なDB操作(例えばテーブル1つとか)の場合、
Cake使うまでもないと思いますが、皆さんはどうしてますか?

PDOと使うとか別の小規模フレームワーク使うとかPHP直書きとか
色んなパターンあると思いますが、出来るだけ手間なく使える方法が知りたいです。
505 :
nobodyさん
2015/05/19(火) 20:16:10.79 ID:???
>>504
どんなに小さくてもCake使ってる
506 :
nobodyさん
2015/05/19(火) 23:13:58.17 ID:???
>>502
セッションの使い方が間違ってる気がする
普通にauthコンポーネント使って任意のタイミングでsession消すか
logoutさせればok

>>504
1ファイルで収まる程度ならpure php
それ以上ならcakephp使うわ
ミニマルフレームワークに学習コストかける気になれない
507 :
504
2015/05/19(火) 23:46:28.25 ID:???
>>505-506
DB登録とか参照をどうするか悩んでいます。
Cakeの書き方がベストとはいえ、ページの一部だけに使うのでMVCは必要なく、
かといって、SQL文を直書きなのもどうかと思ったり。
SQLインジェクション対策とか必要ですし。
508 :
nobodyさん
2015/05/20(水) 07:47:42.44 ID:???
>>507
そこはPDOしかない
セキュリティー的にはいろいろ言われてるけど
きちんと使えば大丈夫
のはず
509 :
nobodyさん
2015/05/21(木) 21:37:14.24 ID:???
>>507
そんなに不安がるということはかなりの初心者だね?
もう一度PHPを基本からじっくり勉強し直した方が良いかもよ。
510 :
nobodyさん
2015/06/03(水) 21:07:19.92 ID:???
完全に嵌ったので教えて・・・・・・。

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」を読んで欲しいが、それが上手くいかない。

ググると日・英なり、色々と出ては来るが、どうにも決定打がない。
お分かりになる方いますか。
511 :
nobodyさん
2015/06/03(水) 21:23:59.28 ID:???

黙れバカ。ぐぐれ。
512 :
nobodyさん
2015/06/03(水) 22:20:10.80 ID:???
教えてやろうと思ったけど、511のツッコミに糞ワロタwwww
さすがにそのレベルだと回答するのも馬鹿馬鹿しくなるな
513 :
nobodyさん
2015/06/03(水) 23:07:24.18 ID:???
まずドキュメント読めよ
514 :
nobodyさん
2015/06/04(木) 01:17:22.59 ID:???
>>510は解決しました。
515 :
nobodyさん
2015/06/04(木) 01:26:07.24 ID:???
よくがんばりました
516 :
nobodyさん
2015/06/04(木) 21:42:11.27 ID:???
このレベルの人がnginxでcakephpを動かそうとする現代のスゴさ
517 :
nobodyさん
2015/06/04(木) 21:57:48.06 ID:???
普通にレンタルサーバ使えよな
518 :
nobodyさん
2015/06/06(土) 00:04:16.21 ID:rAdaJfyp
障碍者をしばいている天下り施設

ダウンロード&関連動画>>

519 :
nobodyさん
2015/06/10(水) 10:26:16.68 ID:???
CakePHPとオレオレPHPフレームワークで作られたシステムを統合しなくてはならず困っています。

マスタ統合+リバースプロキシでシステム間を往き来できるようにはなったのですが

①UI統一のためメニューバーを共通部品化したいが、テンプレートエンジンが異なるため統合できない、そうなると今後その部分の二重管理が避けられなくなってしまう。

②ログイン認証をどちらかのフレームワークに寄せたいがログインセッションを共通で読めるようにする方法がわからない。例えばオレオレフレームワークでCakePHPが読めるセッションを作るといったことが出来るのか??

という問題にぶち当たり頭を抱えております。

①②についてみなさまのお知恵を拝借できないでしょうか?
520 :
nobodyさん
2015/06/10(水) 22:11:05.57 ID:???
>>519
こら!うちの仕事を2CHで質問するな!
521 :
nobodyさん
2015/06/11(木) 00:25:48.84 ID:???
>>519
頑張ってCakePHPで全部ゼロから作る
522 :
nobodyさん
2015/06/11(木) 04:13:08.75 ID:???
>>519
Cakeなんて辞めてオレオレフレームワークに寄せちゃいなよ(白目
523 :
nobodyさん
2015/06/11(木) 08:53:44.17 ID:???
今後のメンテナンス性を考えたらどっちかに寄せるのが得策ですよね。
524 :
nobodyさん
2015/06/11(木) 12:09:32.15 ID:???
俺はCakeに寄せたオレオレフレームワーク作ったよ
525 :
nobodyさん
2015/06/17(水) 23:44:34.95 ID:???
>>519
俺なら断る仕事だな。
それか全部作り直しを提案する。
526 :
nobodyさん
2015/06/19(金) 12:17:16.27 ID:SOLYvyQT
userの管理としてUsersコントローラ内では
$this->Auth->user()をうまく拾えるのですが、
これを例えば、Fooコントローラ内で
同じものを拾いたい場合どうすればいいか、
教えて頂けますでしょうか。

AuthComponent::$sessionKeyを同じものにしても
だめでした。
527 :
nobodyさん
2015/06/19(金) 16:02:48.79 ID:???
>>526
Appコントローラーにauthコンポーネントをつけておけばいいんじゃないの
528 :
nobodyさん
2015/06/19(金) 17:23:30.81 ID:???
>>527
つーか、普通はAppControllerにauthコンポーネントつけね?
529 :
nobodyさん
2015/06/19(金) 17:24:12.68 ID:???
>>527
ごめん、528はなしで。同じ事言ってるわw
530 :
nobodyさん
2015/06/22(月) 14:29:35.10 ID:L3kxYzS9
モデルからモデルを呼ぶのって、MVC的にNGだったりする?
モデル同士が密結合になるから微妙なカンジがするんだけど、コントローラーでやろうとすると、どんどん太っていくし。
531 :
nobodyさん
2015/06/22(月) 15:01:33.87 ID:???
>>530
そんなあなたにビヘイビア。
532 :
nobodyさん
2015/06/22(月) 16:41:23.12 ID:???
一方向に限定するならいいじゃないの
533 :
nobodyさん
2015/06/23(火) 09:29:54.07 ID:P4/MrXim
1対多の関係で編集する時どうしてますか?
例えば1ユーザー(Userモデル)が自分の趣味を設定できるとします。
趣味はHobbyモデルで複数選択できます。

この時、登録時は単にsaveすればいいので問題無いですが、
編集時はどうすればいいのでしょう?
一旦、Hobbyに登録されているuser_idが該当するデータを削除した後、
追加という形でしょうか?

それともHobbyモデルの該当するuser_idを一旦取得して、
新たに選択したデータを追加、選択を外したデータを削除
という形がよいでしょうか?

どちらもなんか違う気がしてるので、良い方法があれば教えてください。
534 :
533
2015/06/24(水) 17:26:48.43 ID:???
自己レスです。UserとHobbyの関係をhasAndBelongsToManyにすると
編集時は一旦全削除されて新たに追加という形になっていました。
ですので、>>533は前者の方法で正しいみたいです。
535 :
nobodyさん
2015/07/02(木) 17:37:38.09 ID:Bg3Tlr0u
2.6.7を使っています。Searchプラグインの使い方について教えて下さい。

checkboxで複数検索した時、URLが
/posts?category%5B0%5D=1&category%5B1%5D=2

みたいになります。チェックボックスの数だけ
「category%5B0%5D」のパラメータが増えると思うのですが、これで正しいのでしょうか?
(実際に絞り込みができるので、正しいかもしれませんが・・・)

カラムが1つでカンマ区切りとか複数指定する方法があれば教えてください。
536 :
nobodyさん
2015/07/07(火) 18:57:43.11 ID:???
titleタグとかmetaタグってビューから設定するしか無いんですかね?
ビューにあまりプログラムを書きたくないのですが
537 :
nobodyさん
2015/07/12(日) 13:42:48.57 ID:???
暇つぶしに覗いて見たけど あり得ない女が・・
見返りをもらって損はしなかったww
超本命が大穴

※を取って ∇をcに置き換え 
s※nn2∇h.net/s11/465rty.jpg
538 :
nobodyさん
2015/07/12(日) 13:58:45.58 ID:???
>>537
NGワード規制されてやんのwwww
ぷぷぷぷwwwwww
539 :
nobodyさん
2015/07/13(月) 03:11:40.57 ID:???
ローラのダイエット日記

http://rola-diet.sblo.jp/
540 :
nobodyさん
2015/07/13(月) 21:23:44.80 ID:???
2.7リリースはいいけど、cookbookもきちんと更新してほしい
541 :
nobodyさん
2015/07/13(月) 23:12:26.27 ID:???
質問しても誰も答えなくなったね
542 :
nobodyさん
2015/07/14(火) 01:13:58.74 ID:???
もうcakephpも10年位たつのか
はえーな
543 :
nobodyさん
2015/07/14(火) 03:47:01.98 ID:???
>541
もともと2chって質疑をやるには向いてないと思う
仮に回答があったとして何を根拠に信用できるかというのもある
cakeの場合 >1 にあるようなユーザフォーラムもあるし
ja.stackoverflow.com みたいなところだってあるからそういうところを活用すべきでは
544 :
nobodyさん
2015/07/14(火) 21:00:51.06 ID:???
Cakeって美味しいの?
545 :
nobodyさん
2015/07/15(水) 10:22:55.73 ID:???
おいしいお
546 :
nobodyさん
2015/07/19(日) 12:03:10.80 ID:???
ユーザーフォーラムも過疎ってるんとちゃうの
ここのほうがまだレス付きそう
547 :
nobodyさん
2015/07/20(月) 05:50:38.35 ID:kX6qAGro
今日からがんばるお
548 :
nobodyさん
2015/07/20(月) 14:06:13.04 ID:???
なにお?
549 :
nobodyさん
2015/08/05(水) 20:18:38.91 ID:???
みんな……。息してるか……?
550 :
nobodyさん
2015/08/05(水) 23:24:25.23 ID:???
別にネタないし・・・
551 :
nobodyさん
2015/08/07(金) 11:17:17.91 ID:???
先ほど2.xで重要なセキュリティ修正がリリースされました。特に admin_ のような prefix ルーティングを行っている人は必ず適応してください。
リリースのない2.5未満のバージョンを使っている人は差分を見て自力でホットフィクスを行ってください。
552 :
nobodyさん
2015/08/08(土) 00:19:49.90 ID:???
>>551 パッチは「適応」じゃなくて「適用」するものな。
まァ、12時間前の俺なんだけど。てか、しばらく来ないうちに過疎りすぎだろ。
553 :
nobodyさん
2015/08/08(土) 02:29:19.95 ID:???
>>551
いつもいつもありがとうございます
554 :
nobodyさん
2015/08/08(土) 03:00:35.95 ID:???
>>553 どういたしまして
555 :
nobodyさん
2015/08/08(土) 03:18:03.61 ID:???
ちなみに今回みたいなセキュリティバグはどうやって見つけてるんですか?
運用で発覚してるのか、それともコードレビューで見つけてるのか。。、
556 :
nobodyさん
2015/08/08(土) 07:08:36.37 ID:???
コードレビューですね。レビュー会をやっているわけではなくて個人的に。
人が書いたコードを読むのは勉強になるので。
557 :
nobodyさん
2015/08/08(土) 11:57:41.64 ID:???
>>555
コード見ずにテストする方法では検出が不可能か、極めて難しい問題ってのが有るんだよ。
そして負荷が高くなった時とかまれにしか発生しないが重大な問題になりがち。

だからコードを見ないでテストすることにも一定の意味はあるが、
コードを見て問題点を探す作業、つまり>>556もいってるコードレビューね。
これは 絶対に 省くことは出来ない。

コードレビューを軽視して、仕様ばっかり見ているような所はダメなところだよ。

んで、コードレビューという作業は、他人の書いた難解なコードを解読する 作業じゃない。
っていうかそんなの馬鹿じゃない?

Aさん「難しい問題作りました!」
Bさん「難しい。うーん、うーん。あっ分かった!」

お前ら、謎解き合戦でもして遊んでるのか? それで誰が喜ぶんだ?って。

読めないコードは、読む人の技術不足じゃない。書く人の技術不足だ。
読めなければ書き直しを言い渡して良い。
(もちろん言語の文法が理解できないっていうのは、読む人の技術不足。
文法がわからないからっていうのは、書き直しの理由にはならない)
558 :
nobodyさん
2015/08/08(土) 12:13:44.49 ID:???
>>557
自分立ち入りで書いたソースならコードレビューするけど、さすがにフレームワークはしないでしょ。
今回みたいに興味があってするとか、運用で問題発覚して解析するというのは別として。
559 :
nobodyさん
2015/08/08(土) 20:59:26.33 ID:???
基本的にアップデートってそのまま上書きしたらいいの?
何か使えなくなるコードがあったりしない?
560 :
nobodyさん
2015/08/08(土) 22:16:15.83 ID:???
>>559
俺も思う。だから俺は何もしない。
561 :
nobodyさん
2015/08/08(土) 22:19:04.30 ID:???
composer を使っていなければ lib/Cake 以下を上書き。
2.6.0 -> 2.6.9 みたいな同じマイナーバージョンならそれほど問題は起きないはず。そうじゃない場合は、公式にあるマイグレート手順の通りにすればそれほど問題は起きないはず。
ただ、prefix でルーティングしてる場合は多少バグってでも上げるべきかな。
562 :
nobodyさん
2015/08/09(日) 00:02:51.87 ID:???
>>561
その、それほど問題は起きないはずってのが怖いよね。万が一バグったらそのままのがよかったじゃんってなる。
563 :
nobodyさん
2015/08/09(日) 01:18:36.79 ID:???
>> 562
1. prefix ルーティングを使用している
2. 'prefix' => 'admin' なら admins テーブルからログインユーザーを探す、といった prefix キーに依存した認証処理になっている
3. その認証の結果アクセスできるはずの admin_系の画面を第三者に利用されると困る

3つ全部に該当する場合に問題になるので、バグが起きた場合のリスクと、admin_系の画面を不正に利用された場合のリスクを考えて選択するといいかも。
同時に報告したもう一つの脆弱性は正直大したことじゃないので。
もっとも、クリティカルなフィールドの検証に range か comparison を使ってなければの話だけど。
564 :
nobodyさん
2015/08/09(日) 13:20:09.43 ID:???
過去作った1.3系を最新の1.3.20にアップデートしたいと思うけど
何か問題起きないか不安だ。どんな機能が更新されたのかいまいち情報ないし。
565 :
nobodyさん
2015/08/09(日) 13:30:21.06 ID:???
>>564 各リリースノートに更新内容が書いてある。ずいぶん前に作ったままなら、少なくとも削除と更新が同時に走ると全データがUPDATEされる不具合が2.xからバックポートされてるはず。
566 :
nobodyさん
2015/08/09(日) 13:45:11.47 ID:???
>>565 不具合の修正が、ね。不具合バックポートしてどうすんだ。
567 :
nobodyさん
2015/08/10(月) 15:09:16.81 ID:???
特定のサイトにアクセスをした際に
リファラを書き換える事って出来ますか?


AAAというサイトへアクセスを想定しています。

実際には、Yahooで検索して遷移したとします。
しかし、AAAのサーバ側では「Googleからのリファラであった」と見せかけるにはどうした良いですか?
568 :
nobodyさん
2015/08/10(月) 16:08:21.74 ID:???
リファラを送出してるのはブラウザであってCakeは関係ない
569 :
nobodyさん
2015/08/10(月) 18:29:52.85 ID:???
>>568
どうやったらリファラ偽装できるの?
570 :
nobodyさん
2015/08/10(月) 21:00:17.17 ID:???
>>569
ソケット通信 header で出てくるんじゃないかな?
俺まとめたから、まとめーたーのどこかに載ってるよ。
571 :
nobodyさん
2015/08/10(月) 22:04:25.69 ID:???
そもそもなんで偽装したいんだよ
572 :
nobodyさん
2015/08/10(月) 22:48:10.74 ID:???
東方で不正発覚 [転載禁止]
http://hope.2ch.net/test/read.cgi/touhou/1439135722/
573 :
nobodyさん
2015/08/11(火) 00:15:53.62 ID:???
>>569
ブラウザ依存の話だからスレ違いどころか板違いだ
使ってるブラウザのスレ見つけてそっちで聞いてこい
574 :
nobodyさん
2015/08/13(木) 19:28:44.54 ID:???
2.xまでですっかり配列脳に染まった自分。
3.0からのオブジェクト返しにちょっと慣れずにいます。

今まではリレーションされたレコードを含めて配列で一気に取ってきておいて、
あとは巨大な配列をブンブン回して処理していたのを、
ある程度Entityに分担させられるようになる(Lazy loading)って認識でいいのかな?

あとは、DBからコードの形で取得したデータを
対応する文字列に置き換えたりっていうような処理を
自分はHelperとかにやらせてたりしたけれど、それもEntityにやらせる方が良かったりする?
575 :
nobodyさん
2015/08/14(金) 12:00:47.77 ID:ghYlBS32
すっごい初歩的な質問だけど
CakePHP2.xでApp::usesとかApp::importとかに書くのはクラス名?(拡張子を抜いた)ファイル名?
クラス名=ファイル名が前提?
1ファイルに複数クラス作っちゃダメ?
576 :
nobodyさん
2015/08/14(金) 13:18:21.94 ID:???
http://api.cakephp.org/2.5/class-App.html#_import
http://api.cakephp.org/2.5/class-App.html#_uses
まずAPIドキュメントを見るんだ
書いてあるとおりクラス名だ importの方はいろいろ柔軟だけれども

原則としては1クラス1ファイルだが、特定のクラスからだけしか参照しない
内部クラス的なものはそのクラスと同じファイルにまとめてしまうことはあるな
577 :
nobodyさん
2015/08/14(金) 14:41:49.62 ID:???
APIドキュメントのApp::import()の方に
 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 も使える?
578 :
nobodyさん
2015/08/14(金) 15:24:22.91 ID:???
そういう話ならこっち読んだほうがいい
http://book.cakephp.org/2.0/ja/core-utility-libraries/app.html

2つ目はできるかできないかならできるが、インスタンス化はもちろん自前でやらなければならない
単にimport書くのが面倒だという理由ならやめた方がいい
579 :
nobodyさん
2015/08/15(土) 14:02:48.31 ID:???
>>578
thx
こういうのって普通の使い方は書いてあるけど
「じゃあ、こういう使い方はできるの?」ってのには触れてないんだよね。
言語の基礎的なことなら自分で試せばいいんだけど、フレームワークが間に入ってると
そもそもできないのか、自分の使い方が悪いのかが切り分けにくいし。

独自例外クラスとかほとんど空なのに個別にファイルつくるのは面倒だから
1ファイルにまとめたかった。
Javaとかなら1ファイル1クラス(非ネストクラス)って決まってるから諦めつくんだけど。
580 :
nobodyさん
2015/08/15(土) 16:08:08.61 ID:???
App::importは基本的にはApp::build()で登録済みのpathを探しに行く
登録済みのpathにあるファイルなら、クラス名=ファイル名ならクラス名だけで解決できる
path登録してないなら明示的にpathを特定してimportすることになる
e.g. App::import('File', 'MyClass', array('file' => '/path/to/MyFile.php'));
App::uses()使ったほうが遅延読み込みしてくれるし、IDEの補完やメンテナンスのことも
考えれば(書いた本人が直すとは限らない)規約に従って作っておいたほうが、最終的にはスムーズ
581 :
nobodyさん
2015/08/20(木) 12:01:52.92 ID:???
今から作るなら3なんかなぁ
2でちょっと作りかけたコードがあるが、今ならまだ移行できる
582 :
『佳子様』の『秘密』を『暴露』
2015/08/20(木) 15:37:21.30 ID:???
.
.
.
Σ(Д・;)"プチエンジェル事件"!(小学生売春事件)
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
プチエンジェル事件に隠された日本の闇を暴露する!

■実は、『女性皇族』の『男遊び』と、
 女性皇族がおこなったハニートラップだった!!

■その『男遊び』と『トラップ』を誤魔化す為の、
『プチエンジェル事件』が真相だったのだ!!

■闇に包まれた真相を、私が『暴露』する!!

※知る覚悟はできていますか?
下記を『Google』か『Yahoo』で検索して下さい。

~~~~~~~~~~~~~~~~~~~~~~~
検索⇒『佳子様 真子さま kare氏』
~~~~~~~~~~~~~~~~~~~~~~~

※上記で検索しますと、1ページ目の5番目以内に、

【懇約〕秋篠宮家の佳子様と・・・・・・・
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑が表示されます。

※世の中、知らない方が良い事もあるんです・・・。
▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
.
.
.
583 :
nobodyさん
2015/08/20(木) 17:42:51.65 ID:???
Cake3でちょこっと作ったけど情報が少ないな
日本では流行らない気がする
584 :
nobodyさん
2015/08/20(木) 21:43:48.53 ID:???
2までと比べて作りやすくなったから俺は好き
585 :
nobodyさん
2015/08/21(金) 04:29:01.85 ID:???
あと2,3年は2で行けるはず。全然情報ないし、2の開発も続いてるしな。
586 :
nobodyさん
2015/08/21(金) 10:20:45.46 ID:???
そう言えば最近、ようやくぐぐっても1の情報ばかりということがなくなったな
あれホントうざかった
3を始める人はまたその状況が続くんだな
587 :
nobodyさん
2015/08/21(金) 20:18:15.77 ID:???
今、2.6から3.1bへのミグラチオン作業中です。

今まではConfig\hoge.phpに独自グローバル定数をまとめて定義し、
bootstrap.phpでconfig(’hoge’);
と書いて読み込ませていました。
が、3.0系ではそもそもconfig関数が無くなっています。
自前でincludeすれば良いといえばそれまでですが、そもそもとして
3.0系ではグローバル関数を使用すること自体がよろしくないのでしょうか?
588 :
nobodyさん
2015/08/22(土) 03:29:22.56 ID:???
>>587 一般論としてグローバル関数/定数には

■名前衝突のリスクが高い
PHP本体のバージョンアップや、サードパーティのライブラリとの共存で問題が生じる可能性がある。

■オートロードできない
使われないかもしれない関数/定数であっても予め定義しておかなければならず、パフォーマンスが低下する。

という欠点があるので削減していく方向なのだろう。
と思っていたけれど、stackTrace() のように3系になってから新たに導入された前例があるので何とも言えない。
ちなみに導入された理由は Cake\Error\Debugger を毎回書くのに疲れたから。
589 :
nobodyさん
2015/08/23(日) 06:26:03.07 ID:???
>>587
どうしてミグラチオンしないのよーッ!!
590 :
nobodyさん
2015/08/23(日) 16:19:04.63 ID:???
Cakeのページネーションで、
$this->Paginator->settings = [
'limit' => 10,
'order' => [ 'created' => 'asc' ]
];
みたいに指定すると、ビューのページネーションのリンクに
sort:Model.created/direction:asc
みたいなのが付くんですが、これを付けないようにする方法ありませんか?
orderは 'created' => 'asc'で固定にしたいです。
591 :
nobodyさん
2015/08/23(日) 20:13:46.96 ID:???
>>590
モデル名を省略せずに 'Model.created' => 'asc' の形式で指定すれば、当該ソート条件の時は付かないはず。
もしくは $this->Paginator->paginate() を呼んだ後に自力で消す。

unset($this->request->params['paging']['Model']['options']['order']);

'Model' は正しい名前に読みかえてね。
592 :
nobodyさん
2015/08/26(水) 12:42:42.47 ID:Dkufhip4
>>591
あざす!結果ですが、以下を参考にページ切り替えを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>
こうなる。
実用上支障はないのですが、リンクにならないようにする方法があったら教えてください。
593 :
nobodyさん
2015/08/26(水) 13:19:15.80 ID:kqv3nla0
Cake2系を使っています。
appを用途によって分けているのですが、例えば
/app-admin/View/Photos/form.ctp
のビューを
/app-user/View/Photos/form.ctp
として使うことって出来ますかね?

単純に後者のビュー内で、前者のファイルパスをincludeすれば出来ると思いますが、
Cakeの機能で可能なら教えて下さい。
594 :
nobodyさん
2015/08/26(水) 13:29:29.12 ID:???
>>593
コントローラーでrender もしくは、element 化
595 :
nobodyさん
2015/08/26(水) 14:21:29.17 ID:???
>>592 本来、現在のページはリンクにならないはずだよね。
現在のページを Cake が正しく認識できていないんだと思う。
予期せずソートパラメータが消えたのもそのためかも?

差支えなければ、そのビュースクリプトで

pr($this->Paginator->params());

を実行した時の結果を張ってくれないかな?
596 :
593
2015/08/26(水) 15:19:26.19 ID:???
>>594
コントローラーでrenderする時のパスって、appを分けてる場合はどうなるのですか?
普通に絶対パスを書くのですか?
597 :
nobodyさん
2015/08/26(水) 16:05:32.49 ID:???
>>574
今更だけど、最初の質問については、そうではないと思う。
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()
598 :
nobodyさん
2015/08/26(水) 16:17:56.94 ID:???
>>596
ごめん。
appわけたことないからわかりません。
599 :
nobodyさん
2015/08/26(水) 16:27:52.27 ID:???
>>596
俺も分けたことないけど App::build() はどう?
600 :
nobodyさん
2015/08/26(水) 20:15:04.12 ID:???
>>598-599
横だけど、appわけないって、管理画面と公開画面作る時どうしてるの?
prefixで対応してるの?それだと困らない?
601 :
nobodyさん
2015/08/26(水) 20:57:02.92 ID:???
>>600
prefix だよ。どう困るの?
602 :
nobodyさん
2015/08/26(水) 21:01:09.92 ID:???
>>600
管理画面は、ほぼphpmyadminから。
その他はcore.php にて
IPアドレスでdebug オンオフ。

debug の値に応じて編集画面を表示したりしてる。

むしろそこまでがっつり管理画面いる?
二度手間じゃない?機能増えるたびに管理画面も増えるんだし。
603 :
nobodyさん
2015/08/26(水) 22:51:10.16 ID:???
>>595
ありがとうございます。
シンプルなページネーションするコントローラとビューを作って、$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です。
604 :
nobodyさん
2015/08/26(水) 23:03:27.56 ID:???
>>601
・IPアドレス制限したい場合は?
・管理と公開でdebugレベルを変えたい時は?
・制作時にプロジェクトが分かれてる場合は?
・URLを変えたい時は?
 ※通常、管理用のURLは推測されにくいURLにする。サブドメインとか
・ファイルがごちゃごちゃしてミスに繋がりにくくない?
 ※有名どころのPHPのOSSなんかは分けてるよ

などなど考えられるけど、一度も遭遇しなかった?

>>602
管理者が一人の場合はphpMyAdminでもいいけど、アソシエーションの時は面倒だよ?
Aのテーブル削除したら、BのテーブルにあるA_idのレコード削除とか。

管理画面ってその名の通り、「管理しやすい画面」だと思うから、
手間が増えても良いと思うんだけど、
むしろそこを面倒臭がるからミスや流出に繋がるわけで。
605 :
nobodyさん
2015/08/26(水) 23:49:39.48 ID:???
>>604
>・IPアドレス制限したい場合は?
httpd.conf の Location

>・管理と公開でdebugレベルを変えたい時は?
httpd.conf の環境変数。
ローカルでは管理でも公開でも debug モードにしたいのでは?

>・制作時にプロジェクトが分かれてる場合は?
状況が分からない

>・URLを変えたい時は?
そのためにルーティングがあるのでは?
ドメインを変えたい場合はバーチャルホスト

>・ファイルがごちゃごちゃしてミスに繋がりにくくない?
違うファイルを編集したことはない

挙げてもらった例は個人的にはメリットだとは思えないけど。
むしろ、分けた場合の方がデメリットが大きいのでは?
正直 cake test app を正常に実行できるのか疑問。
606 :
nobodyさん
2015/08/27(木) 00:09:42.79 ID:???
>>605
>httpd.conf の Location
>httpd.conf の環境変数。
つーことは、共有鯖では無理だね。基本的に。

>状況が分からない
今まで1人で制作してきたの?
デザイナーとプログラマーが分かれている場合や
管理画面(公開画面)だけ操作させたい、ってのもあると思うが。

>そのためにルーティングがあるのでは?
http://example.com/admin/http://admin.example.com/
にルーティングで変えられるの?そうであれば自分の無知を認める。

>違うファイルを編集したことはない
まぁ、ファイル名で判断するから誤認は少ないか。
でも、Controllerの場合、prefix用のコードが増えるから
単純に1ファイルのコードが増えて(長くなって)視認性が悪くなると思うんだけど。

>むしろ、分けた場合の方がデメリットが大きいのでは?
じゃ、君が考えるデメリット教えてよ。
ちなみに共通化するファイルはbootstrap.phpで設定出来るようになってるから、
同じファイルが増えるってことはないと思うよ。
607 :
nobodyさん
2015/08/27(木) 00:29:15.45 ID:???
>>603
リンクしない仕様なんだよ。
パラメータには問題ないね。prevPage が true になっていると推測していたんだけど。
俺には分からないや。わざわざ張ってもらったのにごめんね。
608 :
nobodyさん
2015/08/27(木) 00:35:46.77 ID:???
>>607
いやいや、反応くれてありがとうでした。
なんかおかしいのかな?CakeのPaginatorHelperのソースちょっと見てみますわ。
609 :
nobodyさん
2015/08/27(木) 01:39:43.38 ID:???
>>606
>つーことは、共有鯖では無理だね。基本的に。
応用として .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 に答えてやったらどう?
俺は分けたことないからワークアラウンドが分からん。
610 :
nobodyさん
2015/08/27(木) 03:13:04.96 ID:???
>>609
>応用として .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文が発生するとか、
利用してみて感じる問題点を話しているのに。
611 :
nobodyさん
2015/08/27(木) 09:38:54.76 ID:wzS4bZ57
↓みたいなことをしたいのですが、どうやったらよいでしょうか?

DBから取得したModelデータの配列($students)を
foreach ($students as $student) {
<input type="checkbox" value="$student->id"・・・・/>$student->name //<= 実際はFormHelperを使う。
}
みたいにチェックボックスのリストとして表示して、チェックされたstudentのidを
Controllerで受け取りたい。

で、再びViewに同じチェックボックスのリストを表示して、今度は
前画面でチェックされたstudentはチェックされた状態で表示したい。
ただし、表示するstudentsをDBから再取得することはできない。
612 :
nobodyさん
2015/08/27(木) 11:31:18.92 ID:???
>>610
>無理だと思うよ。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 をレンダリングするのでは?
613 :
nobodyさん
2015/08/27(木) 11:42:59.94 ID:???
>>611
'multiple' => 'checkbox' かな?
belongsToMany('Students') なら

$this->Form->input('students._ids', ['multiple'=>'checkbox', 'options' => $students]);
614 :
nobodyさん
2015/08/27(木) 14:41:18.57 ID:???
>>612
>管理側のプログラムを閲覧できない場合、
>一般側のメンバーは自分が行った変更が管理側に与える影響を知ることができない。
知る必要なくね?管理者が分かれば。
君の意見が正しいとするなら、既存のグループ/権限設定もおかしいって事になるよ?
そもそも俺の意見は「余計な操作をさせない・ミスに繋がらないようにする」
だから、根本的な価値観が君とは違うね。

>個別にコードカバレッジを出力していたのでは、空白だらけにならないかい?
いくら説明しても納得しないだろうから、以下の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の有無を調べるんじゃないの?
615 :
nobodyさん
2015/08/27(木) 21:17:15.92 ID:???
そんなにapp分けていたいなら勝手にわけてればいいじゃん
なんでこんな必死なのこの人
616 :
nobodyさん
2015/08/27(木) 21:33:44.04 ID:???
>>615
批判するのよくないよ。
俺もappわけないけど勉強になる。
617 :
nobodyさん
2015/08/27(木) 22:06:28.85 ID:???
>>615
必死も何も「どうして使わないの?」って質問に、批判しか返してこないじゃん。
結局そういう精神論で決めつけて「勝手にしろ!」で終わらせる。議論になりゃしない。
618 :
nobodyさん
2015/08/27(木) 22:56:05.23 ID:???
まぁ、最終的には好き好きだよね。
どっちがいいかなんてわからんがお二人とも正しい。

ここは仲直りしようぜ。
俺の顔に免じて。
619 :
nobodyさん
2015/08/28(金) 09:09:31.70 ID:???
>>617>>614 かな?
そうだとしたら勘違いしているかもしれんが >>615 は俺(>>612とか)ではないよ。
それは >>615 と俺しかわからないことだけれど。俺も勘違いしているのかもしれんが。

ただ、議論やめようと思ってた部分は間違っていないから、一応、謝罪しとく。
正直、そろそろ他の閲覧者に迷惑かと思ったのもあるし、ここは >>618 の仲裁で手打ちということでどうだい?
それと俺は批判したつもりはないんだけれど、そう受け取れる箇所があったならごめんね。

もっとも >>616 のように参考になるという意見もあるから、続ける分にはやぶさかではないよ。
でも、議論を続ける気なら、リンクだけ張ってその文書中のどこが自分の意見なのかを示さないというのはフェアじゃない。
俺にはそのどこに反論すればいいのか分からないからね。そして君にはそれが分かる。どう考えてもフェアじゃないでしょう?
620 :
nobodyさん
2015/08/28(金) 10:08:30.38 ID:???
>>619
フェアじゃないのはお互い様じゃないか?
618のレスもそうだが、自分の有利なレスにしか反応しない。
一方的に手打ちにしようと言っておきながら、後者では批判する。
するとまた言い合いになる。そんなの目に見えてるわな。
621 :
620
2015/08/28(金) 10:11:14.62 ID:???
間違えた。「618のレスもそうだが」は「619のレスもそうだが」だった。

とにかく「俺はこうだけど、お前はこうだからもう止めよう」
って一方的な遮断をするのは、相手の反論を一切受け付けず
自分の思うように相手を従わせたいという思惑が見えて卑怯だよ。
622 :
nobodyさん
2015/08/29(土) 01:22:41.97 ID:???
>>620-621
それなら、もう少しだけ続けてみようか。

俺としては >>617 までは一応、全部に反論してきたつもりだったので、
君がアンフェアに感じた部分がどこだったのか分かっていない。
議論し足りなかった議題を一つ挙げてほしい。
選択は任せるので、それを最後の議論にするというのでどうだい?
623 :
nobodyさん
2015/08/29(土) 01:23:50.95 ID:???
失礼 >>614 まではね。
624 :
nobodyさん
2015/08/29(土) 02:07:18.84 ID:???
いい加減つまんね
625 :
nobodyさん
2015/08/29(土) 02:13:10.69 ID:???
2.6.7を使用しています。
下記の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)
の値を取得したいのですが、うまくできません。

どなたか、おしえていただけませんか!
626 :
nobodyさん
2015/08/29(土) 11:11:58.93 ID:???
>>625
結論から言うと無理だよ。concatで孫モデルまでまとめることは出来ない。
どうしてもそうしたいならjoinを使いましょう。
627 :
nobodyさん
2015/08/30(日) 01:21:50.17 ID:???
>>626
ありがとうございます!
解決出来ました!
628 :
nobodyさん
2015/09/04(金) 19:49:50.36 ID:???
【 オンラインTCGエディター 】 >>1

デュエル・マスターズ的な非電源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
629 :
nobodyさん
2015/09/04(金) 21:32:24.15 ID:???
CakeでMySQLのVIEWみたいな処理って出来ますか?
630 :
nobodyさん
2015/09/05(土) 02:07:55.12 ID:???
何を言っているのかよくわからない
modelでDBのviewを参照できるか、という意味?
631 :
nobodyさん
2015/09/05(土) 11:11:05.76 ID:???
エスパーするとMySQLでの操作(CREATE VIEW)
をせずにCake側でビューみたいに結合した結果を
見たいってことでは?
632 :
nobodyさん
2015/09/05(土) 11:19:04.03 ID:???
画像をDBではなく、webroot以下に保存する画像アップロードプラグインで
おすすめのはありませんか?
サムネイル作成など、機能は多い程ありがたいです
633 :
nobodyさん
2015/09/05(土) 13:29:50.16 ID:NBrY/rBT
UQ-WIMAXルータ ATERM WM3500Rを使っていて電源が自動で勝手に落ちてしまう場合の対処方法


http://know-how-tree.com/archives/2327
634 :
nobodyさん
2015/09/05(土) 18:25:19.06 ID:???
>>631
それはModel::find()で普通に取得するのと何の違いが?
DB側でview定義しない以上、毎回join条件を付与しなければならないのに
635 :
nobodyさん
2015/09/05(土) 20:17:32.51 ID:???
Mysqlのビューってどうなの?
みんな使ってるの?
前使ったことあるけど微妙じゃないあれ。
いまいち使いづらい感じ。
636 :
nobodyさん
2015/09/06(日) 12:32:19.29 ID:???
スレ違いだからこれ以上深入りはしないが、ストアドプロシージャとか
ストアドファンクションとかで使う共通部品としてなら便利という認識
637 :
nobodyさん
2015/09/07(月) 13:32:06.16 ID:???
>>632
いくつかあるけど、俺は自作をおすすめする。
既存のは小回りが聞きづらいし、自作のプラグイン(とかコンポーネント)でも
そんなに手間はかからないよ。PHPのソースがネット上に多くあるしね。
638 :
nobodyさん
2015/09/07(月) 13:44:12.92 ID:???
>>637
あざす、俺もすぐに見つかるものを少し試して、思いの外出来が良くないので自作に傾いてました。
やはりタダでは製品レベルのものはなかなかないですね
639 :
nobodyさん
2015/09/08(火) 14:25:47.61 ID:???
>>635
スキル次第。お前のスキルが微妙だから使った印象も微妙
640 :
nobodyさん
2015/09/10(木) 21:22:48.45 ID:???
http://book.cakephp.org/2.0/ja/core-utility-libraries/file-folder.html
基本的な使い方
App::uses() を使ってクラスをロードします。
App::uses('Folder', 'Utility');
App::uses('File', 'Utility');

とありますが、これは使う直前に毎回書くのでしょうか?
それとも、ファイルの冒頭などに1回書くだけ?
641 :
nobodyさん
2015/09/10(木) 22:03:35.21 ID:???
App::uses()は1回でOK
642 :
nobodyさん
2015/09/11(金) 23:50:23.87 ID:???
>>641
ありがとうございます。

別の質問もどなたか…。

Model::saveの返値は何でしょうか?成功失敗のboolでしょうか?
http://book.cakephp.org/2.0/ja/models/saving-your-data.html
何故ドキュメントにそういう基本的な事が載っていないのでしょうか?自分でソース見て調べるのがCake流?
643 :
nobodyさん
2015/09/12(土) 00:17:07.84 ID:???
>>642
http://api.cakephp.org/2.7/class-Model.html#_save
気になるところはAPIドキュメントも見ながらがいいよ
644 :
nobodyさん
2015/09/12(土) 02:15:06.39 ID:???
>>643
あざす、しかし雑な説明ですよね…
>>643さんではなく公式への不満ですが
結局自分で実際に試してみるしかないな
645 :
nobodyさん
2015/09/12(土) 11:08:33.05 ID:???
Cakeの場合は日本語訳が間に合ってないので、ドキュメントは英語版も参照すべし
日本語版に書いてないことが英語版には書いてあることがある
最終的にはソース見たほうが早いことも多々ある
646 :
nobodyさん
2015/09/12(土) 11:58:17.63 ID:???
英語版でも情報多くはないよね
Cakeのずっと改善されない点の一つ
647 :
nobodyさん
2015/09/12(土) 12:38:29.14 ID:???
普通にソースを見る癖がついたなぁ
648 :
nobodyさん
2015/09/12(土) 13:20:45.15 ID:???
>>647
俺も。cakephpのおかげで人のソースをみれるようになったな。
649 :
nobodyさん
2015/09/18(金) 01:50:51.05 ID:???
ぼくもー(^o^)
650 :
nobodyさん
2015/09/20(日) 15:15:49.81 ID:???
ソース見るのはいいんだけど、なんでもソース見て
理解するのもだめだよな。

理解するのに読まなければならない量が多い。
651 :
nobodyさん
2015/09/21(月) 20:30:12.03 ID:zJdcfcjc
なんかおもしろいものあった
http://goo.gl/YIsqjP
652 :
nobodyさん
2015/09/28(月) 17:49:39.11 ID:???
Model::queryでSQLを実行する時、プレースホルダを使わないと
インジェクション的にダメ、ゼッタイ!だと思ってたのですが
queryで実行したSQLはfetchAllに渡されるとどこかで見た記憶がありまして、
もしそうであればプレースホルダ使わなくても大丈夫なのかと思ってるのですが、これは間違いでしょうか?
653 :
nobodyさん
2015/09/28(月) 20:24:02.91 ID:???
SQLインジェクションが起きる理由を
勉強しましょう
654 :
nobodyさん
2015/09/29(火) 13:46:47.95 ID:???
fetchAllだからプレースホルダ使わなくてもいいって理屈は無い。
fetchAllはプレースホルダ使わないといけない。
655 :
nobodyさん
2015/09/30(水) 01:04:16.72 ID:???
2系で、一度に複数のレコードをsaveする場合、
saveしたidを取得する方法ってないですよね?
$this->Model->idだと1つのレコードしか取得できないので、
何か複数追加時のidが取れたら良いなっと思うのですが。
656 :
nobodyさん
2015/09/30(水) 02:03:39.95 ID:???
やったことないが、該当モデルにafterSaveコールバック定義しておけばできそうな気はする
657 :
nobodyさん
2015/10/01(木) 00:10:43.92 ID:476zm7XN
2つのモデルをまとめて1つにしてfindって出来ますかね?
MySQLのunionのイメージです。

社員(User)と取引先(Client)のメッセージをそれぞれ
UserMessage、ClientMessageに保存して使用しています。
メッセージは「社員から取引先」「取引先から社員」
に伝達するためのメールBOXのような感じです。

一覧表示時に1つにして表示したいと思い、質問しました。
バージョンは2.6.10を使用しています。ご存じの方はアドバイスください。
658 :
nobodyさん
2015/10/02(金) 11:11:22.98 ID:H+85UFUa
バーチャルフィールドのconditionsで絞り込みって出来ないのでしょうか?
例えば、ageというバーチャルフィールドを作って、Userというモデルで
$condtions = array('User.age' => 20);
としてみたのですが、findでDatabase Errorが出ます。

ググっても情報が見つからないので出来ないのかもしれませんが、、、
もし出来る方法があれば教えて下さい
659 :
nobodyさん
2015/10/05(月) 18:46:52.19 ID:jWEQQ/UZ
受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。

・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点
660 :
nobodyさん
2015/10/06(火) 06:00:23.27 ID:???
なんで就職するスレだと思った?頭大丈夫?
661 :
nobodyさん
2015/11/01(日) 00:00:32.85 ID:???
cakeこれから勉強始めるとしたら2?それとも3?
今までAccessで作ってたようなDBをWebで実現したいなと思って
情報収集してます。素のphpはぼちぼち勉強してるんですがフレームワークも触ってみたくて半分実験、半分勉強のよな感じです。
662 :
nobodyさん
2015/11/01(日) 15:32:58.65 ID:???
自分もこれからcake勉強しようと思ってるんだけど、3系は書籍もまだ何もないので、とりあえず情報の多い2からやろうと思ってます。
情報があれば3からやりたいんだけどな~
663 :
nobodyさん
2015/11/01(日) 16:39:21.98 ID:???
やっぱみんな悩むんだね
おれはPHPもMVCフレームワークの経験あるから3にしたけど
ドキュメントもまだ日本語化されてないところ多いから戸惑うことも多かったよ
パフォーマンスの高さやイマドキっぽい作りなのは3だけど
情報多いのは2なんだよね~
664 :
nobodyさん
2015/11/02(月) 09:32:05.68 ID:???
日本語ドキュメントしか読めないという奴はなんなの
英語勉強してないの?
頭悪いの?
665 :
nobodyさん
2015/11/02(月) 10:17:32.62 ID:???
>>664
>>663のことなら日本語ドキュメントしか読めないとは言ってないし
なんでそういう捉え方になるのか理解に苦しむ
英語もある程度は読めるけど母国語のほうが読みやすいのは間違いないでしょ?
そこは異論ないよね?
666 :
nobodyさん
2015/11/02(月) 10:46:36.95 ID:???
ここにいる時点でお察し
相手をしても仕方が無い
667 :
nobodyさん
2015/11/02(月) 11:19:26.92 ID:???
英語はできても日本語が読めなかったのだろう
668 :
nobodyさん
2015/11/02(月) 20:57:19.04 ID:aSd7O/p/
あるコントローラ内で同じメソッドを複数回呼び出している処理があるとして、
メソッドでエラーが発生した場合に何番目で呼び出されたときに発生したエラーなのか、
エラーログを見てすぐにわかるようにしたいのですが、
みなさんどのような工夫をされていますか
669 :
nobodyさん
2015/11/02(月) 21:02:28.90 ID:???
局所デバッグ中すかね
単に変数でカウントすりゃいいんじゃないかな。俺ならファイルに詳細な動作ログ書き出す
670 :
nobodyさん
2015/11/02(月) 22:49:44.79 ID:???
やったこと無いけど俺なら
動作するたびにログを取る。
ログしない=エラー
671 :
nobodyさん
2015/11/02(月) 23:39:16.74 ID:???
class contoroller {
function action () {
$this->A();
$this->B();
}
function A() {
$this->B();
}
function B() {
}
}

B()でエラーが出た時、
A()で呼ばれたB()でエラーになったのか
その後に呼ばれたB()でエラーになったのか
やはり前後のログとかから判断するのが普通ですかね
むずかしい
672 :
nobodyさん
2015/11/03(火) 00:40:59.39 ID:???
そんな単純な事例なら、単に例外投げてスタックトレースをログ取れば良くない?
673 :
nobodyさん
2015/11/05(木) 20:51:49.24 ID:x5tD0Tad
転職時の注意事項。
下記の条件が全て当てはまる会社にご注意下さい。

・IT系 in Tokyo
・転職会議で2.5点
・転職会議の「その他>2ch情報」の欄で過去の労基2chスレが表示される
674 :
nobodyさん
2015/11/06(金) 14:28:00.21 ID:???
本日、2系と3系でセキュリティアップデートがリリースされています。
詳細は後日公開するとのことなので私も詳しくは書きませんが、
特に業務で使っている方は、公開までの猶予期間内になるべくアップグレードしておいてくださいね。
675 :
nobodyさん
2015/11/06(金) 16:04:30.06 ID:???
また脆弱性か
まったくよーCakeはしょうがねえなどうしてくれるんだよ
676 :
nobodyさん
2015/11/06(金) 20:50:56.97 ID:???
>>675
メンテナンス放棄されるFWよりはよほどいいよ。
677 :
nobodyさん
2015/11/06(金) 21:13:10.35 ID:???
>>674
今回の修正はかなりヤバイですか?
678 :
nobodyさん
2015/11/06(金) 22:24:51.77 ID:???
>>677 ファイルインクルージョンなので、脆弱性の影響を受ける場合は結構深刻かもです。
あと、1系に関しては今回のリリースに含まれていませんが、そもそも1系は数日前に偶然サポートが終了しています。
仮に脆弱性が認められた場合にも、今後修正リリースが出ることはありませんのでご注意ください。
679 :
nobodyさん
2015/11/07(土) 15:51:12.76 ID:???
楽したいのに楽できないのか
680 :
nobodyさん
2015/11/25(水) 17:14:55.71 ID:???
Cake2を使っています、ログインページのみhttpsにしたいのですが
HTMLヘルパーでhttpsで始まるリンクを生成するにはどうしたら良いのでしょうか?
別のヘルパーでも構いませんが、Cakeの標準的な方法があれば教えてください
681 :
nobodyさん
2015/11/29(日) 04:38:05.23 ID:???
>>680 カスタムルートクラスを作成するか、AppHelper で url() をオーバーライドするかのどちらかだと思う。
前者はビュー以外からも使える点で汎用性が高く、後者は Cake に不慣れでも実装が簡単。
682 :
sage
2015/11/30(月) 13:20:14.64 ID:r6oWoP7k
>>680
俺なら別のアプローチを使う。
SecurityコンポーネントのforceSSLを使うことで、ControllerまたはActionレベルでSSLを強制できる。
>>681の方法だと全てのページのリンクをオーバーライドしたメソッドに書き換える必要がある。
いっぽう俺の方法ならSSL強制されたURLに非SSLでアクセスするとURLをhttpsに切り替えてリダイレクトしてくれる。
CakePHP+Security+forceSSLでググれば実装方法はいっぱい出てくる。
683 :
nobodyさん
2015/11/30(月) 15:33:19.50 ID:???
>>682 記述を書き換える必要はないはずなんだけど、でも、その方法の方がよさそうだね。勉強になった。
684 :
nobodyさん
2015/11/30(月) 16:37:03.55 ID:???
>>682
その方法は既に試したが、Cakeがredirectを発行する際にPOSTされた値が引き継がれず、使えなかった
685 :
nobodyさん
2015/12/01(火) 08:40:23.37 ID:???
そもそもログインフォームをHTTPSで表示かつフォームのPOST先もHTTPSにしないとダメだよね。リダイレクトということは、POST内容であるところのログイン情報がHTTPで一度サーバに届いてしまってるということでしょ。それではHTTPSの意味が。
686 :
nobodyさん
2015/12/02(水) 13:45:59.12 ID:???
おそろしい会話の内容だなw
>>685の言ってることは至極当然の認識であって欲しい
687 :
nobodyさん
2015/12/02(水) 20:24:30.36 ID:???
ログインページのURLをhttpsにするんじゃなくて(CakeのHTMLヘルパーではできない)
httpでログインページに遷移→Securityコンポーネントがhttpsにリダイレクト→httpsのログインページに到達→そこからログイン情報をPOST
って流れにすればいいんだよね?
でも最初からhttpsにリンク張りたいんだよなぁ、ブラウザから見えるリンク先がhttpだと不安を与えるかもしれないし
688 :
nobodyさん
2015/12/03(木) 15:53:02.33 ID:???
暇つぶしにラブやってみたら 想定外の若妻が・・
思い出しただけでもあの体は反則だよ
ついでに見返りもあって損はなかった

022it.★★t/d11/861xmas.jpg
★★をneに変更する
689 :
nobodyさん
2015/12/03(木) 17:57:04.77 ID:mKDK02zz
画像アップロードの処理ってどうしてますか?

普通は
アップロード→バリデーション→登録処理(ファイルはサーバの指定位置に移動)

だと思うのですが、バリデーションの方法で悩んでいます。
画像(jpg/fig/png)の判定は割りと問題ないと思いますが、
画像のファイルサイズの場合、どうしようかと悩みます。

というのも、ファイルサイズを気にせずにアップロードする人が多いです。
デジカメやスマホで写真を撮るとそれなりのサイズになりますので。

ですので、ファイルサイズ制限に関するバリデーションは入れない方が良いのでは?
とも思うのですが、そうするとサーバ攻撃の元になるので良くないです。

何か良い方法・考え方はないでしょうか?
もちろん、Cakeを使う場合でお願いします。
690 :
nobodyさん
2015/12/03(木) 18:56:52.86 ID:???
php.iniのupload_max_filesizeで制限
691 :
nobodyさん
2015/12/05(土) 13:54:12.48 ID:67hesvTc
転職の際に必ず思い出してください。
下記の条件が全て当てはまる会社にご注意下さい。

・IT系 in 東京
・転職会議で2.5点
・転職会議の「その他>2ch情報」の欄で過去の 労基 2chスレが表示される
692 :
nobodyさん
2015/12/08(火) 01:25:06.39 ID:???
だいぶ下がってるので上げとく
693 :
nobodyさん
2015/12/08(火) 16:38:11.99 ID:J+sKcpKq
             , ‐- '⌒ヽ
            /.:::::::::::::::::::::::\
.            /.::::::::::/ヽ::::::::::::ヽ
.          /::::::::::/ 、_ __,\:::::::::::.
      ー=≦:::::::ri:::/   bb)  Y:::::::ハ
       ー=彡::ハ|/    ゝ   i)::::八_    おまえらまだWeb業界で消耗してんの?
        ⌒ンノ∧   `ニ    从::::≧=‐  
             . イ        /_   ̄`    
.     , -‐  ´   !     ー   ´ ! ` ー-、
694 :
nobodyさん
2015/12/11(金) 09:10:32.49 ID:???
             , ‐- '⌒ヽ
            /.:::::::::::::::::::::::\
.            /.::::::::::/ヽ::::::::::::ヽ
.          /::::::::::/ 、_ __,\:::::::::::.
      ー=≦:::::::ri:::/   bb)  Y:::::::ハ
       ー=彡::ハ|/    ゝ   i)::::八_    俺なら別のアプローチを使う
        ⌒ンノ∧   `ニ    从::::≧=‐  
             . イ        /_   ̄`    
.     , -‐  ´   !     ー   ´ ! ` ー-、
695 :
nobodyさん
2015/12/11(金) 09:41:30.75 ID:???
このスレももう終わりだな。
というかCakePHPがもう終わりか。Stack Overflowとかで質問投げてみてももうまともな回答付ける人は見ていない印象。というかビュー自体が伸びない。
696 :
nobodyさん
2015/12/11(金) 13:40:38.06 ID:???
かと言って他のフレームワークに移行したかというと、そうでもなさそうだしな。
Rubyに勢いがあるような気はするけど、PHP自体の需要は落ちてない。
言語人気ランキングでは相変わらずの上位だし。

みんなどうしてるんだろうな?
WordPress使って、ちょっとPHPでカスタマイズするって程度なのかなぁ。
697 :
nobodyさん
2015/12/11(金) 14:33:33.47 ID:???
確かに、どうしてるんだろ。
そこそこ使えるフレームワークを利用してPHPで作る、という仕事が死滅してるとも思えない。需要はあるはずだよな。
そう簡単に他のものに乗り換えるのも効率悪いし。
うちはCakeで培った資産があるから未だにCakeだわ。不満はあるが慣れてしまったから大抵のものはさっと作れるし。
698 :
nobodyさん
2015/12/11(金) 16:26:27.61 ID:???
資産があるといいよな
案件毎に毎回使うフレームワークや言語がコロコロ変わるから全然定着しないわ
699 :
nobodyさん
2015/12/11(金) 21:07:28.13 ID:???
今ってサーバーはjson返すだけ、って作りのサイト増えてるから、もっと小さいフレームワークに散り散りになってんのかな?
700 :
nobodyさん
2015/12/11(金) 22:24:54.41 ID:???
そのJSONを生成するのはどうするんだよ?
JSファイルやPHPに直書きってわけでもあるまい。
なにかしらのデータを保存する管理画面みたいなのがあって、
そこでデータの出し入れをしてるはず。
そして、そうなればある程度のUIが必要だから、簡単にとは行かないと思う。
701 :
nobodyさん
2015/12/11(金) 22:36:59.36 ID:???
管理画面も認証とIP縛りのRESTful、クライアントはSPAなんてのも普通にあるよ
ユーザークライアントをSPAにすると管理画面もサーバサイドレンダリングにこだわる必要ないしね
702 :
nobodyさん
2015/12/11(金) 22:38:51.47 ID:???
だからもっと小さいフレームワークに散り散りって
phpでやるような案件には、cakeほどの機能がいらないって時代になってんじゃない
もっと大規模なやつはnodeとかで
703 :
nobodyさん
2015/12/12(土) 02:32:33.16 ID:???
もっと小さいフレームワークならもうオレオレで良いと思うなぁ。
あと、node使うケースとphp使うケースって違うと思うんだが。javaなら分かるけどさ。
704 :
nobodyさん
2015/12/12(土) 07:47:17.28 ID:???
オレオレ付くるの面倒だから、API1個だけ、コントローラー1個だけの案件でもCakeで作っちゃう
705 :
nobodyさん
2015/12/12(土) 13:25:14.54 ID:???
>>704
いきなりCakeからPHP学んだの?
俺は、最初は自作ライブラリみたいなのを作りつつ学んでたから、
自ずとオレオレみたいな小規模プログラムがあるんだよな
706 :
nobodyさん
2015/12/12(土) 13:43:07.05 ID:???
>>705
あるけど初期の頃に作ったのはあんまり気が利いてなくて出来が良くないから、使い回す気にならないんだよな
つーか使いづれえし
707 :
nobodyさん
2015/12/17(木) 09:45:25.06 ID:???
Cakeで二段階認証する方法ってないっすかね?
なるべく簡単にw
708 :
nobodyさん
2015/12/17(木) 09:57:18.25 ID:???
Cakeには気の利いた機能は一切ないよ
ホントこんなこともできないのかとビックリする、時代に全然追従する気がないな
709 :
nobodyさん
2015/12/17(木) 13:05:33.70 ID:???
二段階認証ってどんなの?
710 :
nobodyさん
2015/12/17(木) 19:10:30.10 ID:???
PC用と携帯用のメール登録して、
携帯にパスワード飛ばしてPCで認証。
これにだんかい
711 :
nobodyさん
2015/12/17(木) 23:01:39.55 ID:???
ああ、Googleがやってるようなやつね。
別に普通のダブルオプトイン処理と変わらない気がするけどなぁ
712 :
nobodyさん
2015/12/18(金) 01:34:27.94 ID:???
実装の手間はたいして変わらないかもね~
意思確認か本人確認かで目的は違うけど
713 :
nobodyさん
2015/12/23(水) 02:19:21.01 ID:Kn0zTwz6
マ イ ン ド コ ン ト ロ ー ル の手法

・沢山の人が、偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法

・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法

偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い

靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト

10人に一人は カ ル ト か 外 国 人

「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !,,,,
714 :
nobodyさん
2015/12/29(火) 14:40:19.96 ID:???
>>702
nodeはねぇ
フレームワークほぼ無いから
セキュリティ周り自分で全部やらんとダメでORMもない

使うのはそういうのあくまでそういのう関係ないところ
715 :
nobodyさん
2015/12/29(火) 16:51:37.93 ID:???
>>714
恥ずかしくないの?

http://bookshelfjs.org/
Bookshelf is a JavaScript ORM for Node.js,
716 :
nobodyさん
2015/12/29(火) 17:59:22.99 ID:???
これがPHPer
717 :
nobodyさん
2015/12/29(火) 22:28:20.55 ID:???
調べたことありゃ乱立状態なのはすぐ分かるだろうに、思い込みって凄いな
718 :
nobodyさん
2015/12/29(火) 23:10:18.99 ID:???
過去からタイムスリップしてきてるに違いない
719 :
nobodyさん
2015/12/30(水) 04:27:15.27 ID:???
PHPに比べれば乱立ってほどでもないな。

少数の優れたものだけが存在しているって感じがする。
720 :
nobodyさん
2016/01/04(月) 20:21:03.87 ID:???
それらが目立って突出してるってだけで
少数の優れたものだけが存在するなんて状況はありえない
裏で熾烈な競争があった結果
721 :
nobodyさん
2016/01/08(金) 16:56:20.23 ID:Gm/1Dq7D
操作ログの保存ってしてますか?

というのも、管理画面でいつの間にか設定変更されていることがあり、
それがいつ・どのタイミングでされたのか分からず困る時がありました。
(もちろん、サーバのログまで調べればある程度辿れるでしょうが・・・

なので、afterSaveで読み書きが発生した時に
実行時のcontrollerとactionを保存しようかと思うのですが、
みなさんはどうしているのかなと思い質問しました。
722 :
nobodyさん
2016/01/08(金) 23:07:05.85 ID:???
>>721
やればいいと思う。
俺は、デバッグ以外はやらないね。
723 :
nobodyさん
2016/01/09(土) 10:36:50.87 ID:???
で、Cake 3 ってどうよ?
いい感じ?
Cakeは重いってイメージしかないが。
724 :
nobodyさん
2016/01/09(土) 11:08:40.06 ID:???
仕事でWordPressやEC-CUBEばかりいじってると、Cakeが特別重いって感覚ないんだよな
重さよりも機能のショボさが気になる、歴史ある割に便利にならない
725 :
nobodyさん
2016/01/09(土) 11:16:18.34 ID:???
>>724
じゃあ何がいいの?
726 :
nobodyさん
2016/01/09(土) 11:26:08.50 ID:???
>>725
俺が知りたい
727 :
nobodyさん
2016/01/09(土) 14:06:17.70 ID:???
>>721
更新タイミング知りたいだけなら
DBに更新時間のフィールドないのか?
いちいち保存するより、DBあさったほうが早いんじゃない?
5W1Hみたいのがほしいなら、ログを残すのもありだけど
728 :
nobodyさん
2016/01/09(土) 14:08:36.93 ID:???
>>724
>WordPressやEC-CUBE
これをcakeで作れない?
729 :
nobodyさん
2016/01/10(日) 13:24:12.20 ID:???
>>727
鞭で申し訳ないが、DBあさるってどういう作業のこと?
730 :
nobodyさん
2016/01/10(日) 13:25:12.95 ID:???
>>728
それがbaserCMSなのかな
WordPressはCakeよりは軽いよ。関数思考だし。
731 :
nobodyさん
2016/01/10(日) 13:35:24.96 ID:???
WordPress重いよ…
DTIの500円の最低スペックVPSで動かしてると、WPもCakeも体感同じくらい重い、大した差は無いんだろう
732 :
nobodyさん
2016/01/11(月) 11:00:11.34 ID:???
>>729
ローカルな言葉でかいてすまん
DBに直接入ってselect文発行して調べるってことね

あとは管理画面のTOPページとか1枚ページ作って
管理画面から変更できるテーブル全部呼び出して、
更新日時で最近更新されたフィールド全部引っ張ってきて表示とか
変な変更とかしてなければ、フィールド更新時はUPDATEだったかな?のフィールドも更新されると思うんだけど
問題が発生してから調査するぐらいなら、後者は重くなる処理だからあまりお勧めはしない。
733 :
>>732
2016/01/11(月) 11:21:26.04 ID:???
ちな職場のポリシーになるけど、SQLで直接編集してる人がいたら対処できないので、
DBの設定でトランザクションログをとるなりして、探すしかないかな

ここまで書いて思ったけど、
もしかしてプログラムの意図と違った動作をしてるcontrollerとかactionを探したいってことなのかな?
ただ単純にいつだれがどこで目的のデータをいじったのかを知りたいってことなのかな?
自分は後者の更新日時だけを調べるって話で書いてたけど。
afterSaveとか使わないで、更新ボタンを押したときにどのデータをいじったのか
保存するようにすればいいだけな気もするけど。
734 :
nobodyさん
2016/01/11(月) 18:39:16.11 ID:???
>>732-733
すまん。やっぱり意味が分からん。
「DBに直接入ってselect文発行して調べる」ってのは、
誰がどのタイミングでどんなSQL文を実行したかログを見ろってことなの?

各テーブルの更新日時で更新されてるか確認するのは分かるんだけど
それって前回の更新日時も記録しておかないと意味ないよね?
記憶を辿って「誰か○日に更新したらしい」というのが分かるだけで。

別に更新内容そのものを確認できるようにする必要はないと思うけど、
サーバのログイン履歴みたいな感じで、
「誰がいつ、どのモデル(管理画面ならページ)を操作(action)したのか?」
が分かれば、問題発生した時のヒントになると思うんだが。
735 :
nobodyさん
2016/01/11(月) 18:45:38.02 ID:???
例えばだけど、
user_logs:id,user_id,controller,model,action,created

というテーブルを作ったとする。
user_idはログインした人のユーザーID。

AppController.phpにafterSaveで上記のテーブルにsaveするようにすれば、
最低限、「誰がいつどの操作をしたのか?」が分かると思うんだが。
こういう事じゃないのか?
736 :
nobodyさん
2016/01/11(月) 22:16:45.62 ID:???
>>735
俺もそう思う。Appmodelのaftersaveにlog取るクエリ入れりゃいいと。
737 :
nobodyさん
2016/01/12(火) 13:29:23.36 ID:???
>>736
あ、afterSave使うのAppModelだったね。指摘ありがと。
738 :
nobodyさん
2016/01/12(火) 17:11:39.34 ID:???
DB書き込み無限ループの刑
739 :
nobodyさん
2016/01/12(火) 21:21:09.94 ID:???
>>738
そこはログモデルのafterSaveをオーバーライドで。
740 :
nobodyさん
2016/01/13(水) 21:27:15.10 ID:grQAu3Np
741 :
nobodyさん
2016/01/14(木) 01:59:49.88 ID:???
スレの前半見たけど自演ひどすぎだろ
742 :
nobodyさん
2016/01/15(金) 12:15:02.86 ID:xp6SmtIr
運用管理は手が離れるから、ログはとらないかな
743 :
nobodyさん
2016/01/15(金) 22:05:08.77 ID:???
>>725
Spring Frameworkがいいと思うよ
744 :
nobodyさん
2016/01/15(金) 22:22:55.19 ID:???
聞いたこと無い
745 :
nobodyさん
2016/01/15(金) 22:54:55.06 ID:???
746 :
nobodyさん
2016/01/15(金) 23:39:14.76 ID:QNGL66/v
747 :
nobodyさん
2016/01/31(日) 13:07:36.50 ID:???
CakePHP 2にあった
$this->Model->invalidate()
って、3ではどうすりゃいいのさ?
コントローラーでエラーを発生させたいんだけど。。。
748 :
nobodyさん
2016/02/01(月) 10:49:29.24 ID:???
これじゃダメかい
$entity->errors('my_field', ['This is the error message']);
see http://book.cakephp.org/3.0/en/orm/entities.html#validation-errors
749 :
nobodyさん
2016/02/03(水) 21:55:02.52 ID:???
>>748
感謝感激雨霰
750 :
nobodyさん
2016/02/11(木) 21:02:04.75 ID:???
んちゃ
751 :
nobodyさん
2016/02/20(土) 19:09:16.27 ID:???
ビューからモデルの関数呼び出す方法ある?
2系です
752 :
nobodyさん
2016/02/20(土) 20:33:58.15 ID:???
>>751
class init で new する。
ググって。
753 :
nobodyさん
2016/02/20(土) 20:45:45.95 ID:???
あーそうなるのか、コントローラとビューで同じ事を実質2度やるのか
避けた方が良さそうやな
754 :
nobodyさん
2016/02/21(日) 07:06:54.47 ID:???
>>753
同じクラスなら作成済みのインスタンスが渡されるよ
755 :
nobodyさん
2016/02/21(日) 11:05:37.53 ID:???
さて、そろそろ次のプロジェクトは3で行くか別のFWにするか決めねばならぬ
756 :
nobodyさん
2016/02/21(日) 12:21:04.58 ID:???
>>755
俺は次は.net mvcで検討中だ
757 :
nobodyさん
2016/02/21(日) 23:56:16.79 ID:???
.new mvcはado entityと組み合わせえると開発しやすい
758 :
nobodyさん
2016/02/22(月) 11:31:28.31 ID:???
CakePHP3系について脆弱性の報告をしました。修正版が日本時間の 2016/02/22 にリリースされています。

http://bakery.cakephp.org/2016/02/21/cakephp_3016_3111_323_released.html

脆弱性の分類としては、XSS(クロスサイトスクリプティング)に該当するのではないかと思います。
3系で作成したサイトをインターネット上に公開している場合は必ず更新を行ってください。

更新を怠った場合、皆さまのサイトがフィッシング詐欺に使われてしまう可能性があります。
また、Google 等の検索エンジンからウィルスに感染しているサイトと見做され、皆さまのサイトが索引から削除されてしまうかもしれません。

なお、2系に関しては影響を受けません。
759 :
nobodyさん
2016/02/22(月) 13:56:58.53 ID:???
ということで、当分は2系を使うか
760 :
nobodyさん
2016/02/24(水) 17:41:38.84 ID:???
.
.
板違い(?)の上に、話をさえぎってしまいゴメンナサイ!(*_ _)人
でも、この板のユーザーさんにも有意義な告知かと思うのでカキコませてください。

★ 謝礼は十分いたします ★ アメブロなどのサイト制作ができる方!! 

アメブロなどを使用してのサイト制作のできる方を早急に求めています!
私はリケジョやPC女子からはほど遠く、サイト作成にはまったく疎いのでとても不自由しています…(> <;)
そこで私に代わりサイトを作成してくださる方を求めてこの場をお借りしました。

■サイトの内容…
アダルト系、違法性、その他公序良俗に反するものではありませんのでご安心ください。

■サイト制作の仕様ベース…
アメーバブログで十分です。願わくばwordpressなどのブログ形式のサイトを希望します。
それに準ずるもので使い慣れたものがあれば別のものでも構いません。

■条件はありません…
技術さえお持ちでしたら、学歴・職歴等は一切問いません。
フリーター、ニート、高齢ニート、コミュニケーション障害をお持ちの方、引きこもりの方、中年失業者、長期無職等、歓迎!

■作業形態…
作業は在宅でやって頂くことになりますので、時間の指定は一切ありません。別のお仕事の傍らに…でもOKです。

■詳細をお知りになりたい方は…
下記メールアドレスまでご連絡ください。詳しく書いた返信文を差し上げます。

※真剣な告知です。冷やかしはご遠慮ください。

井 上
inoue1952w★gmail.com
迷惑メール対策のため@部分を★にしてあります。
実際に送信する際には★を@マークに変えてください。
.
.
761 :
nobodyさん
2016/02/29(月) 17:32:06.68 ID:???
PHPのくだらない質問スレも無くなったし、この板自体が下火になってしまったね
みんなWebプログラミングしなくなったのかな・・・
762 :
nobodyさん
2016/03/02(水) 19:34:27.35 ID:???
cake3なんだけどbakeで作ったページだと勝手にエラーチェックをしてくれちゃってうざい
メアドの形式チェックってどこでやってんのこれ?
required外してもメアドだけは何かチェックが走っちゃう
763 :
nobodyさん
2016/03/02(水) 23:05:25.45 ID:???
サーバ環境の引越しとかを考慮するとオレオレFWの方が良い気がするんだけど
cakePHPを使った方が良いのかな?
764 :
nobodyさん
2016/03/02(水) 23:44:01.82 ID:???
>>763
オレオレが優れていると考える訳を知りたい
765 :
nobodyさん
2016/03/03(木) 11:04:57.70 ID:???
>>763
絶対cakephpのがいい。
766 :
nobodyさん
2016/03/03(木) 12:39:12.43 ID:???
Cakeより良いフレームワークいろいろあるから使ってみたいんだけど
過去の仕事の蓄積から、絶対Cakeで作った方がコスト安いので、毎回嫌々使う羽目になる
767 :
nobodyさん
2016/03/03(木) 14:23:08.90 ID:???
>>766
参考にphpでcakeより良いのがあれば教えてください。私はサポート期間重視で考えてます。
768 :
nobodyさん
2016/03/03(木) 19:20:16.50 ID:???
だったらCakeじゃないの
769 :
nobodyさん
2016/03/03(木) 21:16:56.38 ID:???
>>762 もう解決済みかもしれないけれど。

サーバー側のチェックを外したいなら、TableクラスのvalidationDefault()メソッド中の$validator->email()がやっています。
あるいは、ブラウザによってはクライアント側でチェックが走るのかも?
フィールド名がemailだとinputのtypeも勝手にemailになるので、それを外したいということだったら、

$this->Form->input('email', ['type'=>'text']);

みたいに指定するとチェックされなくなれるかもしれません。
770 :
nobodyさん
2016/03/04(金) 14:31:32.75 ID:???
>>763-764
Cakeの命名規則&仕様っぽいオレオレ作ったよ。
findとかsaveとか使えるけど、完全にMVCじゃなくてnewしてモデル読むやつ。
だから、小規模案件だと使い勝手が良い。必要なファイルだけ使用すればいいだけだし。
CakeだとコンソールとかACLとか余計なものもくっついてくるからね。
771 :
nobodyさん
2016/03/05(土) 20:12:32.01 ID:???
>>770
そんなオレオレがサーバ移行で優位な理由を知りたい
772 :
nobodyさん
2016/03/06(日) 19:09:45.34 ID:???
>>771
俺が作ったものだから勉強しないで済む
773 :
nobodyさん
2016/03/06(日) 23:15:14.15 ID:???
>>771
サーバ移行というか、PHP5.3→5.4の変更時も簡単だったよ。
Cakeで言うとObjectクラスを変更するだけだったし。
Cakeの場合、PHPのバージョンを変更するなら、Cake自体を変更になるし。
(1.3から2とかだいぶ変わったしな
774 :
nobodyさん
2016/03/06(日) 23:32:24.29 ID:???
> Cakeの場合、PHPのバージョンを変更するなら、Cake自体を変更になるし。

775 :
nobodyさん
2016/03/07(月) 07:10:28.71 ID:???
Cakeの場合、PHPのバージョンを変更するなら、Cake自体の変更が必要って意味かと
776 :
nobodyさん
2016/03/07(月) 08:39:06.62 ID:???
だからなんでそうなるんだよ
777 :
nobodyさん
2016/03/07(月) 10:25:39.22 ID:???
その独自フレームワーク、メジャーアップデートあるのか?
778 :
nobodyさん
2016/03/07(月) 13:39:00.33 ID:???
オレオレだから配布するわけじゃないだろうし、
メジャーアップデートってなんだよw
779 :
nobodyさん
2016/03/07(月) 13:41:27.90 ID:???
>>776
例えばPHPのバージョンを5.4に上げたら、1.3とか2でエラー出るよ
780 :
nobodyさん
2016/03/07(月) 19:03:17.18 ID:???
1.3は知らんけど2ではエラーなんて出なかったよ
781 :
nobodyさん
2016/03/08(火) 14:24:40.78 ID:???
出るよ。ググったら普通に出てるってブログ記事があるよ
782 :
nobodyさん
2016/03/08(火) 19:07:49.98 ID:???
オレオレに構っても意味ない
783 :
nobodyさん
2016/03/09(水) 07:56:13.50 ID:???
そりゃ出る人も出ない人もいるけど
互換性で言えば出ないとは言い切れない
ので出ることもあるとしか言えない
784 :
nobodyさん
2016/03/09(水) 08:57:08.56 ID:???
田宮さんかよ
785 :
nobodyさん
2016/03/12(土) 13:33:41.85 ID:???
CakePHPをまともにしたようなフレームワークないかな
786 :
nobodyさん
2016/03/12(土) 14:47:32.01 ID:???
”まとも”ってどういう意味で?
787 :
nobodyさん
2016/03/12(土) 14:58:49.08 ID:???
今時必要な機能がだいたい入っているという意味
788 :
nobodyさん
2016/03/12(土) 15:10:32.94 ID:???
なら知名度のあるフレームワークは
全てまともだと言えよう。
789 :
nobodyさん
2016/03/12(土) 15:10:50.93 ID:???
もちろんCakePHPも含めて
790 :
nobodyさん
2016/03/12(土) 15:12:24.74 ID:???
Cakeは機能が足りない。鬼のようにプラグインを足す羽目になり不便
791 :
nobodyさん
2016/03/12(土) 16:58:48.99 ID:???
>>790
他の言語含めて、そんなfwがあったら教えて欲しい
792 :
nobodyさん
2016/03/12(土) 18:32:00.55 ID:???
>>790
逆に俺には詰め込みすぎに思えるが
793 :
nobodyさん
2016/03/12(土) 19:51:08.91 ID:???
Cakeで十分ってどんだけ機能少ないサイトだよ
個人運営のしょぼいサイトか?
商業用作ってるかどうかが意見の分かれ目なのかな
794 :
nobodyさん
2016/03/12(土) 20:31:38.44 ID:???
>>793
fwの機能としては充分てことだろ。
機能が必要なサイトなら、そのサイトに適当な機能をあちこちから選んでつければ良いだけ。
詰め込みすぎて自由度がなくなったり、学習コストが高くなるくらいなら、
今のcakeくらいでちょうど良い。
795 :
nobodyさん
2016/03/12(土) 20:42:14.82 ID:???
いやどんなサイトにでも大体必要な機能ってあるやん、そのくらいはFWに入っていて欲しい
別に自由度なくなったり学習コスト上がったりしないだろ
796 :
nobodyさん
2016/03/13(日) 07:59:08.23 ID:???
どんなサイトにでも大体必要な機能で
Cakeに無いのって例えば何なの?
797 :
nobodyさん
2016/03/13(日) 09:37:33.07 ID:???
自分で一つも思い付かないの?
本当にCake使ってるの?
798 :
nobodyさん
2016/03/13(日) 10:25:59.14 ID:???
俺はSearchとDebugプラグインしか追加してないや。
他に何入れてるの?
799 :
nobodyさん
2016/03/13(日) 11:57:36.28 ID:???
非公開(公開終了?)とか自作とか知り合い作とかおすすめできないのとかあるから大体で書くと

DebugKit
Minify
Blowfishで暗号化するやつ
CakeResque
Opauth
BoostCake
TwigView
TwigBake
メンテ中表示にするやつ
時間表示を○分前とかにするやつ
ユーザーエージェント判定するやつ
PayPal支払い
ドラッグドロップでアップロードするやつ
captchaするやつ
Googleマップ簡単に入れるやつ
NGワード判定
QRコード生成
CSV読み書き
PDF生成
タグ機能
httpとhttpsの出し分け処理するやつ

ぱっと思い付いたのがこのくらい、多分他にもあるがこの辺は仕事で請け負う規模のサービスだと大体毎回使うから
最初から入ってるか、定番のものがあるとありがたいといつも思ってる
800 :
nobodyさん
2016/03/13(日) 13:03:53.97 ID:???
>>797
使ってないから、ない機能が思いつかないんっだろうねw

ない機能はたくさんある。使ってるからわかる!
言わないけどな!
801 :
nobodyさん
2016/03/13(日) 13:05:09.06 ID:???
>>799
それらが入っているCakePHP以外の
フレームワークって何があるの?

マジレスするとフレームワークに入れるべきではない機能ばっかりだ。
(だから他のフレームワークにも入っていない)
802 :
nobodyさん
2016/03/13(日) 13:14:49.45 ID:???
どういう理由で入れるべきではないと主張してるのかは知らんが
少なくとも使用者の俺の立場からは、入っててくれた方がうれしいよ
803 :
nobodyさん
2016/03/13(日) 13:56:27.62 ID:???
いや、それって単にお前が自分で作れないだけだろ?
ドラえもんの四次元ポケットじゃないんだから、
無いのは自分で作ればいいだけじゃん。
のび太よろしく、なんでも道具に頼るのは良くない。
804 :
nobodyさん
2016/03/13(日) 13:58:25.46 ID:???
作れるか作れないかで言ったらフレームワークだって作れるじゃん
そんな車輪の再発明みたいな無駄な時間使いたくないからFW使ってるんだから
なんでも最初からあった方がいいに決まってる、自分の労力はもっと上の方の機能に使いたいじゃん
そんな基本もわからないほどレベル低いの?
805 :
nobodyさん
2016/03/13(日) 14:57:49.93 ID:???
>>804
fw開発者自身がそう思ってる。だから実装されない。
806 :
nobodyさん
2016/03/13(日) 15:22:34.15 ID:???
>>802
> どういう理由で入れるべきではないと主張してるのかは知らんが

そりゃフレームワークなんだから、
「枠組み」の部分はフレームワークに入れる必要があるが
枠組みの中の部分はライブラリを使えばいいんだよ。
807 :
nobodyさん
2016/03/13(日) 15:33:07.35 ID:???
>>804
極端すぎ。1か0で考えてるのかよ。
少なくともFWに必要な基本的な機能はあるんだから、
追加分は自分で作れって話だろ。どんだけレベル低いんだ
808 :
nobodyさん
2016/03/13(日) 21:57:28.50 ID:???
Eclipse 3.7 Indigo の時にはエディタを2つ開いて
左右に並べる事が出来ていました。

しかし、Eclipse 4.5のMarsでリモートシステムで接続し
ファイル編集をしようとしたところ、右クリック > 新規エディタ
とする事が出来なくなってしまいました。

Eclipseの最新バージョン(Mars)では出来ないのが仕様となってしまったのでしょうか?
809 :
nobodyさん
2016/03/13(日) 22:54:11.72 ID:???
>>799
ライブラリやプラグインじゃダメなの?
810 :
nobodyさん
2016/03/14(月) 11:58:47.08 ID:???
>>808
について誰か教えてやれよ
811 :
nobodyさん
2016/03/14(月) 12:00:33.07 ID:???
教えてくれよ、の間違いだろ?
812 :
nobodyさん
2016/03/14(月) 18:06:11.28 ID:???

分からんかったらすっこんでろ。アキバ系のキモオタク。
813 :
nobodyさん
2016/03/14(月) 22:20:49.75 ID:???
今日のSecurityFixは結構条件が限られるかな。
814 :
nobodyさん
2016/03/26(土) 09:58:30.36 ID:???
このスレ下がりすぎワロタ
もう誰も使っていないのか
スレが落ちたらさらに笑う
815 :
nobodyさん
2016/03/26(土) 10:43:22.70 ID:???
>>814
フレームワークとしてある意味充分で枯れてるからね。
書き込みの勢いだけで判断する愚かな人はいないよ。
816 :
nobodyさん
2016/03/26(土) 11:53:22.32 ID:???
今CakePHPで作るなら2と3どっちが良いの?
817 :
nobodyさん
2016/03/26(土) 12:00:16.12 ID:???
どうして皆はcakeなの?
railsじゃダメなの?
818 :
nobodyさん
2016/03/26(土) 12:20:37.42 ID:???
どっちでもええよ
819 :
nobodyさん
2016/03/26(土) 13:37:49.95 ID:???
>>817
なんでrailsのがいいんだ?
レンタルサーバーじゃ動かんし、覚えるの面倒だろ。
820 :
nobodyさん
2016/03/26(土) 14:16:19.21 ID:KniYU/rm
2の方が安定してていいのかな?
3のメリットってなんだろう
821 :
nobodyさん
2016/03/26(土) 17:35:17.90 ID:???
>>819
VPSつかえよ
ODBC接続も可能やぞ?
822 :
nobodyさん
2016/03/26(土) 18:26:49.80 ID:???
>>821
vpsも使ってるけど、管理が面倒だから、普通のレンタルサーバーでも使いたいんだわ。
823 :
nobodyさん
2016/03/27(日) 00:10:54.93 ID:???
>>821
VPS使えってことは、サーバ管理のリスクも負えってことだな
824 :
nobodyさん
2016/03/27(日) 14:32:05.67 ID:???
モデルが1000個とかになるとどうなるの?
825 :
nobodyさん
2016/03/27(日) 18:29:25.38 ID:???
>>824
設計を見つめ直せ
826 :
nobodyさん
2016/03/27(日) 19:45:38.96 ID:???
モデルの中から別のモデルを呼び出すのも設計が悪い?
827 :
nobodyさん
2016/03/28(月) 00:11:51.08 ID:???
悪すぎ。スパゲティコードと一緒
828 :
nobodyさん
2016/03/28(月) 01:05:49.47 ID:???
>>827
そうかもしれんが、そっちのが早くコーディングできる場合も多いよ。
829 :
nobodyさん
2016/03/28(月) 04:15:00.41 ID:???
自分で納得してるなら人に聞くなよ
830 :
nobodyさん
2016/03/28(月) 06:57:30.40 ID:???
おいそいつは俺じゃねーよ
831 :
nobodyさん
2016/03/28(月) 11:25:44.48 ID:???
結局コントローラに全部書くのが一番早いという結論に一周回って達した
832 :
nobodyさん
2016/03/30(水) 19:15:43.87 ID:???
ビューにはあまり書きたくないよな
<head>~</head>の内容を書くことが結構あるけど。
833 :
nobodyさん
2016/04/13(水) 11:03:40.18 ID:eWmkLfyA
急にPaginatorが機能しなくなったんだけど、何が原因?

それと、急にInternal Error Has Occurred.が出るんだけど、何が原因?

ページネータなんて、自分で作った方が高機能なもの作れるんじゃね?
なんでヘルパーで実現しなければならないの?

明らかに開発効率下がってるよ。
834 :
nobodyさん
2016/04/13(水) 11:10:28.42 ID:eWmkLfyA
ページネータうざいね。
バグは直ったけど、ページネータ以外のデータ処理でキーが必要なのにnullとかのときの例外メッセージが書けない。
これって、仕様なんだろうね。
835 :
nobodyさん
2016/04/13(水) 11:22:30.55 ID:eWmkLfyA
PHP7がリリースされたけど、
PHP7にフレームワークってどうやって動かすの?

まだ、PHP7対応のフレームワークって無いわけか?
早く高速のPHP7でフレームワークに対応してほしい

もうひとつ加えれば、なるべく分派してほしくない。よりスタンダードチックなフレームワークを作ってほしい。
軽いやつ。
836 :
nobodyさん
2016/04/13(水) 13:05:46.92 ID:???
>>833-834
1行ずつデバッグできないの?

それか、あちこちにprint文をばらまいて、変数の内容を見る
837 :
nobodyさん
2016/04/13(水) 23:40:56.42 ID:???
Cakeのページネータの実装はちょっとなあ……
他のライブラリを使う手もある

http://harikt.com/blog/2016/01/13/cakephp-orm-and-illuminate-pagination/
838 :
nobodyさん
2016/04/13(水) 23:46:26.60 ID:???
メジャーどころのFWの最新版はだいたいPHP7対応してるでしょ

Cakeも確か2.7か2.8あたりで対応したんじゃなかったっけ?
予約語の関係でStringクラスが使えなくなるのがメインの障害だったとか
839 :
nobodyさん
2016/04/15(金) 02:33:50.76 ID:???
>>837
他のライブラリでページネーションのような仕組みを付けられるの?
もしあるなら教えて。使い勝手見てみる。
840 :
nobodyさん
2016/04/15(金) 11:19:07.22 ID:???
リンク先はCakeのORMとLaravel標準のページネータの組み合わせだな
841 :
nobodyさん
2016/04/15(金) 14:53:56.31 ID:???
ページネータの実装の問題点をこのスレでよいので列挙していただけると嬉しいです。順次修正したいと思います。counter()とかnumbers()が直感的じゃないのでしょうか。
842 :
nobodyさん
2016/04/24(日) 11:05:40.86 ID:rcoMW0Ll
>>835
CakePHPのgithubに対応状況が色々書かれてたと思いますよ
310KB

lud20160425014606
このスレへの固定リンク: http://5chb.net/r/php/1406984261/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「【PHP】フレームワーク CakePHP 17ホール目【v3α】YouTube動画>2本 ->画像>2枚 」を見た人も見ています:
【それでも】100切り 57ホール目【楽しい】
【PHP】フレームワークPharonスレ
【PHP】フレームワーク Akelos
【PHP】フレームワークMapleに舌鼓
ビーナスイレブンびびっど! 22ゴール目【ワッチョイ無し】
【FAガール】フレームアームズ・ガール155【コトブキヤ】
【FAG】Shadowverse 3606ターン目【フレームアームガールズ】 [無断転載禁止]
【それでも】100切り 87ホール目【楽しい】
【333疲れ】サカつくシュートRe:144ゴール目【次はクラウンマッチだと?】
コーンフレークの美味しい食べ方ある?
(´・ω・`)コーンフレークは好きですか?
かつや、「スパイスチキンのコーンフレークカツ丼」を発売
【うまるちゃん&売国アズールレーン】ハセカラ民アンチスレ★25【イルミナティ&けもフレ】
【徹底実食】ミルクボーイでおなじみの「コーンフレーク」何かける?
【FAガール】フレームアームズ・ガール120【コトブキヤ】
【FAガール】フレームアームズ・ガール159【コトブキヤ】
【FAガール】フレームアームズ・ガール109【コトブキヤ】
【PHP】Ethna part.2【国産フレームワーク】
結局PHPのフレームワークってどれがいいの?
【FAガール】フレームアームズ・ガール115【コトブキヤ】
【FAガール】フレームアームズ・ガール188【コトブキヤ】
【春なのに】サカつくシュート141ゴール目【冬最強】
【PHP】Laravel【フレームワーク】 Part.2
MS、単一コードでiOS/Android/Windows/Macに対応できるオープンソースのUIフレームワーク「.NET MAUI」を発表
【RIA】Sencha Ext JS 4【フレームワーク】
【朗報】フレームアームズガールの新人声優・綾瀬有ちゃんが嫌儲民好みのエロカワイ子ちゃんだとアニメファンの間で和題に。 [無断転載禁止]
【それでも】100切り 72ホール目【楽しい】 コテ禁 [無断転載禁止]
【動画】陽キャさん、誕生日にシャケフレークや生卵がついたパンで顔面にパイ投げされてしまうwwwwwwwwww
(´・ω・`)鮭フレーク炒飯食いたかった
【FAガール】フレームアームズ・ガール66【コトブキヤ】 [無断転載禁止]
【それでも】100切り 57ホール目【楽しい】
【FAガール】フレームアームズ・ガール125【コトブキヤ】
symfony PHPフレームワークpart2
【FAガール】フレームアームズ・ガール156【コトブキヤ】
買い物中僕「コーンフレーク買おう、一週間の朝飯だ」
【経済】森永チョコフレークの生産終了へ★2
【FAガール】フレームアームズ・ガール176【コトブキヤ】
【FAガール】フレームアームズ・ガール183【コトブキヤ】
【FAガール】フレームアームズ・ガール187【コトブキヤ】
【FAガール】フレームアームズ・ガール193【コトブキヤ】
【自転車】フレームとかパーツの素材ってカーボンが一番なの?
【FAガール】フレームアームズ・ガール185【コトブキヤ】
【FAガール】フレームアームズ・ガール111【コトブキヤ】
【GREE】ソーシャルアプリ開発スレ【モバゲー】
【吉原】プリティガール17 ©bbspink.com
【みんなで】100の切り方4ホール目【考えよう】 [無断転載禁止]
【レース】Asphalt アスファルト総合61 ->画像>10枚
森永チョコフレーク、生産終了
チョコフレーク
[PHPフレームワーク]Laravel
【hp】HP Compaq 6535s/CT Notebook PC 2ユーザ目->動画>1本->画像>20枚
【それでも】100切り 83ホール目【楽しい】
【え?過疎】サカつくシュート145ゴール目【スキルも終焉だしなあ】
【333疲れ】サカつくシュート144ゴール目【次はクラウンマッチだと?】
【ウチはポイチだ】サカつくシュート139ゴール目【爆死】
【それでも】100切り 59ホール目【楽しい】
【アキュテイン】治療レポ 1クール目【ニキビ治療】
スマホ依存の若者のせいでカールやチョコフレークなどの定番菓子が消えていく…おやつ時の「ながらスマホ」は全面禁止にすべし
【KONAMI】実況パワフルサッカー 195ゴール目【パワサカ】
【コトブキヤ】フレームアームズ-FRAMEARMS- part58
【それでも】100切り 91ホール目【楽しい】
【FAガール】フレームアームズ・ガール147【コトブキヤ】
【GF】ガールフレンド(仮)二十八枚目 ©bbspink.com
【M-1ミルクボーイ効果】コーンフレーク品切れも 製造元ケロッグ社には5倍超の発注 2019/12/25
01:57:33 up 126 days, 2:56, 0 users, load average: 30.52, 51.43, 56.22

in 0.021660089492798 sec @0.021660089492798@0b7 on 082114