nobodyさん<><>2014/08/02(土) 21:57:41.01 ID:LI0DdohH.net<> 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/ <>【PHP】フレームワーク CakePHP 17ホール目【v3α】
nobodyさん<>sage<>2014/08/02(土) 22:00:21.62 ID:???.net<> 前スレ、埋まりきってないのに何故か落ちたので立てた。
>>1 少し修正した。
Lithium の話題はもう何スレッドも出てきてないので消したよ。 <>
nobodyさん<>sage<>2014/08/03(日) 09:32:53.64 ID:???.net<> あーー、スレタイ間違えたわ
17ホール目じゃなくて18ホール目だった!
スマン <>
nobodyさん<>sage<>2014/08/03(日) 13:46:39.60 ID:???.net<> 良いってことよ。乙。 <>
nobodyさん<>sage<>2014/08/05(火) 15:21:34.94 ID:???.net<> 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;
}
} <>
nobodyさん<>sage<>2014/08/07(木) 00:21:06.42 ID:???.net<> Baserってどうすか? <>
nobodyさん<>sage<>2014/08/07(木) 14:20:30.27 ID:???.net<> あれ使うならWordPressの方がよっぽどいい <>
nobodyさん<>sage<>2014/08/07(木) 14:56:16.53 ID:???.net<> >>7
WordPress以下って、そこまで酷いってこと? <>
nobodyさん<>sage<>2014/08/07(木) 15:06:32.73 ID:???.net<> >>8
世界中で何万人と使っているOSS以下なのが、
「そこまで酷い」に該当するの??? <>
nobodyさん<>sage<>2014/08/07(木) 16:55:45.08 ID:???.net<> >>9
WordPressって、コードが酷いって散々言われているので。。。 <>
nobodyさん<>sage<>2014/08/07(木) 17:46:25.12 ID:???.net<> >>10
じゃ、君の質問は
「BaserCMSはWordPressよりコードが綺麗なの?」
あるいは
「BaserCMSってコードが綺麗ですか?」
って事を聞きたいのか? <>
nobodyさん<>sage<>2014/08/10(日) 09:39:28.18 ID:???.net<> cakephpのテストでモックって使うべき?
勉強してもわからない。
モデルで、twitterにログインできるか?
をテストしたいんだけど。 <>
nobodyさん<>sage<>2014/08/10(日) 17:39:12.38 ID:???.net<> テストの使い方がわからない <>
nobodyさん<>sage<>2014/08/10(日) 19:57:19.49 ID:???.net<> >>12 その場合は使わなくても問題なさそう。
やったことないけど twitter から成功したかどうかのレスポンスが返ってくるんだよね?
それが期待通りかテストすればいいと思う。
モックは、あるメソッドが期待通りの回数よばれたか、みたいなテストに便利。
たとえば、トランザクションの成功ケースのテストだとこんな感じ。
$mock->expects($this->one())->method('begin');
$mock->expects($this->one())->method('commit');
$mock->expects($this->never())->method('rollback');
begin() と commit() は一回だけ呼ばれるべきだし、 rollback() は呼ばれるべきじゃない。 <>
nobodyさん<>sage<>2014/08/10(日) 20:15:20.15 ID:???.net<> >>14
ありがとうございます。
ツイッター側でメールアドレスとパスワード入力してOKボタン押さないといけないんです。
file_get_contentsみたいに帰ってくるならいいんですが。
あと、モックで回数を確認するのにと言うけどトランザクション以外で例ありますか?
今まで、回数を確認したいと思ったことがないんです。 <>
nobodyさん<>sage<>2014/08/11(月) 02:25:00.88 ID:???.net<> >>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行修正する、という愚挙に出ます。 <>
nobodyさん<>sage<>2014/08/11(月) 02:34:11.23 ID:???.net<> >>16 訂正 will は with の誤りです。 <>
nobodyさん<>sage<>2014/08/11(月) 11:37:29.34 ID:???.net<> >>16
ご丁寧にありがとうございます! <>
nobodyさん<>sage<>2014/08/11(月) 15:39:39.01 ID:???.net<> >>18 どういたしまして <>
nobodyさん<>sage<>2014/08/14(木) 11:29:49.85 ID:???.net<> どうしてもテストを書く時、
テストを先に、メインのプログラムを後に。というのがやりづらい。
先にメインのプログラムから書いてしまう。
何かコツみたいなないですか? <>
nobodyさん<>sage<>2014/08/14(木) 17:57:35.56 ID:???.net<> そもそもテストの意味がまるでわからない。
何かを登録する処理があるとして、
それをブラウザで実行して確認すれば良いだけじゃないのか? <>
nobodyさん<>sage<>2014/08/14(木) 19:34:58.00 ID:???.net<> あれデジャビュ <>
nobodyさん<>sage<>2014/08/15(金) 00:06:24.74 ID:???.net<> >>21
そう思うんだけど、テストした方が良いというのが定説なんだよね。 <>
nobodyさん<>sage<>2014/08/15(金) 04:46:25.44 ID:???.net<> >>21
テストケースを書けばテストも自動化できるので、コードの品質管理の上では必須。
ただ、Cake使いにはそういう所は少ない印象。
そういう取組をする現場はもっと新しいものを積極的に採用してるね。 <>
nobodyさん<>sage<>2014/08/16(土) 01:43:18.22 ID:???.net<> >>24
テストケースって言うけどさ、ブラウザで実行して確認するのとどう違うんだ? <>
nobodyさん<>sage<>2014/08/16(土) 08:47:31.75 ID:???.net<> >>25
新規会員登録に成功、失敗。
ログインに成功、失敗。
パスワード変更に成功、失敗。
この合計6つのテストを一瞬でやれる。
また、これにツイッターでログイン機能をつける場合、ブラウザテストだとすべてをテストし直す必要があるが、
テストケースがある場合、どんな方法でツイッターログインをつけようがテストさえつけりゃOKということになる。 <>
nobodyさん<>sage<>2014/08/16(土) 08:49:14.66 ID:???.net<> 特に自分の場合はもう30過ぎたおっさんなので昨日のご飯すら覚えてない。
強いて言えば昔書いたプログラムなどほとんど覚えてない。
しかし、テストケースさえありゃどんな目的で作ったのか一目でわかるようになる。 <>
nobodyさん<>sage<>2014/08/16(土) 16:43:12.80 ID:???.net<> >>26
それをブラウザで実行して確認するのと
何がどうメリットがあるのか全く理解できないんだよな。
どうせテスト書いてもブラウザで確認する作業もあると思うし。 <>
nobodyさん<>sage<>2014/08/16(土) 16:46:43.74 ID:???.net<> 単体テストでググれ <>
nobodyさん<>sage<>2014/08/16(土) 19:48:20.56 ID:???.net<> >>28
俺もテスト書くまではあなたと同意見だった。テスト書く手間もあるし、書き方もわからんし。
ただ、確認する項目が100,200となってくると同じ確認を何度もできなくなる。
手間だから。
安心感みたいなのもあるかもしれない。 <>
nobodyさん<>sage<>2014/08/20(水) 08:16:48.64 ID:???.net<> http://jobinjapan.jp/job-listing/keyword-cakephp.html <>
nobodyさん<>sage<>2014/08/21(木) 20:58:07.10 ID:???.net<> 公開画面の一部だけCake使うってこと出来ませんかね?
例えばDBに登録しているバナーを表示して、
表示回数をカウントするような機能。
こういうのは早い動作(処理)を求められるけど、
Cakeを通すとどうしても動作が遅くなってしまう。
けど、読み書きにControllerやModelを使いたい。
なにかいい方法ありませんかね? <>
nobodyさん<>sage<>2014/08/21(木) 22:41:55.19 ID:???.net<> Cakeと他のアプリの共存は.htaccessないし類似の設定で振り分ければできる
って書こうと思ったが後半見ると質問の意図は違うのか?
Cakeを丸ごと使うと遅くなるから機能の一部だけ使って速度と便利さ両立するような方法ない?って話? <>
nobodyさん<>sage<>2014/08/21(木) 22:43:19.63 ID:???.net<> >>33
はい。そういうことです。
1.3系にはあるみたいですが、2系ではググっても見当たりません。 <>
nobodyさん<>sage<>2014/08/21(木) 23:12:05.66 ID:???.net<> そもそもそこまでしてCakeにこだわる意味あるのか?
フルスタックで高速開発が売りなのにわざわざバラして使うとか
素直に他の独立して使えるORMかSQLクエリビルダーのライブラリ使うってのは駄目なわけ?
軽いのならidiormとかあるじゃん
その例の程度だとControllerの必要性は感じないし
もしくは処理速くするだけならCakeフルに使ったままで
PHPをAPCやらで高速化するという手もあると思うけど <>
nobodyさん<>sage<>2014/08/22(金) 00:12:48.81 ID:???.net<> >>35
Cakeにこだわる意味あります。例えば>>32の要件の場合、
バナーの管理って管理画面を作ると思うのです。
その場合のログインシステム、バナー画像の管理、アクセス数の確認
など管理画面でやりたいことが結構あります。
これをフルスクラッチで作るのは結構骨が折れます。
「アクセスが集中する箇所を軽くしたい」という要件を満たすためだけに、
フレームワーク使わないというのは非効率に感じるのです。 <>
nobodyさん<>sage<>2014/08/22(金) 00:18:28.47 ID:???.net<> なんで全部フルスクラッチにするの?
表示のカウントは管理画面と別でしょ?
管理画面だけCakeで作ってDBだけ共用すれば? <>
nobodyさん<>sage<>2014/08/22(金) 00:32:14.41 ID:???.net<> >>37
ということは、管理画面だけCakeにして
他は別のフレームワークを使うということですか?
それはそれで正しい開発の在り方なのでしょうか・・・ <>
nobodyさん<>sage<>2014/08/22(金) 00:42:28.69 ID:???.net<> フロント側に他のページもあるならそこもCakeで作ればいいよ
要はアクセス集中する部分だけ素のPHPに近い状態で書けば速いわけだけど
Cakeはフレームワークの一部だけ取り出して使うことをあまり想定してないからこの用途にはあまり向かないんじゃないのってこと
かと言ってフルスクラッチはキツイだろうから軽めの他のライブラリ併用すれば?と
そこに他のフレームワーク使って何とかなるなら管理画面ごとそのフレームワーク使えばいいよね <>
nobodyさん<>sage<>2014/08/22(金) 01:16:14.35 ID:???.net<> 機能がよく分割されてるのは、SymfonyとかLaravelだな。
Silex+Twig+Eloquentとか簡単にできる。 <>
nobodyさん<>sage<>2014/08/22(金) 01:34:06.53 ID:???.net<> あとAuraかな <>
nobodyさん<>sage<>2014/08/22(金) 02:05:27.82 ID:???.net<> 外部ファイルにapp/webroot/index.phpの中身をコピって下部のDispatcherの部分のコード削って
その続きからApp::uses('Model', 'Model')などと書き始めれば動くことは動きそう
でも軽いかこれ? <>
nobodyさん<>sage<>2014/08/22(金) 02:13:08.95 ID:???.net<> バナーの表示回数ってWebサーバのログから集計したら
リアルタイムにデータ取りにくい代わりに負荷減らせね? <>
nobodyさん<>sage<>2014/08/22(金) 03:07:44.02 ID:???.net<> サーバのログから集計するって初めて聞いた考え方だなw
サーバのログ=テキストファイルだけど、
それを分析・分類するのはどうするんだ?シェル書くのか? <>
nobodyさん<>sage<>2014/08/22(金) 09:21:10.25 ID:???.net<> アクセス解析のごく一般的な方法の一つでそ
共用のレンサバに機能としてついてるようなアクセス解析はほぼこの類
Apacheログのパーサーくらい探せばPHPのライブラリもあるだろうが
シェルスクリプトのが軽いか
最近はFluentdでログを構造化するのが流行ってんじゃね <>
nobodyさん<>sage<>2014/08/22(金) 09:34:12.26 ID:???.net<> CakeのModelだけ使うなんてドMの所業としか思えないよママン(´・ω・`) <>
nobodyさん<>sage<>2014/08/22(金) 12:33:28.35 ID:???.net<> でも、バリデーション便利だよ? <>
nobodyさん<><>2014/08/23(土) 14:14:21.76 ID:1tdBFRBe.net<> チュートリアルの認証部分のコントローラの$componentsのloginRedirectのaction部分をいじってるんですが、
ファイルを保存してもすぐに反映されません。
これはどこかにキャッシュされますか? <>
nobodyさん<><>2014/09/02(火) 17:18:10.52 ID:QrpuDeHl.net<> WordPressのテーマ編集のように、
ビューを管理画面から編集する機能をつけようと思っているのですが、
単にPHPのソースを編集する形にしても問題ないのでしょうか?
(不特定多数が使用しません。管理者のみです)
非プログラマにPHPファイルを編集させるのは違和感があるのですが、
WordPressでそうなってるので、特に問題ないのかな?と感じています。
もし、問題がある可能性があれば注意点を教えて下さい。 <>
nobodyさん<><>2014/09/02(火) 23:39:56.72 ID:4+zCLOUH.net<> WordPress と同じぐらいの問題がある。
CakePHP 固有の問題は思いつかない。 <>
nobodyさん<>sage<>2014/09/02(火) 23:50:38.40 ID:???.net<> テンプレートファイルの編集ミスったら普通にエラー出るじゃん
稼働中に止まってもいいサイトならどうでもいいが
管理者だってミスるだろうしせめて構文チェックくらい入れて差し上げろ <>
nobodyさん<>sage<>2014/09/02(火) 23:51:19.97 ID:???.net<> 実サイトへの反映前にプレビューできる機能があるとベターだろうな
若干面倒だが <>
nobodyさん<>sage<>2014/09/03(水) 00:19:55.11 ID:???.net<> >>50-52
なるほど。ビューの編集機能ってあった方が良いんですかね?
自分は直接いじるので無くても構わないのですが、
CMSだとあるのが必須のような気がして、迷います。 <>
nobodyさん<>sage<>2014/09/03(水) 00:48:46.04 ID:???.net<> 【まともにCMSを運用してるユーザーやWeb開発者】
IDEかエディタでテーマ編集してローカル環境でテストしてからアップする
管理画面にビュー編集機能がなくても大して気にしない
【個人サイトやビジネス利用でも運用が適当なユーザー】
少々サイトが止まってても良いので管理画面から直に変更を加えたいこともある
というイメージ
あと考えられるのはCMSまたはCakeのディレクトリ構造をよくわかっていない奴がビューを触りたいなら便利なのかもな
テーマ編集機能がないとそもそもどのファイルいじれば表示変わるんだよと文句言う奴もそれなりにいる
その程度の知識でビュー触んなハゲと言いたいが現実は非情である <>
nobodyさん<>sage<>2014/09/03(水) 01:03:28.90 ID:???.net<> 有名所のCMSはレンタルサーバの簡単インストールに対応してる場合がある
さらにWPはwordpress.comみたいなホスティングもあるし
極端な話FTPすら分からなくても利用開始できてしまうんだよな
そこまで行くともうブラウザから殆どの作業ができるようにせざるを得ないという感じなのでは
個人的には機能実装の優先度は低いと思う
大衆向けCMSとして成功したならいずれ要望が出てくるんだろうが <>
nobodyさん<>sage<>2014/09/03(水) 01:13:13.14 ID:???.net<> Web製作者がビューいじるだけならどうでもいい
大勢の一般人に使わせるならあってもいい
そして一般人に使わせるCMSならビューには
自動エスケープするテンプレートエンジンを使ったほうがいい <>
nobodyさん<>sage<>2014/09/03(水) 03:02:35.39 ID:???.net<> そういえば BaserCMS とかに編集機能あるよね <>
nobodyさん<>sage<>2014/09/03(水) 11:31:38.30 ID:???.net<> あるけど、あれも直接編集する形だよ <>
nobodyさん<>sage<>2014/09/04(木) 05:40:00.77 ID:???.net<> <?php if ($a): ?>
<p>こんにちは</p>
<?php else: ?>
<p>こんばんは</p>
<?php endif; ?>
FWを使用しなくてviewに相当するスクリプトにこう書いているものを、
cakephpではどうやって書くのがよい作法なのでしょうか? <>
nobodyさん<>sage<>2014/09/04(木) 10:02:35.94 ID:???.net<> 唯一の正解はないと思うが自分が段階的にリファクタリングすると考えると
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日かかるかもしれないな <>
nobodyさん<>sage<>2014/09/04(木) 10:44:49.53 ID:???.net<> ビューやヘルパーやコントローラーに何でもかんでも書いてるCakeのアプリってさ
大概テストコードも少ない上に1つのクラスとメソッドがとても長いんだよね
保守を押し付けられたら死ぬしかない <>
nobodyさん<>sage<>2014/09/04(木) 12:37:25.21 ID:???.net<> >>60
横だけど、1の書き方はおかしくないか?
ビューやコントローラで変数に代入するってのは違うと思うだが。
普通に共通ヘルパー作るので良いと思うんだけど。
<?php echo $this->ViewCommon->greeting(); ?>
みたいな感じで出力して。
ヘルパー内の関数(greeting)で時間帯に合わせて
出力メッセージ変えれば、>>59がやりたかった事をシンプルに出来るだろ。 <>
nobodyさん<>sage<>2014/09/04(木) 19:57:46.19 ID:???.net<> ビューはなるべくやめたほうがいいのは同意するけど
コントローラでビュー変数をセットするのって普通じゃないの?
ビューにModelのfindの結果渡すのと同じだし <>
nobodyさん<>sage<>2014/09/04(木) 20:18:57.95 ID:???.net<> これくらい単純ならヘルパーが手軽よなあ
ヘルパーはプレゼンテーションロジック担当というMVC原理主義に従うならモデル作るのが正解なんだろう <>
nobodyさん<>sage<>2014/09/04(木) 20:37:01.94 ID:???.net<> >>63
それはビューに変数を代入したり、可変する場合な。
>>59のような挨拶って代入する必要ないだろ。
「◯◯さん、こんにちは」の、名前の部分は別だが。 <>
nobodyさん<>sage<>2014/09/04(木) 20:41:26.45 ID:???.net<> 条件によって変化してるんだから可変と解釈しても問題なくない? <>
nobodyさん<>sage<>2014/09/04(木) 20:46:00.11 ID:???.net<> 質問者の意図として、挨拶文のところは、簡単な例で示しただけだと思うから、
「ヘルパーで十分」って回答するのは、あまりに浅はかだろw <>
nobodyさん<>sage<>2014/09/04(木) 20:51:18.46 ID:???.net<> >>61
共通ヘルパーが神クラス化してるアプリ見たことあるわw
ヘルパーなのに主役というギャグだったんだと思ってる <>
nobodyさん<>sage<>2014/09/04(木) 20:59:14.22 ID:???.net<> CakePHPとかいう初心者向け似非MVC養成ギブス
さっさと投げ捨てよう <>
nobodyさん<>sage<>2014/09/05(金) 00:09:03.50 ID:???.net<> >>67
エスパーじゃないんだからさ、例示以上の事を推測できないでしょ。
ま、一応用途を推測した上で回答してるけど、
それでもコントローラから挨拶文を生成するやり方は
バッドプラクティスだと思うけどなぁ <>
nobodyさん<>sage<>2014/09/05(金) 01:22:18.58 ID:???.net<> この例の挨拶文の分岐はビューロジックじゃなくね?
どっちの挨拶文を選択するかはビュー関係なしに解決できる。
"よい作法"を問われたらモデルに書いて素直なMVCするが正解だとおも。
ヘルパーは表示整形用途に留めるべきで、
コントローラはMV間の糊に徹するべき。
3系ならViewCellも選択肢に入る。 <>
nobodyさん<>sage<>2014/09/05(金) 01:28:31.63 ID:???.net<> 俺はヘルパーかコントローラに気分次第で書いて、太ったら慌ててモデルとテスト作るクチだがね。 <>
nobodyさん<>sage<>2014/09/05(金) 01:53:21.35 ID:???.net<> モデルに書く意味が分からん。ただのビューの表現に過ぎないのに。
例えば、おはよう・こんにちは・こんばんわ以外に
時間帯によって挨拶文を出力したいとする。
ロジックが発生するけど、これモデルか?モデルなら何のモデルだ?
Userモデルか?会員サイトじゃない場合はどうするんだよ。
だったらヘルパーにする方が汎用性高いだろ。
別に例を出すと、パンくずリストがある。ページによって位置が変わる。
しかし、これはHTMLヘルパーに用意されている機能だ。
コントローラに依存しそうな機能なのにヘルパーだ。
なぜか。ビューで表現する機能だからだ。
1から10まで仕様通りに作れとは言わないが、
より複雑に作る事をお勧めするのは如何なものかと感じる。 <>
nobodyさん<>sage<>2014/09/05(金) 01:56:33.77 ID:???.net<> FW初心者がのたまう"モデル"ってデータベースありきで話通じないときある
最初はデータベースにモデルを永続化しないアプリケーションを作りながら
MVCフレームワークを学ばせたほうがいいんじゃないかと思う <>
nobodyさん<>sage<>2014/09/05(金) 02:12:07.63 ID:???.net<> >>74
あるある
フレームワークで用意されたModel・AppModelクラスを継承したものだけがモデルだと思ってる
実際はモデルの部分集合にすぎんのに
んで行き場を失ったビジネスロジックがコントローラやヘルパーでヒャッハーしてる <>
nobodyさん<>sage<>2014/09/05(金) 03:12:00.07 ID:???.net<> Cakeのパンくずリストの実装って微妙じゃね?
特にHTMLヘルパーがパンくずの配列$_crumbsを状態として持ってるのは違和感バリバリだわ
おもいっきり単一責任の原則に反してるしパンくずリストの構築に責任を持つクラスを作るべき
ヘルパーのメソッドはパンくずリストを表すオブジェクトか配列を受け取って出力の整形をするだけでいい
>会員サイトじゃない場合はどうするんだよ。
腹筋崩壊するからやめろっやwwww <>
nobodyさん<>sage<>2014/09/05(金) 04:34:38.73 ID:???.net<> >>74-76
な、結局煽ったり重箱の隅突っつくしかなくなるだろ?
いつの間にか話が「モデルの使い方」になってら。
話のすり替えもいいとこだ。
>>67では「簡単な例で示しただけ。浅はか」と言ったから、
仕様を会員サイトで想定し体験をだしたら、腹筋崩壊するぐらい面白いっと。
次はどんな煽りで来るんだろうなー面白いこと言えたらいいんだけどなー <>
nobodyさん<>sage<>2014/09/05(金) 10:37:11.84 ID:???.net<> 共通Helperそこまで叩くほどなん?
複雑な処理なら一部他に任せるように変えてけばよくね?
モデルに委任してもいいし
コントローラ経由でモデルに処理移すのと大差ないやん <>
78<>sage<>2014/09/05(金) 11:00:32.52 ID:???.net<> んー処理が複雑or挨拶文を設定ファイルから読みたいときは
例えばSystemMessageクラスをモデルに作るのもあり……? <>
78<>sage<>2014/09/05(金) 11:10:14.48 ID:???.net<> ま、喧嘩すんなや
ビューロジックとビジネスロジックの解釈の違いが噛み合わん原因っしょ
>>73の会員サイトの例で説明を試みると
挨拶文はUserモデルと比べれば瑣末にすぎないビューの表現の一種やん→ビューロジック ヘルパー派
挨拶文の選択条件は見せ方に依存しねえじゃん→ビジネスロジック モデル派 <>
nobodyさん<>sage<>2014/09/05(金) 12:29:00.74 ID:???.net<> おはこんばんちわ、○○さん! <>
nobodyさん<>sage<>2014/09/07(日) 03:06:53.03 ID:???.net<> すみません誰か分かる人いたら教えてください
pagenationでUNION使いたいんだけど情報が全くないので困ってます
生のSQL叩いてpagenationに組み込む方法しかないのかな <>
nobodyさん<>sage<>2014/09/07(日) 11:45:44.93 ID:???.net<> >>82
多分、別のモデルを作るのがいいと思う。
簡単なのは、UNION 後のビュー(データベースのビュー)のモデルを作る方法。
この方法なら、Model::$paginate() と Model::$paginateCount() をわざわざ実装する必要がないからね。
ビューを作るのが嫌な場合、それらのメソッドを実装したモデルを作ることになると思うけど、
その場合は、生の SQL を書くより DboSource::buildStatement() を使った方がいいと思う。
Paginator::$settings の設定を生の SQL に組み込むのは大変だよ。 <>
nobodyさん<>sage<>2014/09/07(日) 11:47:23.50 ID:???.net<> 間違えた。
Model::paginate() と Model::paginateCount() ね。 <>
nobodyさん<>sage<>2014/09/07(日) 17:38:42.22 ID:???.net<> >>83
レスありがとうございます
ビュー作るのは少し微妙なのでbuildStatement()の方で補おうと思います
それでもなかなかややこしいですね <>
nobodyさん<>sage<>2014/09/10(水) 19:35:59.90 ID:???.net<> 自分の個人サイトでcakephp使ってる人居ますか?
リニューアルついでにcakephp使おうか迷ってる。 <>
nobodyさん<>sage<>2014/09/11(木) 01:14:28.20 ID:???.net<> いるだろそりゃ。俺もその一人だが。 <>
nobodyさん<>sage<>2014/09/11(木) 01:15:53.40 ID:???.net<> どんなサイトか分からんが、個人でやって迷ってんならやってみろよ <>
nobodyさん<>sage<>2014/09/24(水) 23:35:14.19 ID:???.net<> 2.4でoracle使いたいんだけど、どうやったら使えるの? <>
nobodyさん<>sage<>2014/09/25(木) 01:32:54.46 ID:???.net<> 2系からはサポートしなくなった。
俺は使ったことないんだけど、Oracle のプラグイン作ってくれた人がいる
https://bitbucket.org/odin88/cakephp-2.0-oracle/src <>
nobodyさん<><>2014/10/07(火) 11:48:06.87 ID:QG2cjBR/.net<> CakePHP2 のhasManyで、プライマリーキー以外を使ったアソシエーションは定義できないのでしょうか。
たとえば 商品 hasMany 素材 だとして
商品のPK以外の値と 素材テーブルのある値とでアソシエーションを組みたい場合があります。
この場合、「素材のある値」はforeingKey で指定可能ですが、商品テーブル側のどの値を使うのかは
PKで決め打ちになっていていじれません。
どうするのが良いでしょうか。 <>
nobodyさん<>sage<>2014/10/08(水) 23:25:18.00 ID:???.net<> >>91
プライマリーキーって動的に変えられるから、変えてからアソシエーションすりゃいいんじゃないのかな。 <>
nobodyさん<>sage<>2014/10/09(木) 18:34:02.73 ID:???.net<> >>92
ありがとうございます。
やってみましたところ、うまくいきました。 <>
nobodyさん<>sage<>2014/10/25(土) 16:31:19.49 ID:???.net<> 愛国者と言うほど保守派でもないが、民主党に投票するほど反日ではない <>
nobodyさん<>sage<>2014/11/04(火) 02:37:17.02 ID:???.net<> cakeって学習コストどんなもん?
fuelと比べてつらい? 簡単? <>
nobodyさん<>sage<>2014/11/04(火) 02:55:59.62 ID:???.net<> XAMPP1.8.3
PHP5.5
CakePHP2.4.10
http://ameblo.jp/tondemonight/entry-10124640485.html
少し古いページですが、URLの末尾にスラッシュ(トレイリングスラッシュ)を
つけようと思い上記ページの通りに.htaccessを設定しました。
思い通りの動きにはなったのですが、何故かpostもgetもデータが受け取れなくなりました。
htaccessを理解しないまま貼り付けたため、何が原因でこういう事態になったのかわかりません。
とりあえず、htaccessを元に戻せばデータの受け渡しはできるのですが。。。
XAMPP上で上記の動きになったので、さくらインターネット環境でも
試したのですが同様の現象が発生しました。
どなたか詳しい方、教えて頂けないでしょうか? <>
nobodyさん<><>2014/11/15(土) 12:14:51.51 ID:W0Odgr3A.net<> 存在しないURLでアクセスされた際に
Missing Method in AdminController
こいうエラーメッセージが表示されてしまいます。
これを表示させない方法はありますか?
やりたい事は、もし存在しない(コントローラー等が未定義)の状態で
アクセスされたら指定したエラーページに飛ばしたいです。 <>
nobodyさん<>sage<>2014/11/15(土) 16:00:55.50 ID:???.net<> config の debug レベルを変更 <>
nobodyさん<><>2014/11/15(土) 19:52:27.40 ID:ZGSnFqpd.net<> >>98
ありがとうございます。 <>
nobodyさん<><>2014/11/15(土) 20:12:36.24 ID:VK5/2N9R.net<> フォームヘルパーを使って以下のコードを記述すると
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> <>
nobodyさん<>sage<>2014/11/15(土) 22:46:51.55 ID:???.net<> cakePHPのコントローラー名は
【複数形の英単語】Controller.php
という名前にするのがルールなのでしょうか?
必ず複数形にする必要があるのでしょうか? <>
nobodyさん<>sage<>2014/11/16(日) 02:51:08.67 ID:???.net<> >>101
ルールではない、規約だ
規約にのっとっていれば色々とフレームワークが自動でやってくれる部分が多いが、
規約から外れたとしてもなんとかする方法は(面倒臭い方法だが)用意されている
そういう面倒臭さが嫌なら大人しく規約に従っておくのが吉 <>
nobodyさん<><>2014/11/16(日) 11:29:55.49 ID:88uIuRDd.net<> >>102
了解です。
thank you <>
nobodyさん<><>2014/11/16(日) 11:31:49.43 ID:QtKRF6/y.net<> 因みにcakePHPでサイトが作成されている事を
(開発の出来る人を想定)閲覧者にばれない様に作り込む事は可能ですか?
幾らやってもばれるものでしょか?
セキュリティ的に開発に使用しているFWは隠蔽した方が良い気がしております。 <>
nobodyさん<>sage<>2014/11/16(日) 11:40:56.93 ID:???.net<> >>104
種類がばれて問題になるようなFWは使わないほうがいい <>
nobodyさん<><>2014/11/16(日) 13:04:20.46 ID:rzwbZ1qv.net<> >>105
一から開発するの凄く手間じゃないか <>
nobodyさん<>sage<>2014/11/16(日) 14:58:24.60 ID:???.net<> >>104
cakeだとわかるような部分が見つかったらその都度対応すればいい <>
nobodyさん<>sage<>2014/11/16(日) 15:00:53.86 ID:???.net<> cakeのセキュリティのなにが不満なのだろう?
そしてなにを満たせばセキュリティ的に合格なFWなのだろう?
セキュリティがーとかいう人間に限って知識が薄っぺらい。 <>
nobodyさん<><>2014/11/16(日) 15:33:17.44 ID:I3T4ePm6.net<> >>104
アセットディレクトリを /wp-contents/themes/*** にして、/wp-admin/ の振る舞いを偽装して
WordPress っぽくつくる。
これであまり熱心ではない開発者はWPだと思うだろ。
あとは Router というか $routes の設定をいじって、URLのパターンから推測できないようにする。
エラーメッセージの文言をすべて変更する。
まぁでも、既知の領域では隠蔽できるだろうけど、いつ何時新しい状態が現れるか分からないから完全に隠すのは難しいと思われる。 <>
nobodyさん<>sage<>2014/11/16(日) 19:46:24.87 ID:???.net<> Cakeの1や2系で、検索サイトのDB設計したりすると遅いの?
零細企業のサイトで、たった数件の検索に毎回15秒かかってるとこがあって理解できん
作った人間が下手なだけならいいが、Cakeの問題なら仕事で使いたくない
MVCやルーティングだけFW、DBやSQLカスタマイズでセキュリティ自力対応じゃダメかね
Cake案件が多いので、企業が使いたがってるのかは知らんが、気になってしょうがない <>
nobodyさん<>sage<>2014/11/16(日) 21:26:26.08 ID:???.net<> まともに設計してそこまで遅くなるわけない
開発者もサーバの性能も糞すぎるとかじゃねえの <>
nobodyさん<>sage<>2014/11/16(日) 22:24:01.26 ID:???.net<> データが1000万行あって、トランザクションして、ソートして、メモリ足りなくて、SQLシステム共にスワップして…
だったら15秒くらいかかる。 <>
nobodyさん<>sage<>2014/11/16(日) 22:36:50.85 ID:???.net<> そのサイトには、総数500件って書いてあるから
非表示状態のレコード含めても1000行はこえないでしょ
過去テーブルに移してなきゃ、ID番号が4万台だから最大4万行のはず <>
nobodyさん<>sage<>2014/11/16(日) 22:40:15.89 ID:???.net<> ? <>
nobodyさん<>sage<>2014/11/17(月) 18:34:09.12 ID:???.net<> >>113
すごいエスパーだな <>
nobodyさん<>sage<>2014/11/17(月) 20:32:45.39 ID:???.net<> パフォーマンスの調査すらできない奴なら
何使っても一緒だわな… <>
nobodyさん<><>2014/11/17(月) 23:14:10.85 ID:84kAq3io.net<> >>109
ありがとうございます。 <>
nobodyさん<><>2014/11/18(火) 07:26:12.45 ID:BXcgCvPC.net<> cakePHPでテーブルを定義して
<td style="width:100px"></td>
という風に列幅を指定しているにも関わらずサイズが適用されません。
なぜでしょうか?また、どうすればcakePHPを使用していても
指定したサイズに列幅調整を行う事が出来ますか? <>
nobodyさん<>sage<>2014/11/18(火) 16:42:48.64 ID:???.net<> idをauto_incrementにすると、1から順に増えてきますが、1001からとかってできますか? <>
nobodyさん<>sage<>2014/11/18(火) 18:42:27.17 ID:???.net<> >>119
それはcakeじゃなくてDBの問題。MySQLなら
ALTER TABLE テーブル名 AUTO_INCREMENT=1001
とか実行すればいいよ
まあphpmyadminとか使ってGUIでやったほうが楽だけどね
>>118
まちがいなくcakeは無関係
出力された後のことはHTMLとブラウザの解釈の問題
とりあえずは簡単なサンプルでタグの不整合だのCSSだのをチェックし直すといい <>
nobodyさん<>sage<>2014/11/18(火) 19:07:45.09 ID:???.net<> phpすら関係ないなw <>
nobodyさん<>sage<>2014/11/18(火) 20:13:46.51 ID:???.net<> >>110
インデックス貼ってないんじゃないの?
mysqlってインデックス貼らないと遅くなるの俺は最近知ったね。 <>
nobodyさん<><>2014/11/18(火) 23:18:16.68 ID:72ycgRPS.net<> Google Analytics をelementの中に定義して
次の呼び出しをしているのですがなぜか
Google Analytics に認識されません。
サイトにアクセスした直後にリアルタイムを見ていますが
アクセスが一向にカウントされないのですがなぜでしょうか?
<?=$this->element("google_analytics")?>
</head> <>
nobodyさん<><>2014/11/18(火) 23:24:02.50 ID:8pS7TyyM.net<> >>123
だけど分かりました。単なるタイムラグでした。 <>
nobodyさん<>sage<>2014/11/18(火) 23:27:49.19 ID:???.net<> PHP関係ない質問はよそでやれよ…… <>
nobodyさん<>sage<>2014/11/18(火) 23:34:44.64 ID:???.net<> >>110
その遅さじゃindexどころか、innodbで↓やってるとしか思えないな
「総件数(○○件)」 SELECT count(*) FROM テーブル
「検索項目A(○件)」 SELECT count(*) FROM テーブル WHERE カラム = 'A'
「検索項目B(○件)」 SELECT count(*) FROM テーブル WHERE カラム = 'B'
「検索項目C(○件)」 SELECT count(*) FROM テーブル WHERE カラム = 'C' <>
nobodyさん<><>2014/11/20(木) 18:21:53.44 ID:CTsz5JQb.net<> cakePHPで次の様にオーソドックスなパス配置で
システムを組んでいます。
hogeuser/apps/test_app
→アプリ本体
hogeuser/cake
→cakePHPのモジュール群
hogeuser/www/test_app
→最初にアクセスされる基本ファイル等(index.php)
hogeuser/www/image/****
→ここにAuth認証でログインしたユーザのみが画像等をアップロード出来る様な
システムを組みたいのですが、cakePHPで実現可能でしょうか?
様にしたいのですが <>
nobodyさん<>sage<>2014/11/21(金) 01:55:20.21 ID:???.net<> >>127
アセットのパスは CakePHP に依存せず自由だよ。
ほかの原因で権限が無いとかはあるかもしれないけど、Cake側では制限はない。 <>
nobodyさん<>sage<>2014/11/27(木) 14:38:07.68 ID:???.net<> スマホ用のビューってどうやって管理してますか?
テーマを作るってやり方を見たのですが、
他に良い方法があれば教えてください。 <>
nobodyさん<>sage<>2014/11/27(木) 22:10:45.74 ID:???.net<> なぜテーマが使えないのか、
あるいは何がしたいのか書かないとレスしようがないんじゃないかな <>
nobodyさん<>sage<>2014/11/28(金) 06:59:13.03 ID:???.net<> CSSで解決できるから、FWから見たらstaticページと扱いが何も変わらない。
Model(ロジック)の方は、特別にスマホ対応をする場合もあるかもしれんが。 <>
129<>sage<>2014/12/01(月) 13:39:14.91 ID:???.net<> >>130
「テーマが使えない」ではなく、他に方法があれば教えてくださいという質問です。
>>131
レスポンシブデザインならCSSだけで良いのですが、
スマホ専用サイトの場合、ビューが変わるし、必要なモデルも変わります。
PC版と同じコントローラーを使って同じだけモデルを呼び出すのは
無駄な要素が大きいと思い、テーマの変更だけで良いのかな?と思いまして。 <>
nobodyさん<>sage<>2014/12/01(月) 23:10:19.10 ID:???.net<> >>132
俺はテーマ以外考えられんな。
レスポンシブでPC、スマホの両方対応というのも無駄な処理がコントローラーに増え、重くなるし。
テーマ一択で。 <>
nobodyさん<>sage<>2014/12/02(火) 00:51:09.72 ID:???.net<> 呼び出すモデルが変わるならいっそコントローラーやアクションを分けるのもありじゃない?
アクション共通ならビューにサブディレクトリ作るだけでもいい気が <>
nobodyさん<>sage<>2014/12/02(火) 01:45:31.11 ID:???.net<> >>133
横レスだけどレスポンシブデザインにしたらサーバーサイドの処理は基本的には変わらないんじゃないの?
俺の勘違いかな。 <>
nobodyさん<>sage<>2014/12/02(火) 02:25:29.44 ID:???.net<> >>135
おっしゃる通り。確かに変わりませんね。
僕のミスです。失礼しました。
レスポンシブデザインって、ちゃんとしたサイトだとPCとスマホは分けるべきだと思うんだけどな。 <>
nobodyさん<>sage<>2014/12/02(火) 06:43:53.62 ID:???.net<> Modelが変わるとか後出しだし。
Modelが変わるなら、Viewも応じて変えた方がいいに決まってる。 <>
nobodyさん<><>2014/12/04(木) 15:36:33.40 ID:R0j+bkTk.net<> ビューのコーディングについて相談です。
Cakeで出力されるHTMLのCSS部分はローワーキャメルケースですが、
HTMLヘルパーを使用しない箇所はどうしていますか?
同じようにローワーキャメルケースで書いてますか?
それとも独自の書き方を採用していますか? <>
nobodyさん<>sage<>2014/12/04(木) 16:07:23.93 ID:???.net<> >>138
独自だね <>
nobodyさん<>sage<>2014/12/05(金) 10:17:08.32 ID:???.net<> >>139
そうですか。特にこだわらないでも良いですね。ありがとうございます。 <>
nobodyさん<><>2014/12/10(水) 12:16:09.19 ID:D9PtQRCX.net<> 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の名前を変えても実行するにはどうすれば良いのでしょうか? <>
nobodyさん<>sage<>2014/12/10(水) 14:34:35.99 ID:???.net<> >>141
コンソールから起動させるのは cake.php じゃなくて cake (bash) のほうな。 <>
nobodyさん<>sage<>2014/12/10(水) 14:37:49.96 ID:???.net<> あぁ、悪いちゃんと読んでなかったわ。
app の名前を指定するパラメータは確か -app じゃなかったかな。
-app app-admin
みたいなのをくっつければいいかもしれない。
そもそも、そんな呼び出し方する理由が分からんがな。
普通は app-admin のディレクトリに移動して Console/cake を呼び出すんだぜ。 <>
nobodyさん<>sage<>2014/12/10(水) 15:23:03.23 ID:???.net<> -app app-adminの変更で出来ました。ありがとうございました。 <>
名無しさん@そうだ選挙に行こう<><>2014/12/14(日) 19:10:29.85 ID:R4VgTAzM.net<> cakePHPでassociationを使うと
毎回結合が走っている様です。
この条件の時には結合を走らせるけれども
この場合には、結合せずにfindする
といった事をコントローラー側で制御する事は可能でしょうか?
毎回、結合してクエリ結果を返していると、テーブルのレコード件数が大きくなってきた場合に
パフォーマンスに影響が出る事が予想れます。 <>
nobodyさん<>sage<>2014/12/14(日) 21:01:50.73 ID:???.net<> >>145
bindModel()やunbindModel()で動的に変更するか
検索時にjoinsを使えばいい
詳しい使い方は↓に載っている
http://book.cakephp.org/2.0/ja/models/associations-linking-models-together.html
このスレの質問のほとんどはこのドキュメントで解決できるので
開発者なら他のページも一通り読んでおくことを薦める <>
nobodyさん<><>2014/12/14(日) 21:34:57.75 ID:R4VgTAzM.net<> >>146
thanks
見てみます! <>
nobodyさん<>sage<>2014/12/15(月) 10:55:13.83 ID:???.net<> bindModel/unbindModel 使うんだったら ContainableBehavior でも
対して変わらないような気がする。
どっちもとんでもないクエリ吐き出すんだけどね。
joins 使えばそこそこまとも。
CakePHP3 ではかなり改善される模様。 <>
nobodyさん<>sage<>2014/12/15(月) 11:30:36.76 ID:???.net<> 自分は Containable と Matchable 併用してる。 <>
nobodyさん<><>2014/12/15(月) 19:02:35.15 ID:Hxt+g1uL.net<> アソシエーションを使うより普通にSQL書いて実行
させた方が楽な気がするのだが俺だけ? <>
nobodyさん<>sage<>2014/12/15(月) 20:40:41.52 ID:???.net<> 短かったら楽だけど、長いと間違いの元だよ <>
nobodyさん<>sage<>2014/12/15(月) 21:02:08.37 ID:???.net<> CakePHPの呪文を覚えない限り、複雑なのは直接書いたほうがむしろ間違わない。 <>
nobodyさん<><>2014/12/15(月) 22:12:11.75 ID:UqCW5FKL.net<> こっちは inner join したいのに left join しやがるので
アソシエーションは好かん <>
nobodyさん<>sage<>2014/12/16(火) 03:08:27.79 ID:???.net<> Cakeのアソシエーションって何?
SQLをPDOとかで直に書いた方がいいの?
それともZendとかで最小限のライブラリ読み込んだ方がいいの?
何で日本人はCake使いたがるの?
英文サイト解読してlaravelとか使えないの? <>
nobodyさん<>sage<>2014/12/16(火) 09:33:38.60 ID:???.net<> >>153
type指定でinnerに出来るよ <>
nobodyさん<><>2014/12/16(火) 10:38:29.65 ID:MEG1C3Vr.net<> >>155
しらなんだ!! <>
nobodyさん<>sage<>2014/12/16(火) 17:04:45.60 ID:???.net<> なぜ、outerがデフォルトなんだ?w <>
nobodyさん<>sage<>2014/12/16(火) 18:15:37.65 ID:???.net<> >>157
innerだと?と思う人がいるからだよ <>
質問@<><>2014/12/18(木) 00:17:48.32 ID:ZHBfn1LO.net<> 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); <>
質問A<><>2014/12/18(木) 00:19:48.09 ID:ZHBfn1LO.net<> デバッグ出力した結果です。
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) <>
質問@A<><>2014/12/18(木) 00:39:30.54 ID:ZHBfn1LO.net<> 原因が分かりました。 <>
nobodyさん<>sage<>2014/12/18(木) 10:51:48.08 ID:???.net<> なんだったの? <>
nobodyさん<><>2014/12/18(木) 16:27:33.17 ID:IJydX9LX.net<> >>162
アソシエーションのプライマリキーが邪魔してました。
アソシエーション使わない方が小回りが利いて良いですね。 <>
nobodyさん<><>2014/12/19(金) 19:52:59.80 ID:BHq08Q5j.net<> Ajaxで開発をこれまで行っていましたが
毎度、ブラウザのみならずJSデバッガーを開いてJSを毎度開いてデバッグする必要があり手間なので
全てpostを行い、サーバ側でバリデーションその他を行う様にしました。
開発の生産性はAjaxと比べてどちらが早いですかね? <>
nobodyさん<>sage<>2014/12/19(金) 22:23:30.29 ID:???.net<> >>164
サーバー側のがいい <>
nobodyさん<>sage<>2014/12/19(金) 23:20:57.71 ID:???.net<> そもそもAjaxだかなんだか関係なく
サーバ側でバリデーションは必須じゃないのか…… <>
nobodyさん<><>2014/12/21(日) 15:17:01.54 ID:kDlJPF64.net<> >>165 >>166
そもそもだけど、Ajaxで is_post"ajax")って感じで
バリデーションをするとcrome上でデバッガーを開いてやらないといけないでしょ?
それが面倒なんです。
普通にPOSTで全てリクエストを行っていれば
簡単にデバッグ出来るけど、Ajaxにするとサーバからの戻り値をJavaScript側でもデバッグを
する必要があるでしょ?
それが本当に面倒に感じるんです。 <>
nobodyさん<>sage<>2014/12/22(月) 22:18:50.23 ID:???.net<> >>167
クライアント側でのバリデーションはオマケ
クライアント側でバリデーションをやろうがやるまいが、サーバ側でのバリデーションは必須 <>
nobodyさん<>sage<>2014/12/23(火) 21:07:58.32 ID:???.net<> composer ってさ、バージョン指定してないと全部アップデートされるじゃん。
バグの原因にならんの?不安で仕方ない。
アップデートしたくないのをjsonで削除するとファイルまで削除されるし。 <>
nobodyさん<>sage<>2014/12/23(火) 21:31:44.30 ID:???.net<> 指定しなよ <>
nobodyさん<>sage<>2014/12/24(水) 01:58:44.52 ID:???.net<> >>170
例えばcake2.4使ってて、中身を少し変えるとするじゃん。
で、2.4を指定してcomposerしたらどうなる?
1 同じ2.4なので何も起きない
2 同じ2.4だけどファイルが少し違うので新しい2.4を、上書きする
どっちなんでしょうか? <>
nobodyさん<>sage<>2014/12/24(水) 08:56:59.50 ID:???.net<> >>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は自己責任でやれよってことで良くないか? <>
nobodyさん<>sage<>2014/12/24(水) 11:20:42.46 ID:???.net<> >>172
ありがとうございます!
composer.lock初めて知りました。
見てみます。 <>
nobodyさん<><>2014/12/26(金) 14:52:05.09 ID:y17exSu4.net<> 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を入れるようなことはできたりしないでしょうか? <>
nobodyさん<>sage<>2014/12/26(金) 22:05:31.40 ID:???.net<> ただの見た目の問題なんだしCSSでやればよくない?
IE8? 知らないブラウザですね <>
nobodyさん<>sage<>2014/12/26(金) 22:20:14.73 ID:???.net<> >>174
そういうのは出来ないと思う。
javascript で挿入するか >>175 の言うように CSS でやるか、
レンダリング結果をパースして変換。
今なら :n-th セレクタ使えるから CSS が一番手っ取り早いだろうね。 <>
nobodyさん<>sage<>2014/12/27(土) 09:59:18.74 ID:???.net<> >>175-176
レスありがとうございます。
やっぱりできないんですね。
仰る通り、見た目の問題ですのでCSSで制御しようと思います。
ありがとうございました! <>
nobodyさん<><>2014/12/30(火) 14:19:54.96 ID:9yoyGP6/.net<> cakePHPで入力フォームを用意して登録ボタン押下時に
サーバにポストした場合、サーバサイドでは
入力項目においてdisabled を付けている項目は $this->request->data で取得出来ない
のは仕様なのでしょうか? <>
nobodyさん<>sage<>2014/12/31(水) 10:07:14.07 ID:???.net<> >>178
cakeでなくhtmlの仕様 <>
nobodyさん<><>2015/01/01(木) 14:03:44.77 ID:qSREffE+.net<> >>179
ありがとうございます。解決しました。 <>
nobodyさん<><>2015/01/02(金) 09:29:55.89 ID:jgbndoA2.net<> 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;
は入れてあるのですが、他に解決策はありますか? <>
nobodyさん<>sage<>2015/01/06(火) 01:58:05.89 ID:???.net<> :n-th知らなかったから試しに使ってみたけど結構便利だね
けどIE8は効かないということなんで、
IE8を対象外にするわけにもいかず結局開発では使えなかった・・・
181はもうちょっと具体的にどんな実装をしたのかとか
どんなエラーが発生しているのかとか報告しないと答えようがないんじゃないかな <>
nobodyさん<>sage<>2015/01/06(火) 20:15:42.85 ID:???.net<> IE8早く爆発しろ <>
nobodyさん<>sage<>2015/01/06(火) 21:00:09.97 ID:???.net<> IE6はようやく考えなくても良くなったけどね…
IE8はまだ15〜20%ぐらいあるから、簡単には切れないよね <>
nobodyさん<>sage<>2015/01/06(火) 21:26:44.31 ID:???.net<> ご老体のIE8様は別枠でJavaScriptで介護して差し上げろ <>
nobodyさん<>sage<>2015/01/07(水) 14:32:26.18 ID:???.net<> 嫌だ。もう無視する。 <>
nobodyさん<>sage<>2015/01/07(水) 20:54:00.88 ID:???.net<> 自社開発webアプリでもない限り
開発側にブラウザを選ぶ権利はなくて顧客側の要望次第だろう
今まで対応していたブラウザを切りたければうまく交渉するしかないね
IE8は全然許せるけどIE6はブラウザ界のガン細胞だと思う <>
nobodyさん<><>2015/01/09(金) 12:45:51.25 ID:NOQO6qeZ.net<> Formでデータベースに保存した画像の表示が出来ないんだけどどうやるんだ・・・
保存した物をforeachで取り出したいけどエラー地獄だわ・・・ <>
nobodyさん<>sage<>2015/01/11(日) 14:25:23.64 ID:???.net<> そもそも画像保存にDB使うなよ <>
nobodyさん<><>2015/01/14(水) 16:05:28.03 ID:FY0jfzBq.net<> cakephp2を使っているのですが、URLを.htmlにすることは可能でしょうか?
http://www.hagehage.com/tururi/index.html
のような形にしたいのですが。 <>
nobodyさん<><>2015/01/15(木) 00:37:14.38 ID:HkjxQN1G.net<> >>190
多分この辺の情報が役に立つと思われ
http://stackoverflow.com/questions/3410611/how-can-i-append-html-to-all-my-urls-in-cakephp
昔調べたときは、あぁ簡単にできるんだな、ぐらいに思って一度も使ったことがないからよくわからないや。 <>
nobodyさん<>sage<>2015/01/15(木) 00:39:51.88 ID:???.net<> 読んでみたら一番上の答の人がドキュメントに詳しく載ってるって書いてたなw
http://book.cakephp.org/2.0/en/development/routing.html#file-extensions <>
nobodyさん<><>2015/01/15(木) 08:59:40.27 ID:gSrUDeRO.net<> >>191-192
ありがとうございます!
見てみます! <>
nobodyさん<><>2015/01/15(木) 16:42:24.08 ID:+TbruyRA.net<> View側で hidden で隠し設定した値をコントローラ側で受け取る方法はありませんか? <>
nobodyさん<>sage<>2015/01/15(木) 17:10:54.40 ID:???.net<> >>194
あります <>
nobodyさん<>sage<>2015/01/16(金) 00:22:26.90 ID:???.net<> hidden てそもそも表示は隠しつつデータを受け取るためのものだろ。。。
意味不明 <>
nobodyさん<><>2015/01/16(金) 01:25:11.15 ID:K/pOgg26.net<> >>195
どうやってやるんですか?
Ajaxだと余裕ですがcakePHPでPOSTした場合にどうしても取得出来ません。
>>196
Viewのレンダリング時にhiddenに設定した内容を登録ボタンを
押した際にサーバ再度でhidde項目の値を取得したいのです。 <>
nobodyさん<>sage<>2015/01/16(金) 04:52:36.72 ID:???.net<> >>197
普通に取得できるだろ。
おれの読解力に問題があるのだろうが、何いってるのかさっぱり分からん。 <>
nobodyさん<><>2015/01/16(金) 12:44:01.48 ID:GWt4KHXH.net<> >>198
≪View≫
<input type="hidden" name="name_hidden" value="komaneti">
≪Controller≫
$this->request->data["name_hidden"];
⇒issetで値があるかを判定するとfalse(つまり存在しない)となります。
はたして(PHP単独ではなく)本当にcakePHPでhidden項目の
値の取得をサーバ側(Controller)でする事は出来るのでしょうか? <>
nobodyさん<>sage<>2015/01/16(金) 13:29:28.04 ID:???.net<> hiddenまったく関係なくてnameが間違ってるだけじゃん
正しくはこう
<input type="hidden" name="data[name_hidden]" />
普通はフォームヘルパーで書くもんだよ
<?php echo $this->Form->hidden('name_hidden'); ?>
どうしてもnameを変えたくないなら$_POSTか$_REQUESTでどうぞ
あまりにも基本レベルで理解できてないようなんで、
まずはブログチュートリアルを実際にやってみたほうがいいよ
ブログチュートリアルって何?って人はそもそもマニュアル読んでない証拠なんで問題外 <>
nobodyさん<>sage<>2015/01/16(金) 14:51:16.48 ID:???.net<> >>200
name="data[model_name][field_name]"
じゃないの?
どっちにしてもチュートリアルやってないような奴に何言っても時間の無駄だが <>
200<>sage<>2015/01/16(金) 15:28:30.64 ID:???.net<> >201
199の例文に合わせただけだよ
モデル名も入れた君の例なら取得側が
$this->request->data['model_name']['field_name']
になるってだけ <>
nobodyさん<>sage<>2015/01/17(土) 19:58:26.44 ID:???.net<> なゆあかか <>
nobodyさん<>sage<>2015/01/18(日) 01:38:43.72 ID:YMMCDK0S.net<> すいませんが相談させてください。
wordpressでとあるポータルサイト(1日のPVは1,000程度)を運営しているのですが、
今後、数十万件以上(WPのカスタム投稿で)のデータを登録する予定となったので、
wordpressで構築するのは負荷的に耐えられないのかと思い、
CakePHPで構築しなおそうと思っています。
という状況なのですが、CakePHPにしたからwordpressよりも早くなるとは限らず、
むしろ遅くなる可能性もあるのでしょうか?
(フレームワークとしてCakeにこだわってはいないので、採用するのは他のフレームでも構いませんが)
ググってみたりはしたのですが、この比較対象がおかしいということもあるのか、
比較記事は見当たらず、私自身がCakeの事を本質的に理解出来ていないこともあり、困ってしまっています。
WPの中で生のSQL文を書いて、直接データ登録・取得・表示するのが良いのかなと
アホみたいな事も思い始めていますが・・・・
ちなみに私自身のスキルとしては、以下の感じです。
DB:基本的に大抵のことは出来て問題無い、テーブル結合とか検索とかの事は生のSQL文を書ける
PHP:wordpressのテーマを自分でガリガリとカスタマイズして外部からの入力フォーム・表示フォームとかは自分で作成しているが、難しい事は分からない
HTML・CSS:他サイトを見よう見まねで学んでいる状態で、ちゃんと理解出来ていない事が多い <>
nobodyさん<>sage<>2015/01/18(日) 01:53:17.52 ID:???.net<> >>204
お前は「そんな可能性はない」と言われたらCakePHPにするのか?
そうじゃないだろう?
だったらなぜまず試さない?
試してみて遅かったら、その原因を聞きにくるというのがやり方じゃないか?
もちろん、聞きにくるときは、それなりの情報を出しながらだが <>
nobodyさん<>sage<>2015/01/18(日) 13:36:16.56 ID:???.net<> >>204
CMSとフレームワークの違いがわかってないのかな?
wordpressはCMSの部類でコンテンツ管理する仕組みが既に入っているけど
cakephpみたいなフレームワークは言ってみりゃ単なる便利ライブラリ集だから
コンテンツ管理する仕組みとかは全部自分で実装しなきゃいけないよ <>
nobodyさん<>sage<>2015/01/18(日) 17:42:38.18 ID:???.net<> 脆弱性作り込んでそう
そんなあやふやな知識で博打を打つくらいなら
DBのチューニングやPHPアクセラレータの導入などしてWordPressの高速化をはかるほうがマシだと思う
翻訳止めるだけでも結構速くなるしな
DBからの読み出しメインのサイトなら、
前段にvarnishやnginxを置いてリバースプロキシキャッシュでも使えば? <>
nobodyさん<>sage<>2015/01/19(月) 00:27:11.87 ID:???.net<> >>204
そもそもPHPで作るのが間違い <>
nobodyさん<><>2015/01/19(月) 18:10:55.81 ID:oaFQh/MS.net<> 2015/02/02
⇒OK
cakePHPの正規表現でこの日付型文字列の入力のみOKとするには
どういうコードを書けば良いでしょうか?
2015/2/2
⇒NG <>
nobodyさん<>sage<>2015/01/19(月) 19:25:44.90 ID:???.net<> >>209
cake関係ないじゃん <>
nobodyさん<><>2015/01/19(月) 19:59:44.14 ID:oaFQh/MS.net<> >>210
どうやって判定すれば良いのでしょうか? <>
nobodyさん<>sage<>2015/01/19(月) 20:18:16.07 ID:???.net<> >>211
validationの方法は一通り知った上での質問なんすか? <>
nobodyさん<><>2015/01/19(月) 21:40:22.05 ID:oaFQh/MS.net<> >>212
はい、教えてください。 <>
nobodyさん<>sage<>2015/01/19(月) 23:55:25.95 ID:???.net<> じゃあカスタムバリデーションルール作って
public $validate = array(
'myDatetimeCheck' => array(
'rule' => '^[0-9]{4}\/[0-9]{2}\/[0-9]{2}$',
)
);
みたいにすればいいのでは
このパターンはケタ数しかチェックしてないから日付には使えないけど <>
nobodyさん<><>2015/01/20(火) 00:39:05.11 ID:MQEJ/fBy.net<> >>214
サンクス
正規表現が苦手なんだよね <>
nobodyさん<>sage<>2015/01/20(火) 00:56:53.90 ID:???.net<> >>215
俺も得意ではないけど頭の体操がてらやってみては
ただ実際には4/31は?とか閏年じゃ無い年の02/29は?とか言う問題が出てくるから
正規表現でもできるとは思うけど
cakePHPのVaridation::dateと二段構えにするとか
カスタムバリデーションでphpのcheckdateを通すとか工夫は必要になるかも <>
nobodyさん<>sage<>2015/01/20(火) 13:50:15.77 ID:???.net<> お、ひさしぶりにおもしろそうな質問発見!
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年は〜のロジック入れればいいよ <>
nobodyさん<><>2015/01/20(火) 22:12:54.49 ID:uK/q/RsU.net<> 管理画面を AdminController.php として定義してガリガリコードを
書いているのですが、ソースコードの行数が増えてきて
Eclipseで編集する際にフリーズを感じます。
この様にコードが増えて来た場合には
コントローラ名を分けるしかないのでしょうか? <>
nobodyさん<>sage<>2015/01/20(火) 22:23:48.18 ID:???.net<> アクションの数が増えたっていう話なら
機能ないし利用するモデルごとに分ける
プリフィックスルーティングでも使えばいい
メソッド一つ一つが長くなっているなら
コンポーネントやモデルや独自のサービスクラスに処理を移すことを考える <>
nobodyさん<><>2015/01/20(火) 22:51:22.09 ID:uK/q/RsU.net<> >アクションの数が増えたっていう話なら
>機能ないし利用するモデルごとに分ける
>プリフィックスルーティングでも使えばいい
こっちの事象です。
プリフィックスルーティングとか初めて聞きました。
こちらを探して試してみます。 <>
nobodyさん<>sage<>2015/01/25(日) 13:55:32.77 ID:???.net<> eclipseが重いところにルーティングいじっても何も解決しないと思うのは俺だけ?
URLが変わってもいいなら、普通にコントローラ分割すればいいし、
URL変えるわけにはいかないなら、"修正中だけ"別コントローラで作って
完成したら1つに戻せばいい
大きなライブラリを使ってるならeclipseから見えない場所に移動させるとか
コーディング以外にも工夫のしようはあるだろう <>
nobodyさん<>sage<>2015/01/25(日) 18:50:35.80 ID:???.net<> プリフィックスルーティングの話は
複数のコントローラに分割した上でhttp://example.com/admin/から始まるURLを使いたかったらってこと
AdminControllerなんて名前をつけてるのはURLの都合だろうと思ってね
eclipseが重くなるほど1つのファイルのソースコードが増えてるってのが本当なら
1つのコントローラに管理画面の全てを詰め込む設計はまずいだろうし <>
nobodyさん<><>2015/01/26(月) 11:10:30.59 ID:ZT64LJ1C.net<> 以下のページを参考に画像のアップロード機能を試しています。
なぜかファイルをアップロードしようとすると「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 です。 <>
nobodyさん<>sage<>2015/01/26(月) 13:32:11.28 ID:???.net<> >>223
CakeというよりPHPのエラー通りだと思うけど
そのコントローラでPostモデル呼んでないだけじゃない? <>
nobodyさん<><>2015/01/26(月) 18:47:51.81 ID:/y+cf3Fd.net<> cake2.5.8でプロシージャをコールし、out変数を受け取りたいんだけど、
query使ってバインド変数で受け取れますか?
Oracleでやったことのある方がいたら教えていただきたく……
Oracle以外でも、ヒントになるやもしれませんので、教えてくださったら助かります
なんでOracleなのにcakeにしてしまったのか…… <>
nobodyさん<><>2015/01/26(月) 20:09:16.40 ID:OoDGdBhC.net<> >>224
サンクス
結局プレーンなPHPを使ってアップローダを作る事にしました。 <>
nobodyさん<><>2015/01/29(木) 00:13:39.62 ID:rYg0zKsM.net<> 設計について相談です。
会員登録ページやログインページのURLが
/users/add
/users/login
だとします。
会員情報の変更は、会員専用ページにログインして行えるとします。
その場合、会員情報の変更はどういうURLが適切なんでしょうか?
通常は/users/editだと思いますが、少し違和感があります。(ログイン中に操作するので)
mypagesを作ってプラグイン化して/mypages/users/editみたいにする事も出来るでしょうが、
その場合は、会員用のコントローラー(UsersController.php)がだぶる気がします。
ログイン前のページ・ログイン後のページと分ける設計の場合、
どういうコントローラーとアクション構成にすれば良いと思いますか? <>
nobodyさん<>sage<>2015/01/29(木) 20:58:50.89 ID:???.net<> 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をシングルコーテーションで囲む必要が無いのに
囲んでしまっているというのが原因のように見えますが、これを回避する方法はありますでしょうか? <>
nobodyさん<><>2015/01/31(土) 21:52:23.62 ID:r0T1vu8n.net<> バリデーションについてです。
バリデーションエラー時のメッセージにフォーム入力の値を使いたいのでですが
以下$valueの部分はどのように書けばいいのでしょうか?
public $validate = array(
'name' => array(
'isUnique' => array(
'rule' => array('isUnique'),
'message' => $value . 'は挿入済みです。',
'required' => true,
)
)
); <>
nobodyさん<>sage<>2015/02/02(月) 22:50:58.85 ID:???.net<> >>229
そういうのは出来ない。view側で分岐すべし <>
nobodyさん<>sage<>2015/02/03(火) 15:50:31.15 ID:???.net<> >>229
コールバックbeforeValidateで処理するか、
独自のバリデーションメソッド作るか、お好きな方で。 <>
229<>sage<>2015/02/04(水) 18:25:08.07 ID:???.net<> >>230
>>231
ありがとう。
ビューで$this->validationErrors['モデル名']のループまわすことで対応しました。 <>
nobodyさん<><>2015/02/04(水) 22:31:45.65 ID:HkYqZDdt.net<> 現在、cakePHPで入力内容を保存する際にどうすれば良いか悩んでいます。
普通の文字は問題無いのですが
「"」や「>」はサニタイズしてDBに保存するのか
それとも、エスケープしてDBに保存するのか
どちらが一般的なのでしょうか? <>
nobodyさん<>sage<>2015/02/04(水) 23:47:57.07 ID:???.net<> >>233
HTMLエスケープのことを言ってるなら
HTML出力時にエスケープするのが定石
DB保存時にHTMLエスケープしたりはしない <>
nobodyさん<>sage<>2015/02/04(水) 23:58:09.18 ID:???.net<> 入力内容をHTMLタグを含まないテキストとして出力する場合はそのまま保存して出力時にエスケープするべき
入力時のチェック・処理だけだとその後の処理によってスクリプトの文字列が生成される可能性があるので根本的な対策にならない
入力値サニタイジング後の値を逆手に取るセカンドオーダー攻撃なんてものもある
HTMLタグを許可する場合に根本的な対策をするには構文解析して必要な要素を抜き出す必要がある
https://www.ipa.go.jp/security/vuln/websecurity.html
ここにIPAが出してる安全なウェブサイトの作り方というPDF資料がある
クロスサイトスクリプティングの項目が参考になる <>
nobodyさん<>sage<>2015/02/05(木) 00:01:18.00 ID:???.net<> cakeの作法通りにコーディングしているなら、
そういった処理は特に意識しなくても勝手にやってくれる
嘘だと思うなら、ブログチュートリアルの記事追加で
君の思いつく限りの変な文字を入力して保存、表示をしてみるといい
どんな入力をしようと問題なく動作するはず
自動でやってくれないのは
・DBがEUC-JPなのに入力に@を使うとかの特殊なケース
・SQLを文字列で直接書いている
・ヘルパーを使わずに変数を出力
こういったときは自分でサニタイズ、エスケープ等が必要になる <>
nobodyさん<><>2015/02/05(木) 00:10:53.62 ID:kXXlZufE.net<> >>234 >>235 >>236
皆さん詳しくどうもありがとうございます。
入力 > 確認 > 登録 or 戻る
の処理の一連の流を作っているのですがユーザが 「"」を入力した場合に
文字列が途中で端折られる為に、どうしようか悩んでいました。 <>
nobodyさん<>sage<>2015/02/05(木) 00:11:24.20 ID:???.net<> ブログチュートリアルも出力時にエスケープしてるな
htmlspecialchars()のラッパーがあるから楽でいいね
http://book.cakephp.org/2.0/ja/getting-started.html#id7 <>
nobodyさん<>sage<>2015/02/05(木) 00:13:20.68 ID:???.net<> あー、229の内容はちょっと興味があったんだけどもう解決してるのか・・・
$thisを使うためにコンストラクタで$validate定義したら一応うまくいったとだけ言っておく
てきとーに回答のなかったものにも答えておく
>>225
記事内容はMySQLだけど参考になると思う
http://blog.xole.net/article.php?id=711
>>227
正解も間違いもないような話題はリアルのチームメンバーと話し合ったほうがいいと思うよ
>>228
SQLServerは環境がないから試せないけどDBのデフォルト値を設定したくなければ
create()の代わりにclear()を使うといいかも
バージョンが古くてメソッドがない場合はcreate(false)で <>
nobodyさん<><>2015/02/05(木) 00:52:32.89 ID:mACTgUNt.net<> $message_hoge に
「彼は"おはよう"と言った」
という文字列が含まれていたとして
確認画面で<span></span>の中に確認メッセージを表示させて
「戻る」が押された場合に、最初の画面のメッセージ入力エリア(textarea)に
ままの「"」が表示された形で
「彼は"おはよう"と言った」
を出すには、Aを使う事によりうまくいきました。
ここで疑問なのですがそもそも@とAの違いは何なのでしょうか?
@ Sanitize::clean($message_hoge);
A h($message_hoge);
うーん、文字列で事象の説明が難しいです。。。 <>
nobodyさん<>sage<>2015/02/05(木) 01:06:39.73 ID:???.net<> サニタイズとかいう単語フワフワしすぎてるからもう使うのやめたらいいのになってよく思う
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 <>
nobodyさん<>sage<>2015/02/05(木) 01:12:45.87 ID:???.net<> ていうか迷うとしたら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 エンティティとして表示されます。:
>文字をエスケープすることはエラーの可能性が低く、知られていない新しいタイプの攻撃に対して強いので、文字を取り除くよりもよい方法です。 <>
nobodyさん<>sage<>2015/02/05(木) 01:26:53.54 ID:???.net<> というか、みんなViewでの出力時は<?php echo h($data); ?> みたいにしてるの?
echoするときにh()も書くなら、いっその事、DBに保存する前にサニタイズした方が良いと思うんだが。
beforeSave()で一括サニタイズできるし。それにエスケープさせたくない場合は復元すればいいだけだし。 <>
nobodyさん<>sage<>2015/02/05(木) 01:30:01.34 ID:???.net<> また馬鹿が増えた…… <>
nobodyさん<>sage<>2015/02/05(木) 01:34:06.94 ID:???.net<> サニタイズ脳の恐怖 <>
nobodyさん<>sage<>2015/02/05(木) 01:34:15.37 ID:???.net<> ”また”って事は最低二人の馬鹿がいるわけだな <>
nobodyさん<>sage<>2015/02/05(木) 01:54:17.98 ID:???.net<> {{ data }} <>
nobodyさん<>sage<>2015/02/05(木) 10:48:48.93 ID:???.net<> エスケープは必要なときにかけるのが基本だぞ
DBのデータをCSV出力したいとき、逆変換するのか
DBに入れないデータを表示するときは、表示のときにエスケープするのか
デートの前、家から出るときにコンドームしてるようなもんだぞ
途中でトイレいくときどうするんだ
やる前にまたゴムするのか、2重になっちゃうぞ
ってこと <>
nobodyさん<><>2015/02/05(木) 11:04:33.13 ID:MaFLMZhc.net<> >>248
分かり易い!サンキュー
取り敢えず、 h() で要件を満たせました。
anonymosuに狙われたら一発アウトそうなセキュリティだけどw <>
nobodyさん<>sage<>2015/02/05(木) 17:00:36.25 ID:???.net<> 2重コンドームワロタw <>
nobodyさん<>sage<>2015/02/05(木) 18:27:25.06 ID:???.net<> >>248
いつ生でしても良いようにピル飲んだらいいじゃない。
ってな感覚で事前エスケープしておくのは駄目ですか? <>
nobodyさん<>sage<>2015/02/05(木) 19:14:43.36 ID:???.net<> >>251
その辺は過去にさんざん議論されてて、結局アウトプットのときに
対処するのがベストプラクティスだねって結論が出てるんだよ。 <>
nobodyさん<>sage<>2015/02/05(木) 20:06:21.10 ID:???.net<> >>252
でも、うっかり忘れて妊娠しちゃう可能性もあるよ! <>
nobodyさん<>sage<>2015/02/06(金) 00:02:00.29 ID:???.net<> わかったわかった
挿入直前自動コンドーム装着機能を持つ
テンプレートエンジンを使えばいいだろ <>
nobodyさん<>sage<>2015/02/06(金) 02:02:30.97 ID:???.net<> そしたら口に入れようとしたときもゴムがついて不便だよ <>
nobodyさん<>sage<>2015/02/06(金) 09:13:12.13 ID:???.net<> 口からでも性病感染するから付けとけよ <>
nobodyさん<><>2015/02/06(金) 21:09:55.08 ID:XFfNnVZS.net<> パイプカットすれば? <>
nobodyさん<>sage<>2015/02/07(土) 06:03:05.10 ID:???.net<> なんのスレだよ <>
nobodyさん<>sage<>2015/02/07(土) 14:20:33.66 ID:???.net<> セーフセックスでしょ? <>
nobodyさん<><>2015/02/12(木) 19:19:14.90 ID:+z/qvGfu.net<> cakePHPで以下の様に検索ワードが複数あったとしても
自動で or and 検索する事は出来ますか?
参考になるサイトがあれば教えてください。
name = 'A' or name = 'B'
name = 'A' and name = 'B' <>
nobodyさん<>sage<>2015/02/13(金) 09:25:45.69 ID:???.net<> >>260
サーチプラグインで検索 <>
nobodyさん<>age<>2015/02/13(金) 11:24:53.34 ID:???.net<> >>259
相手がいないんだがこのスレに女の人いる?
Cake合コンとかできないかね <>
nobodyさん<><>2015/02/13(金) 12:47:36.01 ID:trE+wwbV.net<> >>261
cakePHPオリジナルでは出来ないですか? <>
nobodyさん<>sage<>2015/02/13(金) 13:27:08.47 ID:???.net<> 公式ドキュメントくらい読まな
http://book.cakephp.org/2.0/ja/models/retrieving-your-data.html#id5
あと、
name = 'A' and name = 'B'
は常にfalse <>
nobodyさん<>sage<>2015/02/13(金) 16:25:24.50 ID:???.net<> >>262
俺女だけどしても良いわよ。 <>
nobodyさん<><>2015/02/13(金) 20:17:11.72 ID:hnonnNdg.net<> >>264
OK <>
nobodyさん<><>2015/02/14(土) 12:22:29.76 ID:riWWWAwO.net<> ユーザーテーブル(users)の設計で相談です。cakephp2系です。
ログインする時、「ユーザー名+パスワード」と「メールアドレス+パスワード」の2パターンが主に使われると思います。
管理人は前者の方法でログインし、一般ユーザーは後者でログインします。
usersテーブルが
id|username|password|email|role|created|modified
だとして、ユーザー名を使わないログインの場合は単純にusernameをNULLにして登録すれば良いんですかね?
それか、usernameにemailの値を代入するべきですかね?
でもその場合、文字数制限のバリデーションエラーが起きる気がします。
(それはroleの分類で回避すればいいことですが)
それか、usersテーブルひとつにまとめるのではなく、分けるべきでしょうか。
どのようにするのが良いかご意見お願いします。 <>
nobodyさん<>sage<>2015/02/14(土) 12:58:10.84 ID:???.net<> >>267
ACLとかの権限関係をきっちり作るなら
あえて管理人だけ特別扱いする必要は無いのでは <>
267<>sage<>2015/02/14(土) 14:04:25.83 ID:???.net<> >>268
ACLできっちりじゃなくて、単純にログイン方法を分けたいだけなんです。 <>
nobodyさん<>sage<>2015/02/14(土) 17:22:20.07 ID:???.net<> >>269
俺ならメールアドレスパスワードに統一。
別に管理人ログインフォーム作成。
管理人フォームにはユーザー名とパスワード。
って感じにする。 <>
267<>sage<>2015/02/14(土) 17:33:06.70 ID:???.net<> >>270
はい。自分もそのような画面設計なのですが、>>267でも質問しました通り、
テーブルをどういう構造にしたらいいか教えてほしいと思いまして・・。 <>
nobodyさん<>sage<>2015/02/14(土) 18:20:44.22 ID:???.net<> >>271
ヌルでいいよ。
名前のところにメールアドレスなんて入ってたら
次触る人がナンジャコリヤァアってなる。 <>
267<>sage<>2015/02/14(土) 20:15:38.73 ID:???.net<> >>272
分かりました。ではテーブル設計自体は問題無さそうですね。ありがとうございます <>
nobodyさん<>sage<>2015/02/14(土) 21:07:46.13 ID:???.net<> こいつのテーブル もうヌルヌルだぜ <>
nobodyさん<>sage<>2015/02/14(土) 21:59:10.14 ID:???.net<> フォーム分けるんだったら、テーブルも分けちゃえばいい、ってのはなしか? <>
nobodyさん<>sage<>2015/02/15(日) 00:53:41.16 ID:???.net<> ありだと思うよ。そもそも管理用と一般用では用途が違うからね。 <>
nobodyさん<><>2015/02/15(日) 14:50:48.71 ID:1brRf+Il.net<> cakePHP2を使っています。
ヘルパーを使ってボタンを出力しようと以下のコードを書いたところ
なぜかエラーが出てしまいます。
array() の部分を省いてボタン名だけの指定であれば動きます。
cakePHP2ではボタンにID、NAME属性を付ける事が出来ないのでしょうか?
[コード]
echo $this->Form->button("Edit",
array(
"id" => "id_hoge",
"name" => "name_hoge",
),
);
[エラー内容]
Parse error: syntax error, unexpected ')' <>
nobodyさん<>sage<>2015/02/15(日) 16:24:05.11 ID:???.net<> モデルとルールの違うGETパラメーターのバリデーションってどうしてる?
例えばモデル的には日付がdateカラムに入ってるんだけど
ユーザーが検索するときはyear:2014とか年号だけ指定して検索できなくて
yearが1970から2015までの値以外ならバリデーションエラーをだしたい時とか
ルールが同じならコントローラー側で動的にバリデーター呼び出すだけで楽なんだけど
>>277
配列なら最後に余計なカンマ入れられるけど
引数は最後に余計なカンマ入れるとエラーになる <>
277<><>2015/02/16(月) 02:27:00.96 ID:vJjLQ3Jt.net<> >>278
ありがとうございます!出来ました!! <>
nobodyさん<><>2015/02/18(水) 19:23:06.50 ID:4aEt4KO0.net<> 初心者なんだけど、公式ドキュメントのここ(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'))って条件の「!」いらなくない?動かしてみたらやっぱりない方がちゃんと動くし。
ここで言ってもしょうがないんだろうけど、自分の考え方が正しいのか不安だから聞きたかった <>
nobodyさん<>sage<>2015/02/18(水) 22:49:27.06 ID:???.net<> バージョン3ってRC2にもなってたんだ <>
nobodyさん<>sage<>2015/02/19(木) 00:34:03.06 ID:???.net<> 次で正式版みたいだね <>
nobodyさん<>sage<>2015/02/19(木) 01:12:24.31 ID:???.net<> 根本的に変わってるから3.1までは様子みたい <>
nobodyさん<>sage<>2015/02/19(木) 04:45:09.33 ID:???.net<> >>283
ここまで変わると、他の言語に乗り換えるのもありだよなあ <>
nobodyさん<>sage<>2015/02/19(木) 17:29:51.85 ID:???.net<> 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); <>
nobodyさん<>sage<>2015/02/19(木) 20:21:28.79 ID:???.net<> >>285
ごめんなさい
'order' => array('employee__name' => 'desc'),
この部分が、
'order' => array('employee__group_age' => 'desc'),
でした
よろしくお願いします <>
nobodyさん<>sage<>2015/02/19(木) 22:14:32.35 ID:???.net<> なんでgenderだけプレフィックスなしなんだろう……紛らわしいな
原因を断定はできないがとりあえず目についたところとしてはバーチャルフィールドの名前あってなくね?
1行目group_age、4,5行目がemployee__group_ageで揺れてんじゃん
あとこの4行目の配列の一要素目 'employee_age'じゃねーの?
Group Byに指定してない列は集計関数かませずにSELECT句にそのまま使えないでしょう
名前ダミーにすんのはいいけど正確に変換してくれよ <>
nobodyさん<>sage<>2015/02/20(金) 10:08:11.20 ID:???.net<> >>287
正確じゃなくてすみません
ありがとうございます、試してみます <>
nobodyさん<><>2015/02/20(金) 19:16:31.11 ID:mKx/fp25.net<> 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になるのでしょうか? <>
nobodyさん<>sage<>2015/02/20(金) 22:35:03.17 ID:???.net<> CakePHP 2.6.1でCakeDCのSearch Plugin使おうとしてて
readmeに従ってつくったけど検索が機能しないです
parsedParams()をvar_dumpしてみると空だし
urlの引数が/id:10/user:hoge/とかの形式じゃなくて
?id=10&user=hogeとかになっちゃってるみたい
バグかなぁ… 英語でググったり何度かソース見返すけどわからないです…
この現象の原因わかる方いますか? <>
nobodyさん<>sage<>2015/02/21(土) 09:54:25.08 ID:???.net<> >>290
namedからqueryにデホルトの仕様が変わったんだよ <>
nobodyさん<>sage<>2015/02/21(土) 14:39:47.92 ID:???.net<> >>291
そうなんだ!動かない原因は別なのか…
もう少し探ってみます
ありがとうございまつ <>
289<><>2015/02/21(土) 14:53:33.16 ID:gR4qq4TK.net<> 誰か教えてください。 <>
nobodyさん<>sage<>2015/02/21(土) 15:38:23.20 ID:???.net<> エディタの問題じゃねえの? <>
289<><>2015/02/21(土) 15:44:22.51 ID:gR4qq4TK.net<> >>294
ありがとうございます。
解決しました。 <>
nobodyさん<>sage<>2015/02/22(日) 17:44:38.17 ID:???.net<> composer 使ってる人ってこまめにアップデートしてるの?
下手にバージョン上げてもバグる原因増えるだけだと思いやってないんだけど。 <>
nobodyさん<>sage<>2015/02/22(日) 19:27:47.08 ID:???.net<> 何の為のバージョン指定だ <>
nobodyさん<>sage<>2015/02/22(日) 21:39:50.80 ID:???.net<> 投稿フォームと投稿一覧が同じページ内にある掲示版的なものを作成しています。
入力欄が問題なく埋められていた場合、投稿フォームの「投稿」ボタンを押すと、コントローラーのaddが呼ばれてその投稿が追加されindexにリダイレクト、という動きはなんとかできたのですが、
入力欄の入力をバリデーションして不正なものがあった際に、indexのページ内の投稿欄にそのことを示すメッセージを表示するようにする方法がわかりません。
唯一思いついたのは、addのビューを投稿欄のみにしておいて、indexのビュー内からiframeで呼ぶことくらいです。
どなたかご教示頂けると幸いです。 <>
nobodyさん<>sage<>2015/02/23(月) 00:25:29.64 ID:???.net<> >>298
投稿欄部分をajaxで書き換え <>
nobodyさん<>sage<>2015/02/23(月) 01:14:35.54 ID:???.net<> >>299
ありがとうございます。調べるうちに、バリデーションエラーの内容をセッションに書き込んでリダイレクト先でセッションから読み出して代入、という方法も見かけたんですがこっちの方がずっとスマートですね。
というか結果的にcakephp関係ない質問になってしまって申し訳ないです。 <>
nobodyさん<>sage<>2015/02/23(月) 08:49:31.17 ID:???.net<> >>300
俺はいつもindexに書き込み処理をつけるね。
そういう場合。 <>
nobodyさん<>sage<>2015/02/23(月) 12:35:39.33 ID:???.net<> MVCについてイマイチ自分が理解してないのもあって、てっきりcrudの4機能は別のメソッドに書かなきゃならないものなのかと思っていましたが、そうすれば全部解決なんですよね。
実は今回やってるものが非常に特殊なケースで、IE6対応も切り捨てられないため、ajaxでやろうとして困っているところでした。 <>
nobodyさん<><>2015/02/23(月) 13:57:46.86 ID:qtvdKJqN.net<> >MVCについてイマイチ自分が理解してないのもあって、
馬鹿 <>
nobodyさん<><>2015/02/23(月) 14:33:46.89 ID:3dGVU3d0.net<> 文字コードを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:[] <>
nobodyさん<>sage<>2015/02/23(月) 14:59:54.92 ID:???.net<> >>304
autoじゃなくてUTF8を指定すべきじゃないかな。
あとはphp.iniで指定してる内部文字エンコーディングとかでも変わってるくるからね。 <>
nobodyさん<><>2015/02/23(月) 15:07:53.87 ID:3dGVU3d0.net<> >>305
UTF-8 を指定してもダメでした。 <>
nobodyさん<>sage<>2015/02/24(火) 21:03:39.17 ID:???.net<> cakephp形式のURL配列で
hoge/fuga/hoge2
まで指定したい場合はどうしたらいいんでしょう?
controller=>hoge,action=>fuga,のあと、hoge2にあたる部分の指定の仕方がどうにも見当たりません。 <>
nobodyさん<>sage<>2015/02/24(火) 22:00:31.14 ID:???.net<> すいません、自己解決しました。
最後のhoge2に当たるところで数字を使っていたのがどうもよくなかったみたいで、文字列に変えたところ、actionを指定した後にカンマを打ってそのまま書くだけでうまく行きました。
でもコントローラからstrvalしてビューに渡してもなぜかビューではint扱いされるんですね。 <>
nobodyさん<><>2015/02/26(木) 17:58:39.07 ID:36YMsn8X.net<> 2.5.8を使っています。Viewの場所をコントローラーで変更できないでしょうか?
/app/View → /app/webroot/templates
みたいに、Viewファイルが存在するディレクトリを変えたいです。 <>
nobodyさん<>sage<>2015/02/26(木) 22:07:17.99 ID:???.net<> >>309
core.phpにビューのディレクトリ指定してる部分がある <>
nobodyさん<><>2015/02/26(木) 23:30:44.40 ID:36YMsn8X.net<> >>310
bootstrap.phpにあった
App::build(array('View' => WWW_ROOT . 'templates/'));
を、コントローラーのbeforeFilter()に追加したら出来ました。
ありがとうございました。 <>
nobodyさん<><>2015/02/27(金) 01:42:29.56 ID:YC5Ps1qe.net<> echo mb_detect_encoding($str_output); ・・・@
$str_output = mb_convert_encoding($str_output,"UTF-8","ASCII");
echo mb_detect_encoding($str_output); ・・・A
文字列をUTF-8にコンバートしているのですが
上記コードを実行しても一向にutf-8になりません。
常にASCII が返ってきます。
何が原因なのでしょうか? <>
nobodyさん<>sage<>2015/02/27(金) 01:59:37.38 ID:???.net<> マルチバイト文字で試してる? <>
nobodyさん<><>2015/02/27(金) 05:01:23.09 ID:YC5Ps1qe.net<> >>313
半角英数字です。 <>
nobodyさん<><>2015/02/28(土) 14:46:39.93 ID:IfvfAmZV.net<> 海外のレンタルサーバでphpを実行したんですが
以下の様なエラーが出ます。
何が原因なのでしょうか?
UID of script is smaller than min_uid <>
nobodyさん<><>2015/02/28(土) 14:56:54.33 ID:IfvfAmZV.net<> 315
自己解決しました。 <>
nobodyさん<><>2015/03/02(月) 20:14:31.17 ID:/EFmk8QS.net<> 助けてください。
value serverが糞過ぎです。
cronを設定しても動きません!!もしvalue serverで正常に動作させる方法が載っているHPを
ご存知の方がいらっしゃいましたら教えてください。 <>
nobodyさん<>sage<>2015/03/02(月) 22:25:23.88 ID:???.net<> スレチ <>
nobodyさん<>sage<>2015/03/03(火) 07:45:40.08 ID:???.net<> >>317
どうせ設定ミスだからまず最初にローカルで動作確認してから
同じ設定をvalueserverに張り付けた方がいい
レンタルサーバーでいきなりcron動かすのは問題点特定しにくいから鬼門 <>
nobodyさん<>sage<>2015/03/03(火) 09:37:28.36 ID:???.net<> 環境構築面倒くさがってレンタル鯖でテストするやつもいるからなあ
今ならビルトインサーバで一発だし今回みたいなケースもxampp使えばすぐなのに <>
nobodyさん<>sage<>2015/03/06(金) 00:22:12.48 ID:???.net<> 3.0のドキュメントって英語版もまだだいぶ不親切だな
saveallがやってた動きがどうにも再現できん、難しいこと全然やってないのになあ <>
nobodyさん<>sage<>2015/03/06(金) 01:05:40.10 ID:???.net<> cakephp1で動いてるサイトあるんだけど、機能を追加したい。
3ヶ月かけて作ったサイトなんだけど
2でリニューアルすべき?
みんなならどうする? <>
nobodyさん<>sage<>2015/03/06(金) 07:38:23.90 ID:???.net<> 1と2や3は修正点多いから、コスト安くするなら1のままで機能追加したいかな、
CakePHP以外にもPHPのバージョンを5.x系の最新にする手間もあるし
バージョン上げるなら、3がRC版がリリースされたので3に上げたい、
だけど上げるとしても機能追加とバージョンアップ作業は別々にした方が安心、
同時だとCakePHP、PHPのバージョンアップ、機能追加とやる事多過ぎで混乱すると思う <>
nobodyさん<>sage<>2015/03/06(金) 10:32:09.44 ID:???.net<> >>323
ありがとうございます! <>
nobodyさん<><>2015/03/07(土) 00:01:00.07 ID:4wJwCx0B.net<> すごいプログラミングを考えた!どうよ?
http://fox.2ch.net/test/read.cgi/poverty/1425651890/ <>
nobodyさん<>sage<>2015/03/12(木) 11:53:15.78 ID:???.net<> 独り事だけど、setFlashってめちゃくちゃ便利だな。
セッション使うから嫌って変数を作ってたんだが、setFlashだけで良いことに気づいた。
elementも指定できるから、処理が成功/失敗のHTMLを出力することも出来るし、ビューに無駄な箇所が減る。 <>
nobodyさん<>sage<>2015/03/12(木) 14:39:44.54 ID:???.net<> リダイレクトさせるとデバッグしにくいから$this->flashばかり使っちゃってる <>
nobodyさん<><>2015/03/13(金) 13:31:35.39 ID:qp4/hKaL.net<> Configure::write('Session.cookie', 'CAKEPHP');でクッキー名を指定できますが、
FooControllerのAuthでは'FooCookie', BarControllerのAuthでは'BarCookie'のように
クッキーの名前だけ分けたいのですがどこで指定すればよいのでしょうか。
お願い致します。 <>
nobodyさん<>sage<>2015/03/13(金) 20:39:40.33 ID:???.net<> セッションクッキーをコントローラーで分けるというのはそもそもの実装方針が危うそうだが…
あえてやるなら各コントローラーのbeforefilterかな <>
nobodyさん<>sage<>2015/03/14(土) 12:38:08.43 ID:???.net<> これから新規で開発しようと思うんだけど
3使うのってまだ早いですかね?
公式ドキュメントも日本語訳まだ整備されてないですよね <>
nobodyさん<>sage<>2015/03/14(土) 15:21:12.60 ID:???.net<> cakephp使ったことないけど3系になったら
使ってみたいわ <>
nobodyさん<>sage<>2015/03/14(土) 17:04:29.47 ID:???.net<> ドキュメントが日本語になってないことより、ドキュメントに書いてないことを調べる術が少ないのが困るな
ドキュメントに書いてないことが多いのはいつものことなんだけども <>
nobodyさん<><>2015/03/14(土) 18:33:04.60 ID:FIB+Mu1T.net<> 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で
どのテーブルを取得するか選ぶ方法も考えたのですが、
その設計が正しいのか否か分かりません。
どういうモデル構成でどうアソシエーションを組めば良いか
アドバイスください。お願いします。 <>
nobodyさん<>sage<>2015/03/15(日) 22:01:54.15 ID:???.net<> >>333
自分ならusersに会員タイプ判断用のtypeフィールド追加して、その値によって動的にcontainさせる
hasoneアソシエーション自体は三つとも設定しておく
あと実際の運用でこの程度のフィールド数なら
タイプごとにテーブル分けなくてもいい気がするけど
省略してるフィールドが多いならこのテーブル構成でいいと思う <>
nobodyさん<>sage<>2015/03/16(月) 08:32:28.20 ID:???.net<> 3を触ってみてるんだけど、複数のフォームから送信されたデータをエンティティに変換する方法がよくわからない
newEntities()で一発変換できるって書いてたんだが、それだとformのcreateには何渡せばいいんだ?まずnewEntityしたのを渡してからpostが飛んできたらpatchEntitiesって感じにすると返り値が変な配列になるし <>
333<>sage<>2015/03/16(月) 10:52:24.28 ID:???.net<> >>334
やっぱりContainする方法がベストですかね。ありがとうございます。
あと、省略しているフィールドは多いですね。
1テーブル20ぐらいありますし、後に増える可能性もあります。
パスワード再設定用のテーブルや退会した理由をを保存するテーブルなど
ユーザー+共通テーブルがいくつかあるため、分ける形を採用しました。 <>
1/2<>sage<>2015/03/16(月) 14:25:07.97 ID:???.net<> 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で絞り込みたい
続く <>
2/2<>sage<>2015/03/16(月) 14:26:08.03 ID:???.net<> $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を取得することで一応は解決しましたが、
あまりスマートに見えませんし、更に離れたアソシエーションだと難儀しそうです。
上手いやり方もしくは根本的な考え方の違いがあるのでしょうか?
シンプルそうなのに検索しても解決策がみあたらず、困っています。
よろしくおねがいします! 👀 <>
nobodyさん<><>2015/03/16(月) 18:24:40.64 ID:femzn5eL.net<> 「掲示板(メイン)」があって、「メッセージ(サブ)」
という関係性の時、メッセージを追加・編集する時に
どういうコントローラー・アクションにすればいいか悩んでいます。
A)メッセージ用のコントローラーを作り、掲示板IDを持ちまわる
/messages/index/bbs_id:1
/messages/add/bbs_id:1
B)掲示板のアクションに追加する
/bbs/message/bbs_id:1
/bbs/message_add/bbs_id:1
/bbs/message_edit/bbs_id:1&message_id:1
どちらにしろメッセージを投稿する時はbbs_idを保持しなければいけないので、
Aパターンでも良い気がしますが、Bの方が関係性は明確です。
どの形で良いかご意見ください。 <>
nobodyさん<><>2015/03/16(月) 23:44:21.41 ID:L8XNWzC1.net<> >>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でアクセスできるようにするのがいい <>
339<>sage<>2015/03/17(火) 00:48:50.89 ID:???.net<> >>340
>ルーティングとコントローラー/モデルを切り分けて考えた方がいい
という一文でハッとしました。
確かにURLはルーティング次第でどうとでもなりますよね。
1つのコントローラーでまとめるのではなく、
シンプルに目的に応じたコントローラー・アクションを作ります。
ありがとうございました! <>
nobodyさん<>sage<>2015/03/19(木) 14:00:57.78 ID:???.net<> ビッ○カメラ札幌店の副店長の佐藤伸弦が暴行事件が起きていた
佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦
佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦
佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦
佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦
佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 佐藤伸弦 <>
nobodyさん<><>2015/03/20(金) 01:10:50.26 ID:ScoidpU5.net<> エクストリムサーバを使っています。
現在
php で mkdir コマンドを実行してもディレクトリがなぜか
作成出来ません。
mkdirの戻り値が false になってしまいます。
何が原因なのでしょうか? <>
nobodyさん<>sage<>2015/03/20(金) 14:15:11.15 ID:???.net<> >>332
元のソースを追っかける癖をつけとくと捗るぞ
マニュアルでピンと来なくてもソース見れば、なーんだってことは良くある <>
339<><>2015/03/20(金) 16:27:02.68 ID:fjnzAr64.net<> Cakeの命名規則ってどこまで忠実に再現してますか?
Class名をキャメルケース、関数をキャメルバックで書くのは分かるのですが、
変数もキャメルバックで書くのは抵抗があって、
スネークケース($foo_bar)にしています。 <>
nobodyさん<>sage<>2015/03/20(金) 23:35:07.93 ID:???.net<> >>343
権限
>>345
2系まではわりと適当だけど3系になってからPSR準拠になってるし少しずつ従っていった方がいいよ
俺はmysqlとかjsとの連携を考えるてずっと変数はスネークケースでやってきたけどそろそろ潮時かもしれん
phpcsでたくさん例外作るのも面倒だしね
でもインデントがスペース四つなのは未だに納得できない <>
345<>sage<>2015/03/21(土) 01:58:13.22 ID:???.net<> >>346
1つのサイト作るのに色んな命名規則使うから悩みますよね。
CSSやJavascriptでもそれぞれ必要とされる規則は違うし。
ただ、変数にキャメルバックはどうも違和感があるんですよね・・・
キャメルバックにする分、文字数が減って見やすくなるとは思うんですが。
あと、インデントはスペース4つではなく2つにしてます。さすがに4つは長いかと。
という事を考えると、色々とCakeの規則から逸れてしまいますね・・。 <>
nobodyさん<>sage<>2015/03/21(土) 14:40:09.68 ID:???.net<> 自分の経験で規則から逸らしたくなるようじゃ
経験が足りないってことなんだよw <>
nobodyさん<>sage<>2015/03/21(土) 14:58:23.21 ID:???.net<> 経験があるからこそ規約に疑問を持つのだろう
PSR通りにコーディングするのは今日からプログラム始めた素人にもできる
みんなが疑問持ちながら好き勝手に書くと良くないから
グループ開発の指針としてコーディング規約があるにすぎない <>
nobodyさん<>sage<>2015/03/21(土) 15:14:19.63 ID:???.net<> 経験が「ない」からじゃなくて「足りない」からね
大勢が使う何かの規約を責任持って作ったことがあれば
それからわざわざ逸そうなんて思わないってこと <>
nobodyさん<>sage<>2015/03/21(土) 16:42:25.47 ID:???.net<> 4スペースで見辛いって、どんなコードを書いてるのか気になる <>
nobodyさん<>sage<>2015/03/21(土) 20:42:49.66 ID:???.net<> >>350
グループ開発ならコーディング規約は大切だけどcake使ってるからcakeの規約を必ず採用しなければいけないわけじゃないと思うけどな
もちろんコアは必ず規約に従うべきだけどapp以下は規約推奨という程度だよ
>>351
タブインデント支持なんだろ <>
nobodyさん<>sage<>2015/03/22(日) 00:28:55.54 ID:???.net<> 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は「タブインデントが正解」で良いのですよね? <>
nobodyさん<>sage<>2015/03/22(日) 01:51:28.83 ID:???.net<> >>353
cakephpcsは最新版だとcakephp3の規約準拠なので2系使ってる人はこっちの古いバージョン使ってね
ってREADMEに書いてあった
cakephpは2系はタブインデントで3はスペースインデントに変わってる <>
353<>sage<>2015/03/22(日) 05:08:44.10 ID:???.net<> >>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って大丈夫なのでしょうか。
何を信じて良いんだろ〜 <>
nobodyさん<>sage<>2015/03/22(日) 14:35:05.61 ID:???.net<> 3.0の日本語版はほとんどのところが未翻訳か2.0の内容のままだし
正式リリースもまだだしそんなもん <>
nobodyさん<>sage<>2015/03/22(日) 16:16:39.32 ID:???.net<> お客様根性って奴ね
Found an issue? Submit a correction on GitHub <>
nobodyさん<>sage<>2015/03/24(火) 21:25:37.75 ID:???.net<> いつの間にか3のstableでてるやん <>
nobodyさん<>sage<>2015/03/24(火) 22:27:39.16 ID:???.net<> >>358
ここまで違うと3にするか、他に乗り換えるか迷うよね <>
nobodyさん<>sage<>2015/03/24(火) 22:51:32.29 ID:???.net<> 新規案件もしばらく2だろうなー
今回は1から2のインパクトより大きい <>
nobodyさん<>sage<>2015/03/25(水) 10:40:02.23 ID:???.net<> 実際、まだ1.3で稼働しているサイトも一杯あるだろうし、
新規案件とはいえ、なかなか変えられないわな <>
nobodyさん<><>2015/03/25(水) 22:03:40.40 ID:nkhbQP1f.net<> Bbs→(belongsTo)→User→(hasOne)→Profile
こういう関係のテーブル構成でfindをrecursive=>2でfirst取得すると、
array(
[Bbs] => array()
[User] =>Array(
[Profile] => Array()
))
こんな感じの配列になるのですが、Userの中に入れない方法って無いでしょうか?
つまり、$data['User']['Profile']['name']ではなく、
$data['Profile']['name']だけで参照させたいです。 <>
nobodyさん<>sage<>2015/03/25(水) 23:13:38.47 ID:???.net<> 362です。自己レスですけど、joins使うのが一番みたいですね。
全部アソシエーションで出来たらと思ったのですが無理なので、
joinsを使って対応します。 <>
nobodyさん<>sage<>2015/03/26(木) 21:56:46.58 ID:???.net<> 確認画面などで出力する時、h()でエスケープしてます?
それともsave時点でエスケープします? <>
nobodyさん<>sage<>2015/03/26(木) 23:26:01.65 ID:???.net<> 出力する時にエスケープが一般的だと思う <>
nobodyさん<>sage<>2015/03/27(金) 00:53:05.30 ID:???.net<> 入力データはいじらずに保存しておくべし
何に使うことになるかわからんからな <>
nobodyさん<>sage<>2015/03/27(金) 12:05:56.79 ID:???.net<> 無知で申し訳ないんだが、
入力時点でエスケープやサニタイズしなくても
Cake使ってる上ではセキュリティ的には問題ないんだよね? <>
nobodyさん<>sage<>2015/03/27(金) 20:44:33.33 ID:???.net<> cake3でだいぶ良くなったらしいね
Laravelが流行だどうこう言ってますけど
結局、cakeとcodeigniter学んでおけばいいっしょ <>
nobodyさん<><>2015/03/27(金) 22:21:52.83 ID:/GK6nVHi.net<> 日本時刻が【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)
実行した結果、時刻が日本時間とかなりずれているのですがどこが間違っていますか? <>
nobodyさん<>sage<>2015/03/27(金) 22:27:30.43 ID:???.net<> 質問するスレが間違っています。 <>
nobodyさん<>sage<>2015/03/27(金) 22:39:55.31 ID:???.net<> 過疎っていたのでPHP繋がりでここに質問しました。
教えてください。。。 <>
nobodyさん<>sage<>2015/03/28(土) 11:31:26.66 ID:???.net<> そのサーバーのphpのタイムゾーンを表示させる
そのサーバーの現在時刻を表示させる
時刻計算してGMTを表示させる
時刻計算してJSTを表示させる
この手順でうまくいかなければ諦めろ
はい、この話は終わり <>
nobodyさん<>sage<>2015/03/28(土) 15:51:44.79 ID:???.net<> >>372
試してみます。 <>
nobodyさん<>sage<>2015/03/28(土) 15:56:09.33 ID:???.net<> jQueryしか使っていないのにJavaScriptをcromeでデバッグすると
init.js というスクリプトがデバッグされていますが
なぜこんな自分で読込もしていない様なスクリプトが読み込まれているのでしょうか?
※javascriptのスレッドが見つからなかったので人が一番多そうなここで
質問させてもらっています。 <>
nobodyさん<>sage<>2015/03/28(土) 17:42:04.24 ID:???.net<> Web制作板の専門スレの方が人が多いよ。
はい、この話は終わり <>
nobodyさん<>sage<>2015/03/29(日) 01:04:03.61 ID:???.net<> なんか、後々「CakePHPとかいうオワコンフレームワークを使ってるやつらはこの程度の質問にも答えられない低能だったんだなw」
みたいな煽りをするための材料作りに来たような感じ <>
nobodyさん<>sage<>2015/03/29(日) 16:04:33.31 ID:???.net<> Cake3、悪くはないんだけど一年半くらい遅かったなという感じ <>
nobodyさん<>sage<>2015/03/29(日) 19:57:31.43 ID:???.net<> どういう意味? <>
nobodyさん<>sage<>2015/03/29(日) 20:26:31.18 ID:???.net<> どうせDDD信者だろ <>
nobodyさん<>sage<>2015/03/30(月) 23:11:34.93 ID:???.net<> 共用サーバでServer Queenをかりたのですが php が使えません。。。
どうすればPHPが使える様になりますか?
マニュアルが古すぎて設定が出来ないです。
http://www.serverqueen.jp/cs/startup/zoomimg/shared_php01.html <>
nobodyさん<>sage<>2015/03/30(月) 23:42:44.98 ID:???.net<> スレ違いというか板違いというか2chで聞くことじゃない
なんで最近こういうのが増えたんだ? <>
nobodyさん<>sage<>2015/03/31(火) 02:02:19.81 ID:???.net<> ひそかにドッ○インストールとかのせいだとおれは思ってる
いまのとこ誰も賛同してくれてないけどな
でもあると思うんだよなぁ <>
nobodyさん<>sage<>2015/03/31(火) 05:51:02.97 ID:???.net<> >>382
なんで関係あるの? <>
nobodyさん<>sage<>2015/03/31(火) 10:08:31.38 ID:???.net<> >>382
俺は春だからと思うよ <>
nobodyさん<>sage<>2015/03/31(火) 11:14:53.43 ID:???.net<> >>383
1:初心者がタダでプログラミングを学ぼうとする
2:ドッドインストールというサイトを見つけて勉強する
3:しかし、基本的なことをちょっと紹介してるだけなので、何が必要か分からない。
4:知恵袋や教えてgooで質問するのは手間がかかる
5:「そうだ!2ちゃんねるなら会員登録が必要ないし、大勢居るから教えてくれるだろう!」
6:適当に板名を見てWebProg板を探すも、どのスレに質問していいかわからない
7:「ま、スレタイにPHPってついてるし、上の方にあるからこのスレでいいやろ」
って感じだと予想 <>
nobodyさん<>sage<>2015/03/31(火) 11:25:28.40 ID:???.net<> >>385
なるほどそういう意味か <>
nobodyさん<>sage<>2015/03/31(火) 15:33:31.65 ID:???.net<> schooとかドットインストールとか
動画学習系のあるけど、やってみてわかったけど動画学習は効率悪い
気分的にやった感はすごいあるけど <>
nobodyさん<>sage<>2015/03/31(火) 15:53:01.22 ID:???.net<> 10年ぐらい前、WAVEというスクールに40万ぐらいだして通ってたが、
そこが作ったDVDを再生しながら同じように入力する程度で、全く身に付かなかった。
あれなら3000円ぐらいの初心者本買って、その通り作る方がマシだわ <>
nobodyさん<>sage<>2015/04/01(水) 00:49:18.74 ID:???.net<> ドットインストールの管理人すごいよな
知識豊富すぎだろ <>
nobodyさん<>sage<>2015/04/01(水) 10:35:00.70 ID:???.net<> そりゃー >>389 より知識は↑だろ。 <>
nobodyさん<>sage<>2015/04/01(水) 10:37:36.77 ID:???.net<> 1テーブル(1登録画面)に入力箇所が30ぐらいあるのですが、
毎回、動作テストの度にフォーム入力していくので面倒です。
こういう時ってCakeのテスト機能を使うのでしょうか?
いまいち、テストの使い方がよくわからないので教えて下さい。 <>
nobodyさん<><>2015/04/01(水) 17:00:09.59 ID:PiSv1kDp.net<> ↑
馬鹿まるだし <>
nobodyさん<><>2015/04/01(水) 21:48:03.44 ID:PiSv1kDp.net<> テストやでぇ〜
aiueo<br><br>
,
& <>
nobodyさん<>sage<>2015/04/01(水) 22:47:15.60 ID:???.net<> >>391
手を抜きたいのならフォームのオートコンプリート系アドオン
ちゃんとやるならテスト <>
nobodyさん<>sage<>2015/04/01(水) 23:37:29.02 ID:???.net<> >>394
ちゃんとやりたいのですが、どうやってテストを作ればいいか分かりません。
せめてググり方だけでも教えて下さい <>
nobodyさん<><>2015/04/01(水) 23:56:21.88 ID:PiSv1kDp.net<> >>395
とりあえず舌をおもいっきりかめばいいと思うよ <>
nobodyさん<>sage<>2015/04/01(水) 23:56:38.03 ID:???.net<> >>395
cakephp phpunit <>
nobodyさん<>sage<>2015/04/02(木) 00:50:20.30 ID:???.net<> >>396
おもいっきり噛んだら死ぬだろwwwww <>
nobodyさん<>sage<>2015/04/02(木) 04:06:35.84 ID:???.net<> >>398
その方がいいとおもうんだよ。 <>
nobodyさん<>sage<>2015/04/02(木) 10:32:15.69 ID:???.net<> >>399
分からないことを教えてっていうだけで舌噛めとかwwwwww <>
nobodyさん<>sage<>2015/04/03(金) 18:37:35.13 ID:???.net<> パンくずとかMETAの内容をビューから設定するのって、ちょっと違和感ある。
かと言ってコントローラーで設定するのも悩む。 <>
nobodyさん<>sage<>2015/04/03(金) 22:48:02.25 ID:???.net<> >>401
構造だけコントローラーで渡して表示はビューでやればええやん <>
nobodyさん<>sage<>2015/04/03(金) 23:32:55.11 ID:???.net<> ディスク容量の制限の無いオススメのサーバはどこですか?
海外サーバを希望です。 <>
nobodyさん<>sage<>2015/04/03(金) 23:37:54.15 ID:???.net<> >>402
どういうこと?例えば
ホーム > ネット関係 > WebProg
だとして、この流れをコントローラーから配列を作成してsetし、
ビューでヘルパーから読み込むとか?(俺はそうしてた
でも、ページ毎のタイトルをDBで管理しない限りは、
コントローラーに直接書かなきゃいけないからなぁ
DB管理していないページもあるし。 <>
nobodyさん<>sage<>2015/04/03(金) 23:53:39.12 ID:???.net<> >>404
そんな感じ
二階層までならコントローラー名とアクション名に準じたタイトルでパンくず作ってあげてもいいかも
それ以上の階層はdbなりconfigure使うしかないんじゃないかなー
>>403
AWSっていう海外サーバーならお金払えば払っただけ無制限にディスク使わしてくれるらしいよ <>
nobodyさん<>sage<>2015/04/04(土) 00:40:37.59 ID:???.net<> >>405
404だけど、やっぱりそうか。ページ名をどこで管理するかが問題なんだよなぁ。
DB使うと、簡単なページを追加した時でも、DBに追加する必要もあるし。 <>
nobodyさん<>sage<>2015/04/04(土) 15:50:08.18 ID:???.net<> Cake3のお勉強でもしようと思ったんだけど
インストールするのにComposerとかみんな使ってんの?
色々知らないことが増えてる… <>
nobodyさん<>sage<>2015/04/05(日) 01:16:56.44 ID:???.net<> cake2で構築してるシステムを今さら3にアップするのは
やっぱりリスキーだよね? <>
nobodyさん<>sage<>2015/04/05(日) 02:17:41.58 ID:???.net<> 趣味なら良いと思うが、運用中で、しかも会員サイトなら他人に迷惑かかるから止めたほうが良いと思う <>
nobodyさん<>sage<>2015/04/05(日) 04:14:01.43 ID:???.net<> 既存のcake2システムをcake3にアップか
おれならお断りする案件だな <>
nobodyさん<>sage<>2015/04/05(日) 15:06:11.90 ID:???.net<> >>409 >>410
いや、結構ガチガチの会員サイト
安定しているシステムなのにこれをcake3に置き換えてボコボコになりそうで怖いです。
VB6.0→VB.net へのリプレースみたく大変な事になりそう。 <>
nobodyさん<>sage<>2015/04/05(日) 17:50:15.66 ID:???.net<> ボコボコになるだろうな。情報も少ないし、困った時も解決しづらい。 <>
nobodyさん<>sage<>2015/04/06(月) 12:01:41.30 ID:???.net<> joinsで直接結合すると、afterFindって効かないんですね。(Cake2系で)
プライマリーキー以外で結合する必要があるから
アソシエーションじゃなくてjoinsに書いてるけど、その点だけが困る。 <>
nobodyさん<>sage<>2015/04/06(月) 21:23:28.83 ID:???.net<> >>413
updateallするんでなければpkeyを動的に切り替えた方が楽だよ <>
nobodyさん<>sage<>2015/04/06(月) 21:52:45.80 ID:???.net<> >>414
結合させるモデルの両方共プライマリーキーじゃないんです。
なので、動的切替は無理かと。 <>
nobodyさん<>sage<>2015/04/07(火) 21:18:58.02 ID:???.net<> >>415
いけるいける
primarykeyとforeignkey切り替えれば
まあ素直にjoinした方が見通しいいかもしれないけど <>
nobodyさん<>sage<>2015/04/08(水) 10:25:46.98 ID:???.net<> >>416
どうやっていけますか?
User→Profile
User→Bbs
Bbs→Entry
というモデル設計で、BbsとEntryをhasOneで繋ぎつつ、
Bbsのuser_idとProfileのuser_idを結合したいのですが。 <>
nobodyさん<>sage<>2015/04/08(水) 22:50:18.86 ID:???.net<> >>417
そういう構成なら直接結合しないでUser経由して結合した方がいいよ
深い結合については>>340あたりを参照 <>
nobodyさん<>sage<>2015/04/09(木) 00:21:50.88 ID:???.net<> >>418
分かりました。難しいですが勉強します。ありがとうございました。 <>
nobodyさん<>sage<>2015/04/09(木) 00:40:19.67 ID:???.net<> >>418
413=415=417=419ですが自己レスです。
joinsを使ってもUser経由で結合してもそんなにSQLの回数は変わりませんね。
強いて言うなら、$data['User']['Profile']['name'];
みたいに多次元配列になるのが煩わしいだけでしょうか。
joinsの場合は、$data['Profile']で書けますが。
よほど深い階層になる場合や複雑なSQLでない限り、
極力、joinsは使わないようにします。色々と教えていただきありがとうございました。 <>
nobodyさん<>sage<>2015/04/09(木) 01:19:01.76 ID:???.net<> 414,416,418ですがいくらなんでも行動と理解が早すぎると思いました <>
nobodyさん<>sage<>2015/04/09(木) 14:29:29.47 ID:???.net<> 多重配列になるのが嫌なら、それこそafterFindで調節する手もあるな。
どちらにしろフレームワーク使うんだから、後々修正しやすい方がいい <>
nobodyさん<><>2015/04/13(月) 14:41:46.28 ID:kiqQUtSe.net<> 会員専用ページ(マイページ)の設計について悩んでいます。
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のみで切り替えるのか
どれが良いか悩みますので、作り方に法則のようなものがあれば教えて下さい。 <>
nobodyさん<>sage<>2015/04/13(月) 22:48:51.65 ID:???.net<> >>423
editとかのページはauthコンポーネントのallow使って制御した方がいい
detailをprefixで振り分けてるのは悪くはないけどそこまで表示内容に違いがないのならprefix使うまでも無い気がする <>
nobodyさん<>sage<>2015/04/14(火) 11:10:39.83 ID:???.net<> >>424
つまり、わざわざmypageというprefixやコントローラーを作るのではなく、
各アクションにアクセス制限(authのallow)をするだけでいい
ってことですかね?それが一般的ならそうしますが、
どうもログイン後のページって、adminとかmypageを付けるような気がするんです。
決まりがあるわけじゃないでしょうが、ググってもそういう情報が多くて・・・ <>
nobodyさん<>sage<>2015/04/14(火) 11:13:26.07 ID:???.net<> あと、>>423の以下の例は間違いでした。
例)会員ではない人が日記を閲覧
/diaries/detail/1 →DiariesControllerにmypage_detailを追加
↓
/diaries/detail/1 →DiariesControllerにdetailを追加
(誰でも閲覧できるから、prefix必要ないです) <>
nobodyさん<>sage<>2015/04/14(火) 22:26:08.70 ID:???.net<> >>425
規模が大きくなるのならログイン必須であることを明示するためにもprefixあった方がいいかもだけど
一人で小規模でやるなら分けるほどでもない <>
nobodyさん<>sage<>2015/04/14(火) 23:14:54.67 ID:???.net<> >>427
どの程度が「規模が大きい」から図りかねるのですが、
モデルが50ぐらいあるなら大きいって認識でいいですかね?
前述した通り、「一般的なベターなやり方」を教えて欲しいのですが・・・ <>
nobodyさん<>sage<>2015/04/14(火) 23:40:26.26 ID:???.net<> >>428
モデルというよりコントローラーの数によるだろうけど、それだけでかけりゃ分けた方がいいよ
一般的にベターとか言われも、例えば規模が本当に小さければcakephpなんて使わずに
phpの1ファイルで実装した方がいい場合もあるわけだし
規模感無視して一般的な話をしようとしても無理だよ <>
nobodyさん<>sage<>2015/04/15(水) 00:06:47.65 ID:???.net<> 今、cakeを勉強中なのですが、他のフレームワークを今まで使ったことがないのでわからないので検討違いかもしれないですが、
cakeのモデルって使い勝手悪いのですが、これがフレームワークでは普通なのでしょうか?
アソシエーション定義してもrecursiveの深さを検索するとかこんなもの使い道あるのでしょうか?
テーブルにただマッピングされてるだけのsql発行クラス以上の使い方があるのでしょうか?
っていうか、このモデルというのは使い勝手がいいのですか? <>
nobodyさん<>sage<>2015/04/15(水) 00:22:06.23 ID:???.net<> >>430がRDBMSさえも理解してない素人なのか自前でORマッパーを作りかねない玄人なのか判断つきかねる <>
nobodyさん<>sage<>2015/04/15(水) 00:30:30.11 ID:???.net<> >>429
フレームワーク使うのに、小規模ってことは無いと思うんです。
例えば「お問い合わせフォーム作りたいから使おう」とか「会社紹介ページ作りたいから使おう」
ってレベルの人がフレームワークに立ち寄らないと思うんです。
それより規模がでかくて数々のプラグインや便利ツール(ヘルパー・コンポーネント等)
があるからフレームワークを使おうと思うわけで。
そしてもうひとつの利点である「開発方法を定める」ってのもあると思うんです。
命名規則やMVCの考え方など、1人でやってたらその都度変わりそうな要件も
フレームワークを使うことで統一する事が出来るし、それは後の改修のしやすさに繋がる。
だからこそ「一般的でベターな方法を追求する」事ってメリットがあると思うんですよ。
そこにメリットが無かったり、「人それぞれじゃね?」ってなると、
それこそオレオレフレームワークと変わらない気がします。
>>430がフレームワークを使おうと思ったキッカケも、
「自分一人の考えで済ませたくないから」じゃないですかね。
そして過去の自分の経験・考えがあるからこそ、
「Cakeのモデル定義は使い勝手が悪い」という判断ができるわけで。
だからやっぱり「自分の好きな様にやれよ」って言われても、しっくり来ないんです。 <>
nobodyさん<>sage<>2015/04/15(水) 00:47:12.63 ID:???.net<> レンタルサーバでFTP接続しか受け付けないサーバに
TeraTermで接続するにはどうすれば良いでしょうか? <>
nobodyさん<>sage<>2015/04/15(水) 00:57:56.92 ID:???.net<> >>431
sqlもおぼつかないど素人です。
>>432
>だからやっぱり「自分の好きな様にやれよ」って言われても、しっくり来ないんです。
そうですね、なにか他人と共有できるものを獲得できるようにフレームワークで一番最初に引っかかったものいじってみたしだいです。
よくわからないので、とりあえず青い鳥を探してがんばってみることにします。
ありがとうございました。 <>
nobodyさん<>sage<>2015/04/15(水) 01:03:19.42 ID:???.net<> >>432
いわんとすることはわかるけど、cakeでもコントローラー10個以下の小規模なものと
コントローラー100個以上の大規模なものでは、cakeという規約の上でも開発ポリシーは変わるよ
もちろん参加メンバーの多寡でも変わる
たとえばcakeはキャッシュ先をファイルとapcとmemcacheとredisに対応してるけど、
決してデフォルト設定のファイルキャッシュが多くの場合にベターな手段であるということではない
最終的に自分の案件でなにを使うか決めるのはやはりそれぞれの開発者だよ <>
nobodyさん<>sage<>2015/04/15(水) 01:16:06.96 ID:???.net<> >>435
フレームワークを使わない場合、
ファイル管理は主にフォルダ分けで対応していたと思うんです。
そのフォルダ分けがコントローラー分けに変わっただけで。
でも、コントローラーを分ける理由てファイルが肥大化して読みにくくなるからで、
1コントローラー1アクションを実行するCakeの場合、
パフォーマンスに大きく影響はでないと思います。
ただ、その「ファイルが読みにくくなる」というのは開発効率の面で大きな問題ですし、
バグのリスクが高まるなら、素直にファイルを分けたり、
プラグイン化するのも大事だと思います。
その、「どれぐらいの量に達したらこうするべき」って指標があれば良いんですけどね。
それはあくまで要件次第って事が難しくさせるんです。
基本的に誰しも最初は小規模の物を作るだろうし、
継続して運営していくようなものなら後から機能を追加して大きくなっていくと思うし。
とりあえず、会員専用ページのURLやコントローラー構成に「こうするべき」
という指標はないということで納得する事にします。色々とありがとうございました。 <>
nobodyさん<>sage<>2015/04/15(水) 02:03:20.77 ID:???.net<> 「sqlもおぼつかないど素人」を自称する430が、
Cakeのモデルを「使い勝手が悪い」と評価した理由や経緯に
興味があるんだけれど。差し支えなければ教えて欲しい。 <>
nobodyさん<>sage<>2015/04/15(水) 03:26:27.37 ID:???.net<> >>437
findで帰ってくる連想配列が使いづらい
モデルのhasManyでつながってるモデルのさらにhasManyを取得するのがrecursiveで階層指定する以外、ドキュメントに見当たらない。
とか
まだ、勉強段階で自分が勘違いしてるかもしれんが、使い勝手がいいとは。。。 <>
nobodyさん<>sage<>2015/04/15(水) 08:07:14.49 ID:???.net<> >>438
findの返り値はcakephp3からオブジェクトになったはず
俺はpdoで返ってくる値とどちらも大して違わないと思うけど、
cakephp2の配列は良くも悪くもphp的だね
recursiveが扱いにくいのは事実で、基本的にはcontainableを使う方がいい <>
437<>sage<>2015/04/15(水) 13:46:41.43 ID:???.net<> >>438
回答ありがとう。「モデルの使い勝手が悪い」にはそもそも同意していて、
初心者の観点だとどのへんが辛いと感じるのかなと思ったので。
Cake2でのモデルを扱うには、Containable と Hash を活用するようにすれば
少しは辛さは軽減できると思うけれど、何というかどちらもいわゆるバッド
ノウハウの類であって、本質的な辛さを解決するものではないし、だからこそ
Cake3では、エンティティオブジェクトを返すようになり、Containable /
recursive / afterFind / virtualfield などがなくなってしまったんだと思う。 <>
nobodyさん<>sage<>2015/04/15(水) 16:25:28.65 ID:???.net<> 海外サーバ上の膨大なデータ(数GB)をローカルにダウンロードしています。
データ量が膨大で3日程かかってしまいます。
DL中にWindows Update等の横やりがはいり、DL処理が中断されてしまいます。
その後DL処理を再開するにあたり、既にローカルに対象ファイルがある場合には
スキップして、新しいファイルのみWEBサーバからローカルにDLする設定方法はありますか? <>
nobodyさん<>sage<>2015/04/15(水) 17:44:41.75 ID:???.net<> >>441
それってCakeと関係なくね?
CakeはPHPというプログラムを使って、主にWebサイトやシステムを作るものだよ?
あなたの悩みはFTPとかSSHとかtelnetとか通信上の問題だと思うんだけど。 <>
nobodyさん<>sage<>2015/04/15(水) 20:13:33.16 ID:???.net<> >>441
ベリファイ処理の時の完了フラグ建てとくとか?
少なくともCakePHPに求める機能ではないね <>
nobodyさん<>sage<>2015/04/15(水) 20:20:48.34 ID:???.net<> >>439
ありがとうございます。
Containableはよさそうですね。
>>440
Hashはバッドノウハウってのはまさにですが使ってますね。
とりあえずはcake2をしばらく弄ってみます。 <>
nobodyさん<>sage<>2015/04/16(木) 19:40:28.40 ID:???.net<> ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★
ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ウンコって書きました。もうしませんごめんなさい。 by FIX ★ <>
nobodyさん<><>2015/04/16(木) 20:04:32.48 ID:qC1kWGvR.net<> >>445
<b>どうやってかいた?</b> <>
nobodyさん<>sage<>2015/04/16(木) 20:13:15.48 ID:???.net<> ウンコって書きました。もうしませんごめんなさい。 by FIX ★ <>
nobodyさん<>sage<>2015/04/16(木) 20:14:44.25 ID:???.net<> ftp://って書くとウンコ・・・ってでる <>
nobodyさん<>sage<>2015/04/16(木) 22:21:57.51 ID:???.net<> ウンコって書きました。もうしませんごめんなさい。 by FIX ★あいうえお <>
nobodyさん<>sage<>2015/04/18(土) 17:51:43.74 ID:???.net<> http://peace.2ch.net/test/read.cgi/bun/1349529904
>>472
なんで IDとか日付が他のレスと違ってるの?
2chのバグ? <>
nobodyさん<><>2015/04/19(日) 18:05:07.95 ID:0/QVOYd7.net<> cake2系で多次元配列のバリデーションエラーってどう表示すればいいのでしょうか?
#ビュー
echo $this->Form->input('Entry.1.name', array('type' => 'text'));
echo $this->Form->error('Entry.1.name');
では表示されませんでした。 <>
nobodyさん<>sage<>2015/04/19(日) 19:11:07.38 ID:???.net<> >>451
そもそもエラー発生してる?
formのdatetimeのバリデーションとかyear monty dayでエラー吐かせる処理とか参考にするとよいよ <>
nobodyさん<><>2015/04/19(日) 20:23:57.18 ID:0/QVOYd7.net<> >>452
$this->Entry->validationErrorsをするとエラーは発生しています。
とりあえず簡単には出来そうにないですね、カスタマイズしていかないと・・。 <>
nobodyさん<>sage<>2015/04/19(日) 22:10:36.85 ID:???.net<> >>453
いや、書き方はそれであってると思うよ
少なくとも自分はその書き方で実現できている(cake2.4.6)
なのでエラーの設定側の方を疑ってみるとして、
debug($this->Entry->validationErrors[1]['name']);
の出力結果が
array(
(int) 0 => 'エラーメッセージ'
)
みたいになっているか確認してみるといい <>
nobodyさん<><>2015/04/19(日) 23:57:05.45 ID:0/QVOYd7.net<> >>454
逆になってました。
array(
'name' => array('0' => 'メッセージ’)
)
みたいな。
バリデーションを発生させる時、手動でやってるのですが、
$this->Entry->set($this->request->data['Entry'][1]);
$this->Entry->validates()
みたいにしているのが駄目なんですかね?
でも、こうしないと個別にバリデーション出来ないし・・・。 <>
451<>sage<>2015/04/20(月) 00:10:41.17 ID:???.net<> 分かりました。上記の書き方では駄目みたいです。
$this->Entry->saveAll($this->request->data['Entry'], array( 'validate' => 'only' ));
だと複数レコードのバリデーションだけやってくれ、
>>451の$this->Form->errorが無くてもエラー表示されました。 <>
nobodyさん<>sage<>2015/04/24(金) 11:11:15.22 ID:???.net<> >>433
Tera Term開発者(チーム)にFTP機能を追加してくれるように頼むか、自分でパッチを書いて提案する <>
nobodyさん<><>2015/04/24(金) 17:42:45.73 ID:T3bkqRm0.net<> >>450
に誰か回答してやれよ。 <>
nobodyさん<>sage<>2015/04/24(金) 18:37:24.44 ID:???.net<> 自分で答え書いてるから回答する必要ない <>
nobodyさん<>sage<>2015/04/25(土) 02:41:48.48 ID:???.net<> ちゃんとintlも入れてphpiniも書き換えたのに500吐く
もうレンサバで動かすのが無理なのか?
3.0でなんかやってる人ってVPSとかでやってんのかな? <>
nobodyさん<><>2015/04/25(土) 19:24:11.08 ID:tDD6UmBw.net<> Cake初心者です。2.5.1を使っています。
バッチ処理用にシェルを作ってコンソールから実行するとapp/tmp/cache/models以下にroot権限のファイルができます。
するとWebから実行した時ファイルに書き込めないとエラーになります。
これは普通どうやって対策するものなんでしょうか?よろしくお願いします。 <>
nobodyさん<>sage<>2015/04/25(土) 20:56:01.41 ID:???.net<> バッチの実行者を変えればいいんじゃないの? <>
nobodyさん<>sage<>2015/04/26(日) 10:00:38.91 ID:???.net<> >>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 <>
nobodyさん<>sage<>2015/04/26(日) 10:02:31.68 ID:???.net<> >>463
コピペしたらわかりにくくなった
すまそ
ここね
http://qiita.com/sampleb3/items/d274bc1cecda8ef62c28 <>
nobodyさん<>sage<>2015/04/26(日) 11:02:48.16 ID:???.net<> 2.6.4を使用しています。WordPressのインストール設定のように、
ブラウザからテーブル作成や初期レコードの追加などを行いたいです。
DBに登録するデータの設定はSchemaから行うのはわかったのですが、
コマンドではなくてブラウザから行う方法が分かりません。
何かやり方がありましたら手順を教えて下さい。
(出来ればPHPのsystemコマンドを使う方法以外で教えて下さい) <>
nobodyさん<>sage<>2015/04/26(日) 13:52:26.27 ID:???.net<> >>465
phpMyAdmin <>
nobodyさん<>sage<>2015/04/26(日) 14:02:32.53 ID:???.net<> >>466
Cake上から実行したいのです <>
nobodyさん<>sage<>2015/04/26(日) 15:07:52.26 ID:???.net<> >>467
cakeでDB管理ページを作ればいいんじゃね? <>
nobodyさん<>sage<>2015/04/26(日) 18:29:57.09 ID:???.net<> Cakeで新規アプリを作るときにDB構築をブラウザだけで
一からやりたいという希望のようだけれど、そんな機能はないよ <>
nobodyさん<>sage<>2015/04/26(日) 20:30:12.18 ID:???.net<> baserCMSを参考にします。ご迷惑おかけしました。 <>
nobodyさん<>sage<>2015/04/26(日) 22:32:06.38 ID:???.net<> cakephp3を使ってるんだけど、データベースの設定のところにあるタイムゾーンってphpの仕様に合わせて書けばいいんだよね?
Asia/Tokyoって書いたらMySQLがエラー吐くんだけども <>
nobodyさん<>sage<>2015/04/27(月) 17:10:39.74 ID:???.net<> >>471
おれもエラー出たからETCのままにしてるけど
DBの読み書きで問題出てないとだけ報告 <>
nobodyさん<>sage<>2015/04/27(月) 19:03:49.33 ID:???.net<> createdとかの時間が9時間前で書き込まれてるんだけども、これなんとかならんのかね
データベース側でselect now()やってみたら正しい時間になるんだけども <>
nobodyさん<>sage<>2015/04/27(月) 23:42:19.48 ID:???.net<> ごめんなさい、上のものですが、9時間前で書き込まれるのはbootstrap.phpでタイムゾーンを日本に設定してなかったのが原因でした。
このファイルこういう為にあったのね…
適当すぎました。 <>
nobodyさん<>sage<>2015/04/28(火) 00:34:09.14 ID:???.net<> >>472
どこの高速道路でスクリプト走らせてるんだよ <>
nobodyさん<>sage<>2015/04/28(火) 15:17:14.96 ID:???.net<> Cakeに限らないと思いますが、1対多のモデルを絞り込み検索する場合って、
多の方を検索して一致する親IDを抽出し、conditionsするのがセオリーですよね? <>
nobodyさん<><>2015/04/30(木) 02:23:35.28 ID:pzkccb8r.net<> cakephpで複数のログインページを作ろうとすると、
beforeFilterでセッションを別にしてもなんか動作ばぐる(
複数のうちのひとつの認証ページにしか飛ばない)んですけど
実現できた人いますか? <>
nobodyさん<>sage<>2015/04/30(木) 12:27:23.16 ID:???.net<> >>477
どうやって別にしてるか簡単にソース書いてみ <>
nobodyさん<>sage<>2015/04/30(木) 18:28:35.07 ID:???.net<> cakephp2.5で、データベースを使いたくない場合、
コントローラーにpublic $uses = nullとしているんですが
相変わらず
Error: Cannot access empty property
というエラーが表示されるんですが、どうしたらいいでしょうか? <>
nobodyさん<>sage<>2015/04/30(木) 20:39:57.17 ID:???.net<> >>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';
} <>
nobodyさん<>sage<>2015/04/30(木) 20:40:36.55 ID:???.net<> と
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';
です <>
nobodyさん<>sage<>2015/04/30(木) 20:44:57.61 ID:???.net<> >>479
nullじゃなくてfalseじゃね <>
nobodyさん<>sage<>2015/04/30(木) 20:58:11.41 ID:???.net<> >>482
nullとfalse両方でやってみたけど以下のエラーを吐いてしまいます…
Fatal error: Cannot access empty property in /home/xxx/www/cakephp/lib/Cake/Controller/Controller.php on line 437 <>
nobodyさん<>sage<>2015/04/30(木) 21:50:07.20 ID:???.net<> >>483
$usesじゃなくて$useTableじゃね <>
nobodyさん<>sage<>2015/05/01(金) 03:25:03.53 ID:???.net<> >>484
さんくす!! <>
nobodyさん<>age<>2015/05/05(火) 07:01:11.64 ID:???.net<> paginatorで、本来とは違うモデル(データーベース)のin句を使いたいんですけど
やり方が分かりません
誰かやり方を教えてくれませんか? <>
nobodyさん<>sage<>2015/05/05(火) 20:48:55.06 ID:???.net<> >>486
標準のページングと違う動作をさせたければ
paginateCount()とpaginate()という関数を
モデルかビヘイビアに作り、paginateCountで全体の件数、
paginateで1ページ分のデータをreturnするよう実装すればいい
引数とかの詳細はマニュアルに書いてある
http://book.cakephp.org/2.0/ja/core-libraries/components/pagination.html#id3 <>
nobodyさん<>sage<>2015/05/06(水) 18:37:43.56 ID:???.net<> >>486
もうちょっと具体的に書いてもらわないと何とも <>
nobodyさん<>sage<>2015/05/06(水) 19:12:43.08 ID:???.net<> そもそもpagenatorでin句って使えるの??? <>
nobodyさん<>sage<>2015/05/06(水) 20:39:42.84 ID:???.net<> countとれるconditionsなら何でもいけるんじゃないの <>
nobodyさん<>sage<>2015/05/07(木) 22:42:13.49 ID:???.net<> Paginatorのビュー表示、$this->Paginator->numbersで
「1|2|3|4|5」と表示して5をクリックしたら、
「3|4|5|6|7」と表示させることって出来るのでしょうか? <>
nobodyさん<>sage<>2015/05/08(金) 00:05:45.85 ID:???.net<> >>491
むしろ自動でそうならない? <>
486<>sage<>2015/05/09(土) 08:14:27.22 ID:???.net<> みなさんレスありがとうございます。
結局、IN句がどうしても入らないので(文字列扱いになる)、
ORを利用することで解決しました
もしIN句で実現できるよーって人がいましたらレスしてくれると嬉しいです。 <>
nobodyさん<>sage<>2015/05/09(土) 12:00:46.20 ID:???.net<> >>493
inはorやnot inとかと違って、明示的に書かずに配列を入れるだけでいいはずだよ
普通のfindのconditionsではin動いてる? <>
nobodyさん<>sage<>2015/05/09(土) 13:18:29.99 ID:???.net<> >>492
自動って、$this->Paginator->numbers()を出力したらということですか?
このままではなりません。普通に、5|6|7・・・とページが増えるだけです。 <>
nobodyさん<>sage<>2015/05/09(土) 13:29:34.52 ID:???.net<> >>495
引数のmodulesの数を4とかに調整してみ <>
nobodyさん<><>2015/05/09(土) 13:58:19.35 ID:HYo3XLyg.net<> >>492
自動ではならなかったと思うが…。 <>
nobodyさん<>sage<>2015/05/13(水) 13:39:51.91 ID:???.net<> 1対1のテーブルの場合(usersとprofilesとする)、
これまでprofilesにuser_idを追加していたんだけど、必要なかったんだね。
profilesのidのauto_incrementを止めて、
ProfileモデルにprimaryKey='id'とすれば、saveもfindも問題なく拾ってくれる。
既出だと思うが、自分としては発見だったのでメモする。 <>
nobodyさん<>sage<>2015/05/13(水) 22:16:31.12 ID:???.net<> >>498
hasoneかつbelongstoでお互い同じidならってこと?
便利そうに見えるけど何となく気持ち悪い気もする <>
nobodyさん<>sage<>2015/05/13(水) 22:27:43.38 ID:???.net<> >>499
users:id
profiles:user_id
にも出来るよ。見た目的にはこの方が良いかも。 <>
nobodyさん<>sage<>2015/05/13(水) 23:51:45.42 ID:???.net<> >>500
idの代わりにuser_idをプライマリにするのね
それならまだわかる <>
nobodyさん<><>2015/05/19(火) 12:15:05.85 ID:jQo/pXrB.net<> 任意のタイミングでユーザのセッションを切りかつ認証を拒否する
エレガントな方法ってありますでしょうか?
セッションにユーザのIDとパスワードを入れといて
ページ遷移ごとにいちいち認証かけるってのも、あるけど
非セキュアな気がして気が進みません。。。 <>
nobodyさん<>sage<>2015/05/19(火) 13:20:38.39 ID:???.net<> Auth使う方法は駄目なの? <>
nobodyさん<><>2015/05/19(火) 17:12:56.72 ID:c25x6ol9.net<> 物凄く小規模なDB操作(例えばテーブル1つとか)の場合、
Cake使うまでもないと思いますが、皆さんはどうしてますか?
PDOと使うとか別の小規模フレームワーク使うとかPHP直書きとか
色んなパターンあると思いますが、出来るだけ手間なく使える方法が知りたいです。 <>
nobodyさん<>sage<>2015/05/19(火) 20:16:10.79 ID:???.net<> >>504
どんなに小さくてもCake使ってる <>
nobodyさん<>sage<>2015/05/19(火) 23:13:58.17 ID:???.net<> >>502
セッションの使い方が間違ってる気がする
普通にauthコンポーネント使って任意のタイミングでsession消すか
logoutさせればok
>>504
1ファイルで収まる程度ならpure php
それ以上ならcakephp使うわ
ミニマルフレームワークに学習コストかける気になれない <>
504<>sage<>2015/05/19(火) 23:46:28.25 ID:???.net<> >>505-506
DB登録とか参照をどうするか悩んでいます。
Cakeの書き方がベストとはいえ、ページの一部だけに使うのでMVCは必要なく、
かといって、SQL文を直書きなのもどうかと思ったり。
SQLインジェクション対策とか必要ですし。 <>
nobodyさん<>sage<>2015/05/20(水) 07:47:42.44 ID:???.net<> >>507
そこはPDOしかない
セキュリティー的にはいろいろ言われてるけど
きちんと使えば大丈夫
のはず <>
nobodyさん<>sage<>2015/05/21(木) 21:37:14.24 ID:???.net<> >>507
そんなに不安がるということはかなりの初心者だね?
もう一度PHPを基本からじっくり勉強し直した方が良いかもよ。 <>
nobodyさん<>sage<>2015/06/03(水) 21:07:19.92 ID:???.net<> 完全に嵌ったので教えて・・・・・・。
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」を読んで欲しいが、それが上手くいかない。
ググると日・英なり、色々と出ては来るが、どうにも決定打がない。
お分かりになる方いますか。 <>
nobodyさん<>sage<>2015/06/03(水) 21:23:59.28 ID:???.net<> ↑
黙れバカ。ぐぐれ。 <>
nobodyさん<>sage<>2015/06/03(水) 22:20:10.80 ID:???.net<> 教えてやろうと思ったけど、511のツッコミに糞ワロタwwww
さすがにそのレベルだと回答するのも馬鹿馬鹿しくなるな <>
nobodyさん<>sage<>2015/06/03(水) 23:07:24.18 ID:???.net<> まずドキュメント読めよ <>
nobodyさん<>sage<>2015/06/04(木) 01:17:22.59 ID:???.net<> >>510は解決しました。 <>
nobodyさん<>sage<>2015/06/04(木) 01:26:07.24 ID:???.net<> よくがんばりました <>
nobodyさん<>sage<>2015/06/04(木) 21:42:11.27 ID:???.net<> このレベルの人がnginxでcakephpを動かそうとする現代のスゴさ <>
nobodyさん<>sage<>2015/06/04(木) 21:57:48.06 ID:???.net<> 普通にレンタルサーバ使えよな <>
nobodyさん<><>2015/06/06(土) 00:04:16.21 ID:rAdaJfyp.net<> 障碍者をしばいている天下り施設
https://www.youtube.com/watch?v=Tk--WgBtIBA <>
nobodyさん<>sage<>2015/06/10(水) 10:26:16.68 ID:???.net<> CakePHPとオレオレPHPフレームワークで作られたシステムを統合しなくてはならず困っています。
マスタ統合+リバースプロキシでシステム間を往き来できるようにはなったのですが
@UI統一のためメニューバーを共通部品化したいが、テンプレートエンジンが異なるため統合できない、そうなると今後その部分の二重管理が避けられなくなってしまう。
Aログイン認証をどちらかのフレームワークに寄せたいがログインセッションを共通で読めるようにする方法がわからない。例えばオレオレフレームワークでCakePHPが読めるセッションを作るといったことが出来るのか??
という問題にぶち当たり頭を抱えております。
@Aについてみなさまのお知恵を拝借できないでしょうか? <>
nobodyさん<>sage<>2015/06/10(水) 22:11:05.57 ID:???.net<> >>519
こら!うちの仕事を2CHで質問するな! <>
nobodyさん<>sage<>2015/06/11(木) 00:25:48.84 ID:???.net<> >>519
頑張ってCakePHPで全部ゼロから作る <>
nobodyさん<>sage<>2015/06/11(木) 04:13:08.75 ID:???.net<> >>519
Cakeなんて辞めてオレオレフレームワークに寄せちゃいなよ(白目 <>
nobodyさん<>sage<>2015/06/11(木) 08:53:44.17 ID:???.net<> 今後のメンテナンス性を考えたらどっちかに寄せるのが得策ですよね。 <>
nobodyさん<>sage<>2015/06/11(木) 12:09:32.15 ID:???.net<> 俺はCakeに寄せたオレオレフレームワーク作ったよ <>
nobodyさん<>sage<>2015/06/17(水) 23:44:34.95 ID:???.net<> >>519
俺なら断る仕事だな。
それか全部作り直しを提案する。 <>
nobodyさん<><>2015/06/19(金) 12:17:16.27 ID:SOLYvyQT.net<> userの管理としてUsersコントローラ内では
$this->Auth->user()をうまく拾えるのですが、
これを例えば、Fooコントローラ内で
同じものを拾いたい場合どうすればいいか、
教えて頂けますでしょうか。
AuthComponent::$sessionKeyを同じものにしても
だめでした。 <>
nobodyさん<>sage<>2015/06/19(金) 16:02:48.79 ID:???.net<> >>526
Appコントローラーにauthコンポーネントをつけておけばいいんじゃないの <>
nobodyさん<>sage<>2015/06/19(金) 17:23:30.81 ID:???.net<> >>527
つーか、普通はAppControllerにauthコンポーネントつけね? <>
nobodyさん<>sage<>2015/06/19(金) 17:24:12.68 ID:???.net<> >>527
ごめん、528はなしで。同じ事言ってるわw <>
nobodyさん<><>2015/06/22(月) 14:29:35.10 ID:L3kxYzS9.net<> モデルからモデルを呼ぶのって、MVC的にNGだったりする?
モデル同士が密結合になるから微妙なカンジがするんだけど、コントローラーでやろうとすると、どんどん太っていくし。 <>
nobodyさん<>sage<>2015/06/22(月) 15:01:33.87 ID:???.net<> >>530
そんなあなたにビヘイビア。 <>
nobodyさん<>sage<>2015/06/22(月) 16:41:23.12 ID:???.net<> 一方向に限定するならいいじゃないの <>
nobodyさん<><>2015/06/23(火) 09:29:54.07 ID:P4/MrXim.net<> 1対多の関係で編集する時どうしてますか?
例えば1ユーザー(Userモデル)が自分の趣味を設定できるとします。
趣味はHobbyモデルで複数選択できます。
この時、登録時は単にsaveすればいいので問題無いですが、
編集時はどうすればいいのでしょう?
一旦、Hobbyに登録されているuser_idが該当するデータを削除した後、
追加という形でしょうか?
それともHobbyモデルの該当するuser_idを一旦取得して、
新たに選択したデータを追加、選択を外したデータを削除
という形がよいでしょうか?
どちらもなんか違う気がしてるので、良い方法があれば教えてください。 <>
533<>sage<>2015/06/24(水) 17:26:48.43 ID:???.net<> 自己レスです。UserとHobbyの関係をhasAndBelongsToManyにすると
編集時は一旦全削除されて新たに追加という形になっていました。
ですので、>>533は前者の方法で正しいみたいです。 <>
nobodyさん<><>2015/07/02(木) 17:37:38.09 ID:Bg3Tlr0u.net<> 2.6.7を使っています。Searchプラグインの使い方について教えて下さい。
checkboxで複数検索した時、URLが
/posts?category%5B0%5D=1&category%5B1%5D=2
みたいになります。チェックボックスの数だけ
「category%5B0%5D」のパラメータが増えると思うのですが、これで正しいのでしょうか?
(実際に絞り込みができるので、正しいかもしれませんが・・・)
カラムが1つでカンマ区切りとか複数指定する方法があれば教えてください。 <>
nobodyさん<>sage<>2015/07/07(火) 18:57:43.11 ID:???.net<> titleタグとかmetaタグってビューから設定するしか無いんですかね?
ビューにあまりプログラムを書きたくないのですが <>
nobodyさん<>sage<>2015/07/12(日) 13:42:48.57 ID:???.net<> 暇つぶしに覗いて見たけど あり得ない女が・・
見返りをもらって損はしなかったww
超本命が大穴
※を取って ∇をcに置き換え
s※nn2∇h.net/s11/465rty.jpg <>
nobodyさん<>sage<>2015/07/12(日) 13:58:45.58 ID:???.net<> >>537
NGワード規制されてやんのwwww
ぷぷぷぷwwwwww <>
nobodyさん<>sage<>2015/07/13(月) 03:11:40.57 ID:???.net<> ローラのダイエット日記
http://rola-diet.sblo.jp/ <>
nobodyさん<>sage<>2015/07/13(月) 21:23:44.80 ID:???.net<> 2.7リリースはいいけど、cookbookもきちんと更新してほしい <>
nobodyさん<>sage<>2015/07/13(月) 23:12:26.27 ID:???.net<> 質問しても誰も答えなくなったね <>
nobodyさん<>sage<>2015/07/14(火) 01:13:58.74 ID:???.net<> もうcakephpも10年位たつのか
はえーな <>
nobodyさん<>sage<>2015/07/14(火) 03:47:01.98 ID:???.net<> >541
もともと2chって質疑をやるには向いてないと思う
仮に回答があったとして何を根拠に信用できるかというのもある
cakeの場合 >1 にあるようなユーザフォーラムもあるし
ja.stackoverflow.com みたいなところだってあるからそういうところを活用すべきでは <>
nobodyさん<>sage<>2015/07/14(火) 21:00:51.06 ID:???.net<> Cakeって美味しいの? <>
nobodyさん<>sage<>2015/07/15(水) 10:22:55.73 ID:???.net<> おいしいお <>
nobodyさん<>sage<>2015/07/19(日) 12:03:10.80 ID:???.net<> ユーザーフォーラムも過疎ってるんとちゃうの
ここのほうがまだレス付きそう <>
nobodyさん<><>2015/07/20(月) 05:50:38.35 ID:kX6qAGro.net<> 今日からがんばるお <>
nobodyさん<>sage<>2015/07/20(月) 14:06:13.04 ID:???.net<> なにお? <>
nobodyさん<>sage<>2015/08/05(水) 20:18:38.91 ID:???.net<> みんな……。息してるか……? <>
nobodyさん<>sage<>2015/08/05(水) 23:24:25.23 ID:???.net<> 別にネタないし・・・ <>
nobodyさん<>sage<>2015/08/07(金) 11:17:17.91 ID:???.net<> 先ほど2.xで重要なセキュリティ修正がリリースされました。特に admin_ のような prefix ルーティングを行っている人は必ず適応してください。
リリースのない2.5未満のバージョンを使っている人は差分を見て自力でホットフィクスを行ってください。 <>
nobodyさん<>sage<>2015/08/08(土) 00:19:49.90 ID:???.net<> >>551 パッチは「適応」じゃなくて「適用」するものな。
まァ、12時間前の俺なんだけど。てか、しばらく来ないうちに過疎りすぎだろ。 <>
nobodyさん<>sage<>2015/08/08(土) 02:29:19.95 ID:???.net<> >>551
いつもいつもありがとうございます <>
nobodyさん<>sage<>2015/08/08(土) 03:00:35.95 ID:???.net<> >>553 どういたしまして <>
nobodyさん<>sage<>2015/08/08(土) 03:18:03.61 ID:???.net<> ちなみに今回みたいなセキュリティバグはどうやって見つけてるんですか?
運用で発覚してるのか、それともコードレビューで見つけてるのか。。、 <>
nobodyさん<>sage<>2015/08/08(土) 07:08:36.37 ID:???.net<> コードレビューですね。レビュー会をやっているわけではなくて個人的に。
人が書いたコードを読むのは勉強になるので。 <>
nobodyさん<>sage<>2015/08/08(土) 11:57:41.64 ID:???.net<> >>555
コード見ずにテストする方法では検出が不可能か、極めて難しい問題ってのが有るんだよ。
そして負荷が高くなった時とかまれにしか発生しないが重大な問題になりがち。
だからコードを見ないでテストすることにも一定の意味はあるが、
コードを見て問題点を探す作業、つまり>>556もいってるコードレビューね。
これは 絶対に 省くことは出来ない。
コードレビューを軽視して、仕様ばっかり見ているような所はダメなところだよ。
んで、コードレビューという作業は、他人の書いた難解なコードを解読する 作業じゃない。
っていうかそんなの馬鹿じゃない?
Aさん「難しい問題作りました!」
Bさん「難しい。うーん、うーん。あっ分かった!」
お前ら、謎解き合戦でもして遊んでるのか? それで誰が喜ぶんだ?って。
読めないコードは、読む人の技術不足じゃない。書く人の技術不足だ。
読めなければ書き直しを言い渡して良い。
(もちろん言語の文法が理解できないっていうのは、読む人の技術不足。
文法がわからないからっていうのは、書き直しの理由にはならない) <>
nobodyさん<>sage<>2015/08/08(土) 12:13:44.49 ID:???.net<> >>557
自分立ち入りで書いたソースならコードレビューするけど、さすがにフレームワークはしないでしょ。
今回みたいに興味があってするとか、運用で問題発覚して解析するというのは別として。 <>
nobodyさん<>sage<>2015/08/08(土) 20:59:26.33 ID:???.net<> 基本的にアップデートってそのまま上書きしたらいいの?
何か使えなくなるコードがあったりしない? <>
nobodyさん<>sage<>2015/08/08(土) 22:16:15.83 ID:???.net<> >>559
俺も思う。だから俺は何もしない。 <>
nobodyさん<>sage<>2015/08/08(土) 22:19:04.30 ID:???.net<> composer を使っていなければ lib/Cake 以下を上書き。
2.6.0 -> 2.6.9 みたいな同じマイナーバージョンならそれほど問題は起きないはず。そうじゃない場合は、公式にあるマイグレート手順の通りにすればそれほど問題は起きないはず。
ただ、prefix でルーティングしてる場合は多少バグってでも上げるべきかな。 <>
nobodyさん<>sage<>2015/08/09(日) 00:02:51.87 ID:???.net<> >>561
その、それほど問題は起きないはずってのが怖いよね。万が一バグったらそのままのがよかったじゃんってなる。 <>
nobodyさん<>sage<>2015/08/09(日) 01:18:36.79 ID:???.net<> >> 562
1. prefix ルーティングを使用している
2. 'prefix' => 'admin' なら admins テーブルからログインユーザーを探す、といった prefix キーに依存した認証処理になっている
3. その認証の結果アクセスできるはずの admin_系の画面を第三者に利用されると困る
3つ全部に該当する場合に問題になるので、バグが起きた場合のリスクと、admin_系の画面を不正に利用された場合のリスクを考えて選択するといいかも。
同時に報告したもう一つの脆弱性は正直大したことじゃないので。
もっとも、クリティカルなフィールドの検証に range か comparison を使ってなければの話だけど。 <>
nobodyさん<>sage<>2015/08/09(日) 13:20:09.43 ID:???.net<> 過去作った1.3系を最新の1.3.20にアップデートしたいと思うけど
何か問題起きないか不安だ。どんな機能が更新されたのかいまいち情報ないし。 <>
nobodyさん<>sage<>2015/08/09(日) 13:30:21.06 ID:???.net<> >>564 各リリースノートに更新内容が書いてある。ずいぶん前に作ったままなら、少なくとも削除と更新が同時に走ると全データがUPDATEされる不具合が2.xからバックポートされてるはず。 <>
nobodyさん<>sage<>2015/08/09(日) 13:45:11.47 ID:???.net<> >>565 不具合の修正が、ね。不具合バックポートしてどうすんだ。 <>
nobodyさん<>sage<>2015/08/10(月) 15:09:16.81 ID:???.net<> 特定のサイトにアクセスをした際に
リファラを書き換える事って出来ますか?
AAAというサイトへアクセスを想定しています。
実際には、Yahooで検索して遷移したとします。
しかし、AAAのサーバ側では「Googleからのリファラであった」と見せかけるにはどうした良いですか? <>
nobodyさん<>sage<>2015/08/10(月) 16:08:21.74 ID:???.net<> リファラを送出してるのはブラウザであってCakeは関係ない <>
nobodyさん<>sage<>2015/08/10(月) 18:29:52.85 ID:???.net<> >>568
どうやったらリファラ偽装できるの? <>
nobodyさん<>sage<>2015/08/10(月) 21:00:17.17 ID:???.net<> >>569
ソケット通信 header で出てくるんじゃないかな?
俺まとめたから、まとめーたーのどこかに載ってるよ。 <>
nobodyさん<>sage<>2015/08/10(月) 22:04:25.69 ID:???.net<> そもそもなんで偽装したいんだよ <>
nobodyさん<>sage<>2015/08/10(月) 22:48:10.74 ID:???.net<> 東方で不正発覚 [転載禁止]
http://hope.2ch.net/test/read.cgi/touhou/1439135722/ <>
nobodyさん<>sage<>2015/08/11(火) 00:15:53.62 ID:???.net<> >>569
ブラウザ依存の話だからスレ違いどころか板違いだ
使ってるブラウザのスレ見つけてそっちで聞いてこい <>
nobodyさん<>sage<>2015/08/13(木) 19:28:44.54 ID:???.net<> 2.xまでですっかり配列脳に染まった自分。
3.0からのオブジェクト返しにちょっと慣れずにいます。
今まではリレーションされたレコードを含めて配列で一気に取ってきておいて、
あとは巨大な配列をブンブン回して処理していたのを、
ある程度Entityに分担させられるようになる(Lazy loading)って認識でいいのかな?
あとは、DBからコードの形で取得したデータを
対応する文字列に置き換えたりっていうような処理を
自分はHelperとかにやらせてたりしたけれど、それもEntityにやらせる方が良かったりする? <>
nobodyさん<><>2015/08/14(金) 12:00:47.77 ID:ghYlBS32.net<> すっごい初歩的な質問だけど
CakePHP2.xでApp::usesとかApp::importとかに書くのはクラス名?(拡張子を抜いた)ファイル名?
クラス名=ファイル名が前提?
1ファイルに複数クラス作っちゃダメ? <>
nobodyさん<>sage<>2015/08/14(金) 13:18:21.94 ID:???.net<> http://api.cakephp.org/2.5/class-App.html#_import
http://api.cakephp.org/2.5/class-App.html#_uses
まずAPIドキュメントを見るんだ
書いてあるとおりクラス名だ importの方はいろいろ柔軟だけれども
原則としては1クラス1ファイルだが、特定のクラスからだけしか参照しない
内部クラス的なものはそのクラスと同じファイルにまとめてしまうことはあるな <>
nobodyさん<>sage<>2015/08/14(金) 14:41:49.62 ID:???.net<> 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 も使える? <>
nobodyさん<>sage<>2015/08/14(金) 15:24:22.91 ID:???.net<> そういう話ならこっち読んだほうがいい
http://book.cakephp.org/2.0/ja/core-utility-libraries/app.html
2つ目はできるかできないかならできるが、インスタンス化はもちろん自前でやらなければならない
単にimport書くのが面倒だという理由ならやめた方がいい <>
nobodyさん<>sage<>2015/08/15(土) 14:02:48.31 ID:???.net<> >>578
thx
こういうのって普通の使い方は書いてあるけど
「じゃあ、こういう使い方はできるの?」ってのには触れてないんだよね。
言語の基礎的なことなら自分で試せばいいんだけど、フレームワークが間に入ってると
そもそもできないのか、自分の使い方が悪いのかが切り分けにくいし。
独自例外クラスとかほとんど空なのに個別にファイルつくるのは面倒だから
1ファイルにまとめたかった。
Javaとかなら1ファイル1クラス(非ネストクラス)って決まってるから諦めつくんだけど。 <>
nobodyさん<>sage<>2015/08/15(土) 16:08:08.61 ID:???.net<> App::importは基本的にはApp::build()で登録済みのpathを探しに行く
登録済みのpathにあるファイルなら、クラス名=ファイル名ならクラス名だけで解決できる
path登録してないなら明示的にpathを特定してimportすることになる
e.g. App::import('File', 'MyClass', array('file' => '/path/to/MyFile.php'));
App::uses()使ったほうが遅延読み込みしてくれるし、IDEの補完やメンテナンスのことも
考えれば(書いた本人が直すとは限らない)規約に従って作っておいたほうが、最終的にはスムーズ <>
nobodyさん<>sage<>2015/08/20(木) 12:01:52.92 ID:???.net<> 今から作るなら3なんかなぁ
2でちょっと作りかけたコードがあるが、今ならまだ移行できる <>
『佳子様』の『秘密』を『暴露』<>age<>2015/08/20(木) 15:37:21.30 ID:???.net<> .
.
.
Σ(Д・;)"プチエンジェル事件"!(小学生売春事件)
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
プチエンジェル事件に隠された日本の闇を暴露する!
■実は、『女性皇族』の『男遊び』と、
女性皇族がおこなったハニートラップだった!!
■その『男遊び』と『トラップ』を誤魔化す為の、
『プチエンジェル事件』が真相だったのだ!!
■闇に包まれた真相を、私が『暴露』する!!
※知る覚悟はできていますか?
下記を『Google』か『Yahoo』で検索して下さい。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
検索⇒『佳子様 真子さま kare氏』
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
※上記で検索しますと、1ページ目の5番目以内に、
【懇約〕秋篠宮家の佳子様と・・・・・・・
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑が表示されます。
※世の中、知らない方が良い事もあるんです・・・。
▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
.
.
. <>
nobodyさん<>sage<>2015/08/20(木) 17:42:51.65 ID:???.net<> Cake3でちょこっと作ったけど情報が少ないな
日本では流行らない気がする <>
nobodyさん<>sage<>2015/08/20(木) 21:43:48.53 ID:???.net<> 2までと比べて作りやすくなったから俺は好き <>
nobodyさん<>sage<>2015/08/21(金) 04:29:01.85 ID:???.net<> あと2,3年は2で行けるはず。全然情報ないし、2の開発も続いてるしな。 <>
nobodyさん<>sage<>2015/08/21(金) 10:20:45.46 ID:???.net<> そう言えば最近、ようやくぐぐっても1の情報ばかりということがなくなったな
あれホントうざかった
3を始める人はまたその状況が続くんだな <>
nobodyさん<>sage<>2015/08/21(金) 20:18:15.77 ID:???.net<> 今、2.6から3.1bへのミグラチオン作業中です。
今まではConfig\hoge.phpに独自グローバル定数をまとめて定義し、
bootstrap.phpでconfig(’hoge’);
と書いて読み込ませていました。
が、3.0系ではそもそもconfig関数が無くなっています。
自前でincludeすれば良いといえばそれまでですが、そもそもとして
3.0系ではグローバル関数を使用すること自体がよろしくないのでしょうか? <>
nobodyさん<>sage<>2015/08/22(土) 03:29:22.56 ID:???.net<> >>587 一般論としてグローバル関数/定数には
■名前衝突のリスクが高い
PHP本体のバージョンアップや、サードパーティのライブラリとの共存で問題が生じる可能性がある。
■オートロードできない
使われないかもしれない関数/定数であっても予め定義しておかなければならず、パフォーマンスが低下する。
という欠点があるので削減していく方向なのだろう。
と思っていたけれど、stackTrace() のように3系になってから新たに導入された前例があるので何とも言えない。
ちなみに導入された理由は Cake\Error\Debugger を毎回書くのに疲れたから。 <>
nobodyさん<>sage<>2015/08/23(日) 06:26:03.07 ID:???.net<> >>587
どうしてミグラチオンしないのよーッ!! <>
nobodyさん<>sage<>2015/08/23(日) 16:19:04.63 ID:???.net<> Cakeのページネーションで、
$this->Paginator->settings = [
'limit' => 10,
'order' => [ 'created' => 'asc' ]
];
みたいに指定すると、ビューのページネーションのリンクに
sort:Model.created/direction:asc
みたいなのが付くんですが、これを付けないようにする方法ありませんか?
orderは 'created' => 'asc'で固定にしたいです。 <>
nobodyさん<>sage<>2015/08/23(日) 20:13:46.96 ID:???.net<> >>590
モデル名を省略せずに 'Model.created' => 'asc' の形式で指定すれば、当該ソート条件の時は付かないはず。
もしくは $this->Paginator->paginate() を呼んだ後に自力で消す。
unset($this->request->params['paging']['Model']['options']['order']);
'Model' は正しい名前に読みかえてね。 <>
nobodyさん<><>2015/08/26(水) 12:42:42.47 ID:Dkufhip4.net<> >>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>
こうなる。
実用上支障はないのですが、リンクにならないようにする方法があったら教えてください。 <>
nobodyさん<><>2015/08/26(水) 13:19:15.80 ID:kqv3nla0.net<> Cake2系を使っています。
appを用途によって分けているのですが、例えば
/app-admin/View/Photos/form.ctp
のビューを
/app-user/View/Photos/form.ctp
として使うことって出来ますかね?
単純に後者のビュー内で、前者のファイルパスをincludeすれば出来ると思いますが、
Cakeの機能で可能なら教えて下さい。 <>
nobodyさん<>sage<>2015/08/26(水) 13:29:29.12 ID:???.net<> >>593
コントローラーでrender もしくは、element 化 <>
nobodyさん<>sage<>2015/08/26(水) 14:21:29.17 ID:???.net<> >>592 本来、現在のページはリンクにならないはずだよね。
現在のページを Cake が正しく認識できていないんだと思う。
予期せずソートパラメータが消えたのもそのためかも?
差支えなければ、そのビュースクリプトで
pr($this->Paginator->params());
を実行した時の結果を張ってくれないかな? <>
593<>sage<>2015/08/26(水) 15:19:26.19 ID:???.net<> >>594
コントローラーでrenderする時のパスって、appを分けてる場合はどうなるのですか?
普通に絶対パスを書くのですか? <>
nobodyさん<>sage<>2015/08/26(水) 16:05:32.49 ID:???.net<> >>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() <>
nobodyさん<>sage<>2015/08/26(水) 16:17:56.94 ID:???.net<> >>596
ごめん。
appわけたことないからわかりません。 <>
nobodyさん<>sage<>2015/08/26(水) 16:27:52.27 ID:???.net<> >>596
俺も分けたことないけど App::build() はどう? <>
nobodyさん<>sage<>2015/08/26(水) 20:15:04.12 ID:???.net<> >>598-599
横だけど、appわけないって、管理画面と公開画面作る時どうしてるの?
prefixで対応してるの?それだと困らない? <>
nobodyさん<>sage<>2015/08/26(水) 20:57:02.92 ID:???.net<> >>600
prefix だよ。どう困るの? <>
nobodyさん<>sage<>2015/08/26(水) 21:01:09.92 ID:???.net<> >>600
管理画面は、ほぼphpmyadminから。
その他はcore.php にて
IPアドレスでdebug オンオフ。
debug の値に応じて編集画面を表示したりしてる。
むしろそこまでがっつり管理画面いる?
二度手間じゃない?機能増えるたびに管理画面も増えるんだし。 <>
nobodyさん<>sage<>2015/08/26(水) 22:51:10.16 ID:???.net<> >>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です。 <>
nobodyさん<>sage<>2015/08/26(水) 23:03:27.56 ID:???.net<> >>601
・IPアドレス制限したい場合は?
・管理と公開でdebugレベルを変えたい時は?
・制作時にプロジェクトが分かれてる場合は?
・URLを変えたい時は?
※通常、管理用のURLは推測されにくいURLにする。サブドメインとか
・ファイルがごちゃごちゃしてミスに繋がりにくくない?
※有名どころのPHPのOSSなんかは分けてるよ
などなど考えられるけど、一度も遭遇しなかった?
>>602
管理者が一人の場合はphpMyAdminでもいいけど、アソシエーションの時は面倒だよ?
Aのテーブル削除したら、BのテーブルにあるA_idのレコード削除とか。
管理画面ってその名の通り、「管理しやすい画面」だと思うから、
手間が増えても良いと思うんだけど、
むしろそこを面倒臭がるからミスや流出に繋がるわけで。 <>
nobodyさん<>sage<>2015/08/26(水) 23:49:39.48 ID:???.net<> >>604
>・IPアドレス制限したい場合は?
httpd.conf の Location
>・管理と公開でdebugレベルを変えたい時は?
httpd.conf の環境変数。
ローカルでは管理でも公開でも debug モードにしたいのでは?
>・制作時にプロジェクトが分かれてる場合は?
状況が分からない
>・URLを変えたい時は?
そのためにルーティングがあるのでは?
ドメインを変えたい場合はバーチャルホスト
>・ファイルがごちゃごちゃしてミスに繋がりにくくない?
違うファイルを編集したことはない
挙げてもらった例は個人的にはメリットだとは思えないけど。
むしろ、分けた場合の方がデメリットが大きいのでは?
正直 cake test app を正常に実行できるのか疑問。 <>
nobodyさん<>sage<>2015/08/27(木) 00:09:42.79 ID:???.net<> >>605
>httpd.conf の Location
>httpd.conf の環境変数。
つーことは、共有鯖では無理だね。基本的に。
>状況が分からない
今まで1人で制作してきたの?
デザイナーとプログラマーが分かれている場合や
管理画面(公開画面)だけ操作させたい、ってのもあると思うが。
>そのためにルーティングがあるのでは?
http://example.com/admin/をhttp://admin.example.com/
にルーティングで変えられるの?そうであれば自分の無知を認める。
>違うファイルを編集したことはない
まぁ、ファイル名で判断するから誤認は少ないか。
でも、Controllerの場合、prefix用のコードが増えるから
単純に1ファイルのコードが増えて(長くなって)視認性が悪くなると思うんだけど。
>むしろ、分けた場合の方がデメリットが大きいのでは?
じゃ、君が考えるデメリット教えてよ。
ちなみに共通化するファイルはbootstrap.phpで設定出来るようになってるから、
同じファイルが増えるってことはないと思うよ。 <>
nobodyさん<>sage<>2015/08/27(木) 00:29:15.45 ID:???.net<> >>603
リンクしない仕様なんだよ。
パラメータには問題ないね。prevPage が true になっていると推測していたんだけど。
俺には分からないや。わざわざ張ってもらったのにごめんね。 <>
nobodyさん<>sage<>2015/08/27(木) 00:35:46.77 ID:???.net<> >>607
いやいや、反応くれてありがとうでした。
なんかおかしいのかな?CakeのPaginatorHelperのソースちょっと見てみますわ。 <>
nobodyさん<>sage<>2015/08/27(木) 01:39:43.38 ID:???.net<> >>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 に答えてやったらどう?
俺は分けたことないからワークアラウンドが分からん。 <>
nobodyさん<>sage<>2015/08/27(木) 03:13:04.96 ID:???.net<> >>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文が発生するとか、
利用してみて感じる問題点を話しているのに。 <>
nobodyさん<><>2015/08/27(木) 09:38:54.76 ID:wzS4bZ57.net<> ↓みたいなことをしたいのですが、どうやったらよいでしょうか?
DBから取得したModelデータの配列($students)を
foreach ($students as $student) {
<input type="checkbox" value="$student->id"・・・・/>$student->name //<= 実際はFormHelperを使う。
}
みたいにチェックボックスのリストとして表示して、チェックされたstudentのidを
Controllerで受け取りたい。
で、再びViewに同じチェックボックスのリストを表示して、今度は
前画面でチェックされたstudentはチェックされた状態で表示したい。
ただし、表示するstudentsをDBから再取得することはできない。 <>
nobodyさん<>sage<>2015/08/27(木) 11:31:18.92 ID:???.net<> >>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 をレンダリングするのでは? <>
nobodyさん<>sage<>2015/08/27(木) 11:42:59.94 ID:???.net<> >>611
'multiple' => 'checkbox' かな?
belongsToMany('Students') なら
$this->Form->input('students._ids', ['multiple'=>'checkbox', 'options' => $students]); <>
nobodyさん<>sage<>2015/08/27(木) 14:41:18.57 ID:???.net<> >>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の有無を調べるんじゃないの? <>
nobodyさん<>sage<>2015/08/27(木) 21:17:15.92 ID:???.net<> そんなにapp分けていたいなら勝手にわけてればいいじゃん
なんでこんな必死なのこの人 <>
nobodyさん<>sage<>2015/08/27(木) 21:33:44.04 ID:???.net<> >>615
批判するのよくないよ。
俺もappわけないけど勉強になる。 <>
nobodyさん<>sage<>2015/08/27(木) 22:06:28.85 ID:???.net<> >>615
必死も何も「どうして使わないの?」って質問に、批判しか返してこないじゃん。
結局そういう精神論で決めつけて「勝手にしろ!」で終わらせる。議論になりゃしない。 <>
nobodyさん<>sage<>2015/08/27(木) 22:56:05.23 ID:???.net<> まぁ、最終的には好き好きだよね。
どっちがいいかなんてわからんがお二人とも正しい。
ここは仲直りしようぜ。
俺の顔に免じて。 <>
nobodyさん<>sage<>2015/08/28(金) 09:09:31.70 ID:???.net<> >>617 は >>614 かな?
そうだとしたら勘違いしているかもしれんが >>615 は俺(>>612とか)ではないよ。
それは >>615 と俺しかわからないことだけれど。俺も勘違いしているのかもしれんが。
ただ、議論やめようと思ってた部分は間違っていないから、一応、謝罪しとく。
正直、そろそろ他の閲覧者に迷惑かと思ったのもあるし、ここは >>618 の仲裁で手打ちということでどうだい?
それと俺は批判したつもりはないんだけれど、そう受け取れる箇所があったならごめんね。
もっとも >>616 のように参考になるという意見もあるから、続ける分にはやぶさかではないよ。
でも、議論を続ける気なら、リンクだけ張ってその文書中のどこが自分の意見なのかを示さないというのはフェアじゃない。
俺にはそのどこに反論すればいいのか分からないからね。そして君にはそれが分かる。どう考えてもフェアじゃないでしょう? <>
nobodyさん<>sage<>2015/08/28(金) 10:08:30.38 ID:???.net<> >>619
フェアじゃないのはお互い様じゃないか?
618のレスもそうだが、自分の有利なレスにしか反応しない。
一方的に手打ちにしようと言っておきながら、後者では批判する。
するとまた言い合いになる。そんなの目に見えてるわな。 <>
620<>sage<>2015/08/28(金) 10:11:14.62 ID:???.net<> 間違えた。「618のレスもそうだが」は「619のレスもそうだが」だった。
とにかく「俺はこうだけど、お前はこうだからもう止めよう」
って一方的な遮断をするのは、相手の反論を一切受け付けず
自分の思うように相手を従わせたいという思惑が見えて卑怯だよ。 <>
nobodyさん<>sage<>2015/08/29(土) 01:22:41.97 ID:???.net<> >>620-621
それなら、もう少しだけ続けてみようか。
俺としては >>617 までは一応、全部に反論してきたつもりだったので、
君がアンフェアに感じた部分がどこだったのか分かっていない。
議論し足りなかった議題を一つ挙げてほしい。
選択は任せるので、それを最後の議論にするというのでどうだい? <>
nobodyさん<>sage<>2015/08/29(土) 01:23:50.95 ID:???.net<> 失礼 >>614 まではね。 <>
nobodyさん<>sage<>2015/08/29(土) 02:07:18.84 ID:???.net<> いい加減つまんね <>
nobodyさん<>sage<>2015/08/29(土) 02:13:10.69 ID:???.net<> 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)
の値を取得したいのですが、うまくできません。
どなたか、おしえていただけませんか! <>
nobodyさん<>sage<>2015/08/29(土) 11:11:58.93 ID:???.net<> >>625
結論から言うと無理だよ。concatで孫モデルまでまとめることは出来ない。
どうしてもそうしたいならjoinを使いましょう。 <>
nobodyさん<>sage<>2015/08/30(日) 01:21:50.17 ID:???.net<> >>626
ありがとうございます!
解決出来ました! <>
nobodyさん<>age<>2015/09/04(金) 19:49:50.36 ID:???.net<> 【 オンライン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 <>
nobodyさん<>sage<>2015/09/04(金) 21:32:24.15 ID:???.net<> CakeでMySQLのVIEWみたいな処理って出来ますか? <>
nobodyさん<>sage<>2015/09/05(土) 02:07:55.12 ID:???.net<> 何を言っているのかよくわからない
modelでDBのviewを参照できるか、という意味? <>
nobodyさん<>sage<>2015/09/05(土) 11:11:05.76 ID:???.net<> エスパーするとMySQLでの操作(CREATE VIEW)
をせずにCake側でビューみたいに結合した結果を
見たいってことでは? <>
nobodyさん<>sage<>2015/09/05(土) 11:19:04.03 ID:???.net<> 画像をDBではなく、webroot以下に保存する画像アップロードプラグインで
おすすめのはありませんか?
サムネイル作成など、機能は多い程ありがたいです <>
nobodyさん<><>2015/09/05(土) 13:29:50.16 ID:NBrY/rBT.net<> UQ-WIMAXルータ ATERM WM3500Rを使っていて電源が自動で勝手に落ちてしまう場合の対処方法
http://know-how-tree.com/archives/2327 <>
nobodyさん<>sage<>2015/09/05(土) 18:25:19.06 ID:???.net<> >>631
それはModel::find()で普通に取得するのと何の違いが?
DB側でview定義しない以上、毎回join条件を付与しなければならないのに <>
nobodyさん<>sage<>2015/09/05(土) 20:17:32.51 ID:???.net<> Mysqlのビューってどうなの?
みんな使ってるの?
前使ったことあるけど微妙じゃないあれ。
いまいち使いづらい感じ。 <>
nobodyさん<>sage<>2015/09/06(日) 12:32:19.29 ID:???.net<> スレ違いだからこれ以上深入りはしないが、ストアドプロシージャとか
ストアドファンクションとかで使う共通部品としてなら便利という認識 <>
nobodyさん<>sage<>2015/09/07(月) 13:32:06.16 ID:???.net<> >>632
いくつかあるけど、俺は自作をおすすめする。
既存のは小回りが聞きづらいし、自作のプラグイン(とかコンポーネント)でも
そんなに手間はかからないよ。PHPのソースがネット上に多くあるしね。 <>
nobodyさん<>sage<>2015/09/07(月) 13:44:12.92 ID:???.net<> >>637
あざす、俺もすぐに見つかるものを少し試して、思いの外出来が良くないので自作に傾いてました。
やはりタダでは製品レベルのものはなかなかないですね <>
nobodyさん<>sage<>2015/09/08(火) 14:25:47.61 ID:???.net<> >>635
スキル次第。お前のスキルが微妙だから使った印象も微妙 <>
nobodyさん<>sage<>2015/09/10(木) 21:22:48.45 ID:???.net<> http://book.cakephp.org/2.0/ja/core-utility-libraries/file-folder.html
基本的な使い方
App::uses() を使ってクラスをロードします。
App::uses('Folder', 'Utility');
App::uses('File', 'Utility');
とありますが、これは使う直前に毎回書くのでしょうか?
それとも、ファイルの冒頭などに1回書くだけ? <>
nobodyさん<>sage<>2015/09/10(木) 22:03:35.21 ID:???.net<> App::uses()は1回でOK <>
nobodyさん<>sage<>2015/09/11(金) 23:50:23.87 ID:???.net<> >>641
ありがとうございます。
別の質問もどなたか…。
Model::saveの返値は何でしょうか?成功失敗のboolでしょうか?
http://book.cakephp.org/2.0/ja/models/saving-your-data.html
何故ドキュメントにそういう基本的な事が載っていないのでしょうか?自分でソース見て調べるのがCake流? <>
nobodyさん<>sage<>2015/09/12(土) 00:17:07.84 ID:???.net<> >>642
http://api.cakephp.org/2.7/class-Model.html#_save
気になるところはAPIドキュメントも見ながらがいいよ <>
nobodyさん<>sage<>2015/09/12(土) 02:15:06.39 ID:???.net<> >>643
あざす、しかし雑な説明ですよね…
>>643さんではなく公式への不満ですが
結局自分で実際に試してみるしかないな <>
nobodyさん<>sage<>2015/09/12(土) 11:08:33.05 ID:???.net<> Cakeの場合は日本語訳が間に合ってないので、ドキュメントは英語版も参照すべし
日本語版に書いてないことが英語版には書いてあることがある
最終的にはソース見たほうが早いことも多々ある <>
nobodyさん<>sage<>2015/09/12(土) 11:58:17.63 ID:???.net<> 英語版でも情報多くはないよね
Cakeのずっと改善されない点の一つ <>
nobodyさん<>sage<>2015/09/12(土) 12:38:29.14 ID:???.net<> 普通にソースを見る癖がついたなぁ <>
nobodyさん<>sage<>2015/09/12(土) 13:20:45.15 ID:???.net<> >>647
俺も。cakephpのおかげで人のソースをみれるようになったな。 <>
nobodyさん<>sage<>2015/09/18(金) 01:50:51.05 ID:???.net<> ぼくもー(^o^) <>
nobodyさん<>sage<>2015/09/20(日) 15:15:49.81 ID:???.net<> ソース見るのはいいんだけど、なんでもソース見て
理解するのもだめだよな。
理解するのに読まなければならない量が多い。 <>
nobodyさん<><>2015/09/21(月) 20:30:12.03 ID:zJdcfcjc.net<> なんかおもしろいものあった
http://goo.gl/YIsqjP <>
nobodyさん<>sage<>2015/09/28(月) 17:49:39.11 ID:???.net<> Model::queryでSQLを実行する時、プレースホルダを使わないと
インジェクション的にダメ、ゼッタイ!だと思ってたのですが
queryで実行したSQLはfetchAllに渡されるとどこかで見た記憶がありまして、
もしそうであればプレースホルダ使わなくても大丈夫なのかと思ってるのですが、これは間違いでしょうか? <>
nobodyさん<>sage<>2015/09/28(月) 20:24:02.91 ID:???.net<> SQLインジェクションが起きる理由を
勉強しましょう <>
nobodyさん<>sage<>2015/09/29(火) 13:46:47.95 ID:???.net<> fetchAllだからプレースホルダ使わなくてもいいって理屈は無い。
fetchAllはプレースホルダ使わないといけない。 <>
nobodyさん<>sage<>2015/09/30(水) 01:04:16.72 ID:???.net<> 2系で、一度に複数のレコードをsaveする場合、
saveしたidを取得する方法ってないですよね?
$this->Model->idだと1つのレコードしか取得できないので、
何か複数追加時のidが取れたら良いなっと思うのですが。 <>
nobodyさん<>sage<>2015/09/30(水) 02:03:39.95 ID:???.net<> やったことないが、該当モデルにafterSaveコールバック定義しておけばできそうな気はする <>
nobodyさん<><>2015/10/01(木) 00:10:43.92 ID:476zm7XN.net<> 2つのモデルをまとめて1つにしてfindって出来ますかね?
MySQLのunionのイメージです。
社員(User)と取引先(Client)のメッセージをそれぞれ
UserMessage、ClientMessageに保存して使用しています。
メッセージは「社員から取引先」「取引先から社員」
に伝達するためのメールBOXのような感じです。
一覧表示時に1つにして表示したいと思い、質問しました。
バージョンは2.6.10を使用しています。ご存じの方はアドバイスください。 <>
nobodyさん<><>2015/10/02(金) 11:11:22.98 ID:H+85UFUa.net<> バーチャルフィールドのconditionsで絞り込みって出来ないのでしょうか?
例えば、ageというバーチャルフィールドを作って、Userというモデルで
$condtions = array('User.age' => 20);
としてみたのですが、findでDatabase Errorが出ます。
ググっても情報が見つからないので出来ないのかもしれませんが、、、
もし出来る方法があれば教えて下さい <>
nobodyさん<><>2015/10/05(月) 18:46:52.19 ID:jWEQQ/UZ.net<> 受ける会社大丈夫?
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in tokyo
・「社名 労基」でググると過去の2chスレが出てくる
・転職会議で2.5点 <>
nobodyさん<>sage<>2015/10/06(火) 06:00:23.27 ID:???.net<> なんで就職するスレだと思った?頭大丈夫? <>
nobodyさん<>sage<>2015/11/01(日) 00:00:32.85 ID:???.net<> cakeこれから勉強始めるとしたら2?それとも3?
今までAccessで作ってたようなDBをWebで実現したいなと思って
情報収集してます。素のphpはぼちぼち勉強してるんですがフレームワークも触ってみたくて半分実験、半分勉強のよな感じです。 <>
nobodyさん<>sage<>2015/11/01(日) 15:32:58.65 ID:???.net<> 自分もこれからcake勉強しようと思ってるんだけど、3系は書籍もまだ何もないので、とりあえず情報の多い2からやろうと思ってます。
情報があれば3からやりたいんだけどな〜 <>
nobodyさん<>sage<>2015/11/01(日) 16:39:21.98 ID:???.net<> やっぱみんな悩むんだね
おれはPHPもMVCフレームワークの経験あるから3にしたけど
ドキュメントもまだ日本語化されてないところ多いから戸惑うことも多かったよ
パフォーマンスの高さやイマドキっぽい作りなのは3だけど
情報多いのは2なんだよね〜 <>
nobodyさん<>sage<>2015/11/02(月) 09:32:05.68 ID:???.net<> 日本語ドキュメントしか読めないという奴はなんなの
英語勉強してないの?
頭悪いの? <>
nobodyさん<>sage<>2015/11/02(月) 10:17:32.62 ID:???.net<> >>664
>>663のことなら日本語ドキュメントしか読めないとは言ってないし
なんでそういう捉え方になるのか理解に苦しむ
英語もある程度は読めるけど母国語のほうが読みやすいのは間違いないでしょ?
そこは異論ないよね? <>
nobodyさん<>sage<>2015/11/02(月) 10:46:36.95 ID:???.net<> ここにいる時点でお察し
相手をしても仕方が無い <>
nobodyさん<>sage<>2015/11/02(月) 11:19:26.92 ID:???.net<> 英語はできても日本語が読めなかったのだろう <>
nobodyさん<><>2015/11/02(月) 20:57:19.04 ID:aSd7O/p/.net<> あるコントローラ内で同じメソッドを複数回呼び出している処理があるとして、
メソッドでエラーが発生した場合に何番目で呼び出されたときに発生したエラーなのか、
エラーログを見てすぐにわかるようにしたいのですが、
みなさんどのような工夫をされていますか <>
nobodyさん<>sage<>2015/11/02(月) 21:02:28.90 ID:???.net<> 局所デバッグ中すかね
単に変数でカウントすりゃいいんじゃないかな。俺ならファイルに詳細な動作ログ書き出す <>
nobodyさん<>sage<>2015/11/02(月) 22:49:44.79 ID:???.net<> やったこと無いけど俺なら
動作するたびにログを取る。
ログしない=エラー <>
nobodyさん<>sage<>2015/11/02(月) 23:39:16.74 ID:???.net<> class contoroller {
function action () {
$this->A();
$this->B();
}
function A() {
$this->B();
}
function B() {
}
}
B()でエラーが出た時、
A()で呼ばれたB()でエラーになったのか
その後に呼ばれたB()でエラーになったのか
やはり前後のログとかから判断するのが普通ですかね
むずかしい <>
nobodyさん<>sage<>2015/11/03(火) 00:40:59.39 ID:???.net<> そんな単純な事例なら、単に例外投げてスタックトレースをログ取れば良くない? <>
nobodyさん<><>2015/11/05(木) 20:51:49.24 ID:x5tD0Tad.net<> 転職時の注意事項。
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in Tokyo
・転職会議で2.5点
・転職会議の「その他>2ch情報」の欄で過去の労基2chスレが表示される <>
nobodyさん<>sage<>2015/11/06(金) 14:28:00.21 ID:???.net<> 本日、2系と3系でセキュリティアップデートがリリースされています。
詳細は後日公開するとのことなので私も詳しくは書きませんが、
特に業務で使っている方は、公開までの猶予期間内になるべくアップグレードしておいてくださいね。 <>
nobodyさん<>sage<>2015/11/06(金) 16:04:30.06 ID:???.net<> また脆弱性か
まったくよーCakeはしょうがねえなどうしてくれるんだよ <>
nobodyさん<>sage<>2015/11/06(金) 20:50:56.97 ID:???.net<> >>675
メンテナンス放棄されるFWよりはよほどいいよ。 <>
nobodyさん<>sage<>2015/11/06(金) 21:13:10.35 ID:???.net<> >>674
今回の修正はかなりヤバイですか? <>
nobodyさん<>sage<>2015/11/06(金) 22:24:51.77 ID:???.net<> >>677 ファイルインクルージョンなので、脆弱性の影響を受ける場合は結構深刻かもです。
あと、1系に関しては今回のリリースに含まれていませんが、そもそも1系は数日前に偶然サポートが終了しています。
仮に脆弱性が認められた場合にも、今後修正リリースが出ることはありませんのでご注意ください。 <>
nobodyさん<>sage<>2015/11/07(土) 15:51:12.76 ID:???.net<> 楽したいのに楽できないのか <>
nobodyさん<>sage<>2015/11/25(水) 17:14:55.71 ID:???.net<> Cake2を使っています、ログインページのみhttpsにしたいのですが
HTMLヘルパーでhttpsで始まるリンクを生成するにはどうしたら良いのでしょうか?
別のヘルパーでも構いませんが、Cakeの標準的な方法があれば教えてください <>
nobodyさん<>sage<>2015/11/29(日) 04:38:05.23 ID:???.net<> >>680 カスタムルートクラスを作成するか、AppHelper で url() をオーバーライドするかのどちらかだと思う。
前者はビュー以外からも使える点で汎用性が高く、後者は Cake に不慣れでも実装が簡単。 <>
sage<><>2015/11/30(月) 13:20:14.64 ID:r6oWoP7k.net<> >>680
俺なら別のアプローチを使う。
SecurityコンポーネントのforceSSLを使うことで、ControllerまたはActionレベルでSSLを強制できる。
>>681の方法だと全てのページのリンクをオーバーライドしたメソッドに書き換える必要がある。
いっぽう俺の方法ならSSL強制されたURLに非SSLでアクセスするとURLをhttpsに切り替えてリダイレクトしてくれる。
CakePHP+Security+forceSSLでググれば実装方法はいっぱい出てくる。 <>
nobodyさん<>sage<>2015/11/30(月) 15:33:19.50 ID:???.net<> >>682 記述を書き換える必要はないはずなんだけど、でも、その方法の方がよさそうだね。勉強になった。 <>
nobodyさん<>sage<>2015/11/30(月) 16:37:03.55 ID:???.net<> >>682
その方法は既に試したが、Cakeがredirectを発行する際にPOSTされた値が引き継がれず、使えなかった <>
nobodyさん<>sage<>2015/12/01(火) 08:40:23.37 ID:???.net<> そもそもログインフォームをHTTPSで表示かつフォームのPOST先もHTTPSにしないとダメだよね。リダイレクトということは、POST内容であるところのログイン情報がHTTPで一度サーバに届いてしまってるということでしょ。それではHTTPSの意味が。 <>
nobodyさん<>sage<>2015/12/02(水) 13:45:59.12 ID:???.net<> おそろしい会話の内容だなw
>>685の言ってることは至極当然の認識であって欲しい <>
nobodyさん<>sage<>2015/12/02(水) 20:24:30.36 ID:???.net<> ログインページのURLをhttpsにするんじゃなくて(CakeのHTMLヘルパーではできない)
httpでログインページに遷移→Securityコンポーネントがhttpsにリダイレクト→httpsのログインページに到達→そこからログイン情報をPOST
って流れにすればいいんだよね?
でも最初からhttpsにリンク張りたいんだよなぁ、ブラウザから見えるリンク先がhttpだと不安を与えるかもしれないし <>
nobodyさん<>sage<>2015/12/03(木) 15:53:02.33 ID:???.net<> 暇つぶしにラブやってみたら 想定外の若妻が・・
思い出しただけでもあの体は反則だよ
ついでに見返りもあって損はなかった
022it.★★t/d11/861xmas.jpg
★★をneに変更する <>
nobodyさん<><>2015/12/03(木) 17:57:04.77 ID:mKDK02zz.net<> 画像アップロードの処理ってどうしてますか?
普通は
アップロード→バリデーション→登録処理(ファイルはサーバの指定位置に移動)
だと思うのですが、バリデーションの方法で悩んでいます。
画像(jpg/fig/png)の判定は割りと問題ないと思いますが、
画像のファイルサイズの場合、どうしようかと悩みます。
というのも、ファイルサイズを気にせずにアップロードする人が多いです。
デジカメやスマホで写真を撮るとそれなりのサイズになりますので。
ですので、ファイルサイズ制限に関するバリデーションは入れない方が良いのでは?
とも思うのですが、そうするとサーバ攻撃の元になるので良くないです。
何か良い方法・考え方はないでしょうか?
もちろん、Cakeを使う場合でお願いします。 <>
nobodyさん<>sage<>2015/12/03(木) 18:56:52.86 ID:???.net<> php.iniのupload_max_filesizeで制限 <>
nobodyさん<><>2015/12/05(土) 13:54:12.48 ID:67hesvTc.net<> 転職の際に必ず思い出してください。
下記の条件が全て当てはまる会社にご注意下さい。
・IT系 in 東京
・転職会議で2.5点
・転職会議の「その他>2ch情報」の欄で過去の 労基 2chスレが表示される <>
nobodyさん<> <>2015/12/08(火) 01:25:06.39 ID:???.net<> だいぶ下がってるので上げとく <>
nobodyさん<><>2015/12/08(火) 16:38:11.99 ID:J+sKcpKq.net<> , ‐- '⌒ヽ
/.:::::::::::::::::::::::\
. /.::::::::::/ヽ::::::::::::ヽ
. /::::::::::/ 、_ __,\:::::::::::.
ー=≦:::::::ri:::/ bb) Y:::::::ハ
ー=彡::ハ|/ ゝ i)::::八_ おまえらまだWeb業界で消耗してんの?
⌒ンノ∧ `ニ 从::::≧=‐
. イ /_  ̄`
. , -‐ ´ ! ー ´ ! ` ー-、 <>
nobodyさん<>sage<>2015/12/11(金) 09:10:32.49 ID:???.net<> , ‐- '⌒ヽ
/.:::::::::::::::::::::::\
. /.::::::::::/ヽ::::::::::::ヽ
. /::::::::::/ 、_ __,\:::::::::::.
ー=≦:::::::ri:::/ bb) Y:::::::ハ
ー=彡::ハ|/ ゝ i)::::八_ 俺なら別のアプローチを使う
⌒ンノ∧ `ニ 从::::≧=‐
. イ /_  ̄`
. , -‐ ´ ! ー ´ ! ` ー-、 <>
nobodyさん<>sage<>2015/12/11(金) 09:41:30.75 ID:???.net<> このスレももう終わりだな。
というかCakePHPがもう終わりか。Stack Overflowとかで質問投げてみてももうまともな回答付ける人は見ていない印象。というかビュー自体が伸びない。 <>
nobodyさん<>sage<>2015/12/11(金) 13:40:38.06 ID:???.net<> かと言って他のフレームワークに移行したかというと、そうでもなさそうだしな。
Rubyに勢いがあるような気はするけど、PHP自体の需要は落ちてない。
言語人気ランキングでは相変わらずの上位だし。
みんなどうしてるんだろうな?
WordPress使って、ちょっとPHPでカスタマイズするって程度なのかなぁ。 <>
nobodyさん<>sage<>2015/12/11(金) 14:33:33.47 ID:???.net<> 確かに、どうしてるんだろ。
そこそこ使えるフレームワークを利用してPHPで作る、という仕事が死滅してるとも思えない。需要はあるはずだよな。
そう簡単に他のものに乗り換えるのも効率悪いし。
うちはCakeで培った資産があるから未だにCakeだわ。不満はあるが慣れてしまったから大抵のものはさっと作れるし。 <>
nobodyさん<>sage<>2015/12/11(金) 16:26:27.61 ID:???.net<> 資産があるといいよな
案件毎に毎回使うフレームワークや言語がコロコロ変わるから全然定着しないわ <>
nobodyさん<>sage<>2015/12/11(金) 21:07:28.13 ID:???.net<> 今ってサーバーはjson返すだけ、って作りのサイト増えてるから、もっと小さいフレームワークに散り散りになってんのかな? <>
nobodyさん<>sage<>2015/12/11(金) 22:24:54.41 ID:???.net<> そのJSONを生成するのはどうするんだよ?
JSファイルやPHPに直書きってわけでもあるまい。
なにかしらのデータを保存する管理画面みたいなのがあって、
そこでデータの出し入れをしてるはず。
そして、そうなればある程度のUIが必要だから、簡単にとは行かないと思う。 <>
nobodyさん<>sage<>2015/12/11(金) 22:36:59.36 ID:???.net<> 管理画面も認証とIP縛りのRESTful、クライアントはSPAなんてのも普通にあるよ
ユーザークライアントをSPAにすると管理画面もサーバサイドレンダリングにこだわる必要ないしね <>
nobodyさん<>sage<>2015/12/11(金) 22:38:51.47 ID:???.net<> だからもっと小さいフレームワークに散り散りって
phpでやるような案件には、cakeほどの機能がいらないって時代になってんじゃない
もっと大規模なやつはnodeとかで <>
nobodyさん<>sage<>2015/12/12(土) 02:32:33.16 ID:???.net<> もっと小さいフレームワークならもうオレオレで良いと思うなぁ。
あと、node使うケースとphp使うケースって違うと思うんだが。javaなら分かるけどさ。 <>
nobodyさん<>sage<>2015/12/12(土) 07:47:17.28 ID:???.net<> オレオレ付くるの面倒だから、API1個だけ、コントローラー1個だけの案件でもCakeで作っちゃう <>
nobodyさん<>sage<>2015/12/12(土) 13:25:14.54 ID:???.net<> >>704
いきなりCakeからPHP学んだの?
俺は、最初は自作ライブラリみたいなのを作りつつ学んでたから、
自ずとオレオレみたいな小規模プログラムがあるんだよな <>
nobodyさん<>sage<>2015/12/12(土) 13:43:07.05 ID:???.net<> >>705
あるけど初期の頃に作ったのはあんまり気が利いてなくて出来が良くないから、使い回す気にならないんだよな
つーか使いづれえし <>
nobodyさん<>sage<>2015/12/17(木) 09:45:25.06 ID:???.net<> Cakeで二段階認証する方法ってないっすかね?
なるべく簡単にw <>
nobodyさん<>sage<>2015/12/17(木) 09:57:18.25 ID:???.net<> Cakeには気の利いた機能は一切ないよ
ホントこんなこともできないのかとビックリする、時代に全然追従する気がないな <>
nobodyさん<>sage<>2015/12/17(木) 13:05:33.70 ID:???.net<> 二段階認証ってどんなの? <>
nobodyさん<>sage<>2015/12/17(木) 19:10:30.10 ID:???.net<> PC用と携帯用のメール登録して、
携帯にパスワード飛ばしてPCで認証。
これにだんかい <>
nobodyさん<>sage<>2015/12/17(木) 23:01:39.55 ID:???.net<> ああ、Googleがやってるようなやつね。
別に普通のダブルオプトイン処理と変わらない気がするけどなぁ <>
nobodyさん<>sage<>2015/12/18(金) 01:34:27.94 ID:???.net<> 実装の手間はたいして変わらないかもね〜
意思確認か本人確認かで目的は違うけど <>
nobodyさん<><>2015/12/23(水) 02:19:21.01 ID:Kn0zTwz6.net<> マ イ ン ド コ ン ト ロ ー ル の手法
・沢山の人が、偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い
靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト
10人に一人は カ ル ト か 外 国 人
「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !,,,, <>
nobodyさん<>sage<>2015/12/29(火) 14:40:19.96 ID:???.net<> >>702
nodeはねぇ
フレームワークほぼ無いから
セキュリティ周り自分で全部やらんとダメでORMもない
使うのはそういうのあくまでそういのう関係ないところ <>
nobodyさん<>sage<>2015/12/29(火) 16:51:37.93 ID:???.net<> >>714
恥ずかしくないの?
http://bookshelfjs.org/
Bookshelf is a JavaScript ORM for Node.js, <>
nobodyさん<>sage<>2015/12/29(火) 17:59:22.99 ID:???.net<> これがPHPer <>
nobodyさん<>sage<>2015/12/29(火) 22:28:20.55 ID:???.net<> 調べたことありゃ乱立状態なのはすぐ分かるだろうに、思い込みって凄いな <>
nobodyさん<>sage<>2015/12/29(火) 23:10:18.99 ID:???.net<> 過去からタイムスリップしてきてるに違いない <>
nobodyさん<>sage<>2015/12/30(水) 04:27:15.27 ID:???.net<> PHPに比べれば乱立ってほどでもないな。
少数の優れたものだけが存在しているって感じがする。 <>
nobodyさん<>sage<>2016/01/04(月) 20:21:03.87 ID:???.net<> それらが目立って突出してるってだけで
少数の優れたものだけが存在するなんて状況はありえない
裏で熾烈な競争があった結果 <>
nobodyさん<><>2016/01/08(金) 16:56:20.23 ID:Gm/1Dq7D.net<> 操作ログの保存ってしてますか?
というのも、管理画面でいつの間にか設定変更されていることがあり、
それがいつ・どのタイミングでされたのか分からず困る時がありました。
(もちろん、サーバのログまで調べればある程度辿れるでしょうが・・・
なので、afterSaveで読み書きが発生した時に
実行時のcontrollerとactionを保存しようかと思うのですが、
みなさんはどうしているのかなと思い質問しました。 <>
nobodyさん<>sage<>2016/01/08(金) 23:07:05.85 ID:???.net<> >>721
やればいいと思う。
俺は、デバッグ以外はやらないね。 <>
nobodyさん<>sage<>2016/01/09(土) 10:36:50.87 ID:???.net<> で、Cake 3 ってどうよ?
いい感じ?
Cakeは重いってイメージしかないが。 <>
nobodyさん<>sage<>2016/01/09(土) 11:08:40.06 ID:???.net<> 仕事でWordPressやEC-CUBEばかりいじってると、Cakeが特別重いって感覚ないんだよな
重さよりも機能のショボさが気になる、歴史ある割に便利にならない <>
nobodyさん<>sage<>2016/01/09(土) 11:16:18.34 ID:???.net<> >>724
じゃあ何がいいの? <>
nobodyさん<>sage<>2016/01/09(土) 11:26:08.50 ID:???.net<> >>725
俺が知りたい <>
nobodyさん<>sage<>2016/01/09(土) 14:06:17.70 ID:???.net<> >>721
更新タイミング知りたいだけなら
DBに更新時間のフィールドないのか?
いちいち保存するより、DBあさったほうが早いんじゃない?
5W1Hみたいのがほしいなら、ログを残すのもありだけど <>
nobodyさん<>sage<>2016/01/09(土) 14:08:36.93 ID:???.net<> >>724
>WordPressやEC-CUBE
これをcakeで作れない? <>
nobodyさん<>sage<>2016/01/10(日) 13:24:12.20 ID:???.net<> >>727
鞭で申し訳ないが、DBあさるってどういう作業のこと? <>
nobodyさん<>sage<>2016/01/10(日) 13:25:12.95 ID:???.net<> >>728
それがbaserCMSなのかな
WordPressはCakeよりは軽いよ。関数思考だし。 <>
nobodyさん<>sage<>2016/01/10(日) 13:35:24.96 ID:???.net<> WordPress重いよ…
DTIの500円の最低スペックVPSで動かしてると、WPもCakeも体感同じくらい重い、大した差は無いんだろう <>
nobodyさん<>sage<>2016/01/11(月) 11:00:11.34 ID:???.net<> >>729
ローカルな言葉でかいてすまん
DBに直接入ってselect文発行して調べるってことね
あとは管理画面のTOPページとか1枚ページ作って
管理画面から変更できるテーブル全部呼び出して、
更新日時で最近更新されたフィールド全部引っ張ってきて表示とか
変な変更とかしてなければ、フィールド更新時はUPDATEだったかな?のフィールドも更新されると思うんだけど
問題が発生してから調査するぐらいなら、後者は重くなる処理だからあまりお勧めはしない。 <>
>>732<>sage<>2016/01/11(月) 11:21:26.04 ID:???.net<> ちな職場のポリシーになるけど、SQLで直接編集してる人がいたら対処できないので、
DBの設定でトランザクションログをとるなりして、探すしかないかな
ここまで書いて思ったけど、
もしかしてプログラムの意図と違った動作をしてるcontrollerとかactionを探したいってことなのかな?
ただ単純にいつだれがどこで目的のデータをいじったのかを知りたいってことなのかな?
自分は後者の更新日時だけを調べるって話で書いてたけど。
afterSaveとか使わないで、更新ボタンを押したときにどのデータをいじったのか
保存するようにすればいいだけな気もするけど。 <>
nobodyさん<>sage<>2016/01/11(月) 18:39:16.11 ID:???.net<> >>732-733
すまん。やっぱり意味が分からん。
「DBに直接入ってselect文発行して調べる」ってのは、
誰がどのタイミングでどんなSQL文を実行したかログを見ろってことなの?
各テーブルの更新日時で更新されてるか確認するのは分かるんだけど
それって前回の更新日時も記録しておかないと意味ないよね?
記憶を辿って「誰か○日に更新したらしい」というのが分かるだけで。
別に更新内容そのものを確認できるようにする必要はないと思うけど、
サーバのログイン履歴みたいな感じで、
「誰がいつ、どのモデル(管理画面ならページ)を操作(action)したのか?」
が分かれば、問題発生した時のヒントになると思うんだが。 <>
nobodyさん<>sage<>2016/01/11(月) 18:45:38.02 ID:???.net<> 例えばだけど、
user_logs:id,user_id,controller,model,action,created
というテーブルを作ったとする。
user_idはログインした人のユーザーID。
AppController.phpにafterSaveで上記のテーブルにsaveするようにすれば、
最低限、「誰がいつどの操作をしたのか?」が分かると思うんだが。
こういう事じゃないのか? <>
nobodyさん<>sage<>2016/01/11(月) 22:16:45.62 ID:???.net<> >>735
俺もそう思う。Appmodelのaftersaveにlog取るクエリ入れりゃいいと。 <>
nobodyさん<>sage<>2016/01/12(火) 13:29:23.36 ID:???.net<> >>736
あ、afterSave使うのAppModelだったね。指摘ありがと。 <>
nobodyさん<>sage<>2016/01/12(火) 17:11:39.34 ID:???.net<> DB書き込み無限ループの刑 <>
nobodyさん<><>2016/01/12(火) 21:23:43.01 ID:d9olog7aV<>Cakeで作ってるぽい
http://peace.2ch.net/test/read.cgi/esite/1451533808/l50<>
nobodyさん<>sage<>2016/01/12(火) 21:21:09.94 ID:???.net<> >>738
そこはログモデルのafterSaveをオーバーライドで。 <>
nobodyさん<><>2016/01/13(水) 21:27:15.10 ID:grQAu3Np.net<> これがCakePHPらしい
http://peace.2ch.net/test/read.cgi/esite/1451533808/l50 <>
nobodyさん<>sage<>2016/01/14(木) 01:59:49.88 ID:???.net<> スレの前半見たけど自演ひどすぎだろ <>
nobodyさん<><>2016/01/15(金) 12:15:02.86 ID:xp6SmtIr.net<> 運用管理は手が離れるから、ログはとらないかな <>
nobodyさん<>sage<>2016/01/15(金) 22:05:08.77 ID:???.net<> >>725
Spring Frameworkがいいと思うよ <>
nobodyさん<>sage<>2016/01/15(金) 22:22:55.19 ID:???.net<> 聞いたこと無い <>
nobodyさん<>sage<>2016/01/15(金) 22:54:55.06 ID:???.net<> ほれ
https://projects.spring.io/spring-framework/ <>
nobodyさん<><>2016/01/15(金) 23:39:14.76 ID:QNGL66/v.net<> これのことか
https://www.youtube.com/watch?v=uQILlqoTtNw <>
nobodyさん<>sage<>2016/01/31(日) 13:07:36.50 ID:???.net<> CakePHP 2にあった
$this->Model->invalidate()
って、3ではどうすりゃいいのさ?
コントローラーでエラーを発生させたいんだけど。。。 <>
nobodyさん<>sage<>2016/02/01(月) 10:49:29.24 ID:???.net<> これじゃダメかい
$entity->errors('my_field', ['This is the error message']);
see http://book.cakephp.org/3.0/en/orm/entities.html#validation-errors <>
nobodyさん<>sage<>2016/02/03(水) 21:55:02.52 ID:???.net<> >>749
感謝感激雨霰 <>
nobodyさん<>sage<>2016/02/11(木) 21:02:04.75 ID:???.net<> んちゃ <>
nobodyさん<>hage<>2016/02/20(土) 19:09:16.27 ID:???.net<> ビューからモデルの関数呼び出す方法ある?
2系です <>
nobodyさん<>sage<>2016/02/20(土) 20:33:58.15 ID:???.net<> >>752
class init で new する。
ググって。 <>
nobodyさん<>hage<>2016/02/20(土) 20:45:45.95 ID:???.net<> あーそうなるのか、コントローラとビューで同じ事を実質2度やるのか
避けた方が良さそうやな <>
nobodyさん<>sage<>2016/02/21(日) 07:06:54.47 ID:???.net<> >>754
同じクラスなら作成済みのインスタンスが渡されるよ <>
nobodyさん<>sage<>2016/02/21(日) 11:05:37.53 ID:???.net<> さて、そろそろ次のプロジェクトは3で行くか別のFWにするか決めねばならぬ <>
nobodyさん<>sage<>2016/02/21(日) 12:21:04.58 ID:???.net<> >>756
俺は次は.net mvcで検討中だ <>
nobodyさん<>sage<>2016/02/21(日) 23:56:16.79 ID:???.net<> .new mvcはado entityと組み合わせえると開発しやすい <>
nobodyさん<>sage<>2016/02/22(月) 11:31:28.31 ID:???.net<> CakePHP3系について脆弱性の報告をしました。修正版が日本時間の 2016/02/22 にリリースされています。
http://bakery.cakephp.org/2016/02/21/cakephp_3016_3111_323_released.html
脆弱性の分類としては、XSS(クロスサイトスクリプティング)に該当するのではないかと思います。
3系で作成したサイトをインターネット上に公開している場合は必ず更新を行ってください。
更新を怠った場合、皆さまのサイトがフィッシング詐欺に使われてしまう可能性があります。
また、Google 等の検索エンジンからウィルスに感染しているサイトと見做され、皆さまのサイトが索引から削除されてしまうかもしれません。
なお、2系に関しては影響を受けません。 <>
nobodyさん<>sage<>2016/02/22(月) 13:56:58.53 ID:???.net<> ということで、当分は2系を使うか <>
nobodyさん<>sage<>2016/02/24(水) 17:41:38.84 ID:???.net<> .
.
板違い(?)の上に、話をさえぎってしまいゴメンナサイ!(*_ _)人
でも、この板のユーザーさんにも有意義な告知かと思うのでカキコませてください。
★ 謝礼は十分いたします ★ アメブロなどのサイト制作ができる方!!
アメブロなどを使用してのサイト制作のできる方を早急に求めています!
私はリケジョやPC女子からはほど遠く、サイト作成にはまったく疎いのでとても不自由しています…(> <;)
そこで私に代わりサイトを作成してくださる方を求めてこの場をお借りしました。
■サイトの内容…
アダルト系、違法性、その他公序良俗に反するものではありませんのでご安心ください。
■サイト制作の仕様ベース…
アメーバブログで十分です。願わくばwordpressなどのブログ形式のサイトを希望します。
それに準ずるもので使い慣れたものがあれば別のものでも構いません。
■条件はありません…
技術さえお持ちでしたら、学歴・職歴等は一切問いません。
フリーター、ニート、高齢ニート、コミュニケーション障害をお持ちの方、引きこもりの方、中年失業者、長期無職等、歓迎!
■作業形態…
作業は在宅でやって頂くことになりますので、時間の指定は一切ありません。別のお仕事の傍らに…でもOKです。
■詳細をお知りになりたい方は…
下記メールアドレスまでご連絡ください。詳しく書いた返信文を差し上げます。
※真剣な告知です。冷やかしはご遠慮ください。
井 上
inoue1952w★gmail.com
迷惑メール対策のため@部分を★にしてあります。
実際に送信する際には★を@マークに変えてください。
.
. <>
nobodyさん<>sage<>2016/02/29(月) 17:32:06.68 ID:???.net<> PHPのくだらない質問スレも無くなったし、この板自体が下火になってしまったね
みんなWebプログラミングしなくなったのかな・・・ <>
nobodyさん<>sage<>2016/03/02(水) 19:34:27.35 ID:???.net<> cake3なんだけどbakeで作ったページだと勝手にエラーチェックをしてくれちゃってうざい
メアドの形式チェックってどこでやってんのこれ?
required外してもメアドだけは何かチェックが走っちゃう <>
nobodyさん<>sage<>2016/03/02(水) 23:05:25.45 ID:???.net<> サーバ環境の引越しとかを考慮するとオレオレFWの方が良い気がするんだけど
cakePHPを使った方が良いのかな? <>
nobodyさん<>sage<>2016/03/02(水) 23:44:01.82 ID:???.net<> >>764
オレオレが優れていると考える訳を知りたい <>
nobodyさん<>sage<>2016/03/03(木) 11:04:57.70 ID:???.net<> >>764
絶対cakephpのがいい。 <>
nobodyさん<>sage<>2016/03/03(木) 12:39:12.43 ID:???.net<> Cakeより良いフレームワークいろいろあるから使ってみたいんだけど
過去の仕事の蓄積から、絶対Cakeで作った方がコスト安いので、毎回嫌々使う羽目になる <>
nobodyさん<>sage<>2016/03/03(木) 14:23:08.90 ID:???.net<> >>767
参考にphpでcakeより良いのがあれば教えてください。私はサポート期間重視で考えてます。 <>
nobodyさん<>sage<>2016/03/03(木) 19:20:16.50 ID:???.net<> だったらCakeじゃないの <>
nobodyさん<>sage<>2016/03/03(木) 21:16:56.38 ID:???.net<> >>763 もう解決済みかもしれないけれど。
サーバー側のチェックを外したいなら、TableクラスのvalidationDefault()メソッド中の$validator->email()がやっています。
あるいは、ブラウザによってはクライアント側でチェックが走るのかも?
フィールド名がemailだとinputのtypeも勝手にemailになるので、それを外したいということだったら、
$this->Form->input('email', ['type'=>'text']);
みたいに指定するとチェックされなくなれるかもしれません。 <>
nobodyさん<>sage<>2016/03/04(金) 14:31:32.75 ID:???.net<> >>764-765
Cakeの命名規則&仕様っぽいオレオレ作ったよ。
findとかsaveとか使えるけど、完全にMVCじゃなくてnewしてモデル読むやつ。
だから、小規模案件だと使い勝手が良い。必要なファイルだけ使用すればいいだけだし。
CakeだとコンソールとかACLとか余計なものもくっついてくるからね。 <>
nobodyさん<>sage<>2016/03/05(土) 20:12:32.01 ID:???.net<> >>771
そんなオレオレがサーバ移行で優位な理由を知りたい <>
nobodyさん<>sage<>2016/03/06(日) 19:09:45.34 ID:???.net<> >>772
俺が作ったものだから勉強しないで済む <>
nobodyさん<>sage<>2016/03/06(日) 23:15:14.15 ID:???.net<> >>772
サーバ移行というか、PHP5.3→5.4の変更時も簡単だったよ。
Cakeで言うとObjectクラスを変更するだけだったし。
Cakeの場合、PHPのバージョンを変更するなら、Cake自体を変更になるし。
(1.3から2とかだいぶ変わったしな <>
nobodyさん<>sage<>2016/03/06(日) 23:32:24.29 ID:???.net<> > Cakeの場合、PHPのバージョンを変更するなら、Cake自体を変更になるし。
? <>
nobodyさん<>sage<>2016/03/07(月) 07:10:28.71 ID:???.net<> Cakeの場合、PHPのバージョンを変更するなら、Cake自体の変更が必要って意味かと <>
nobodyさん<>sage<>2016/03/07(月) 08:39:06.62 ID:???.net<> だからなんでそうなるんだよ <>
nobodyさん<>sage<>2016/03/07(月) 10:25:39.22 ID:???.net<> その独自フレームワーク、メジャーアップデートあるのか? <>
nobodyさん<>sage<>2016/03/07(月) 13:39:00.33 ID:???.net<> オレオレだから配布するわけじゃないだろうし、
メジャーアップデートってなんだよw <>
nobodyさん<>sage<>2016/03/07(月) 13:41:27.90 ID:???.net<> >>777
例えばPHPのバージョンを5.4に上げたら、1.3とか2でエラー出るよ <>
nobodyさん<>sage<>2016/03/07(月) 19:03:17.18 ID:???.net<> 1.3は知らんけど2ではエラーなんて出なかったよ <>
nobodyさん<>sage<>2016/03/08(火) 14:24:40.78 ID:???.net<> 出るよ。ググったら普通に出てるってブログ記事があるよ <>
nobodyさん<>sage<>2016/03/08(火) 19:07:49.98 ID:???.net<> オレオレに構っても意味ない <>
nobodyさん<>sage<>2016/03/09(水) 07:56:13.50 ID:???.net<> そりゃ出る人も出ない人もいるけど
互換性で言えば出ないとは言い切れない
ので出ることもあるとしか言えない <>
nobodyさん<>sage<>2016/03/09(水) 08:57:08.56 ID:???.net<> 田宮さんかよ <>
nobodyさん<>sage<>2016/03/12(土) 13:33:41.85 ID:???.net<> CakePHPをまともにしたようなフレームワークないかな <>
nobodyさん<>sage<>2016/03/12(土) 14:47:32.01 ID:???.net<> ”まとも”ってどういう意味で? <>
nobodyさん<>sage<>2016/03/12(土) 14:58:49.08 ID:???.net<> 今時必要な機能がだいたい入っているという意味 <>
nobodyさん<>sage<>2016/03/12(土) 15:10:32.94 ID:???.net<> なら知名度のあるフレームワークは
全てまともだと言えよう。 <>
nobodyさん<>sage<>2016/03/12(土) 15:10:50.93 ID:???.net<> もちろんCakePHPも含めて <>
nobodyさん<>sage<>2016/03/12(土) 15:12:24.74 ID:???.net<> Cakeは機能が足りない。鬼のようにプラグインを足す羽目になり不便 <>
nobodyさん<>sage<>2016/03/12(土) 16:58:48.99 ID:???.net<> >>791
他の言語含めて、そんなfwがあったら教えて欲しい <>
nobodyさん<>sage<>2016/03/12(土) 18:32:00.55 ID:???.net<> >>791
逆に俺には詰め込みすぎに思えるが <>
nobodyさん<>sage<>2016/03/12(土) 19:51:08.91 ID:???.net<> Cakeで十分ってどんだけ機能少ないサイトだよ
個人運営のしょぼいサイトか?
商業用作ってるかどうかが意見の分かれ目なのかな <>
nobodyさん<>sage<>2016/03/12(土) 20:31:38.44 ID:???.net<> >>794
fwの機能としては充分てことだろ。
機能が必要なサイトなら、そのサイトに適当な機能をあちこちから選んでつければ良いだけ。
詰め込みすぎて自由度がなくなったり、学習コストが高くなるくらいなら、
今のcakeくらいでちょうど良い。 <>
nobodyさん<>sage<>2016/03/12(土) 20:42:14.82 ID:???.net<> いやどんなサイトにでも大体必要な機能ってあるやん、そのくらいはFWに入っていて欲しい
別に自由度なくなったり学習コスト上がったりしないだろ <>
nobodyさん<>sage<>2016/03/13(日) 07:59:08.23 ID:???.net<> どんなサイトにでも大体必要な機能で
Cakeに無いのって例えば何なの? <>
nobodyさん<>sage<>2016/03/13(日) 09:37:33.07 ID:???.net<> 自分で一つも思い付かないの?
本当にCake使ってるの? <>
nobodyさん<>sage<>2016/03/13(日) 10:25:59.14 ID:???.net<> 俺はSearchとDebugプラグインしか追加してないや。
他に何入れてるの? <>
nobodyさん<>sage<>2016/03/13(日) 11:57:36.28 ID:???.net<> 非公開(公開終了?)とか自作とか知り合い作とかおすすめできないのとかあるから大体で書くと
DebugKit
Minify
Blowfishで暗号化するやつ
CakeResque
Opauth
BoostCake
TwigView
TwigBake
メンテ中表示にするやつ
時間表示を○分前とかにするやつ
ユーザーエージェント判定するやつ
PayPal支払い
ドラッグドロップでアップロードするやつ
captchaするやつ
Googleマップ簡単に入れるやつ
NGワード判定
QRコード生成
CSV読み書き
PDF生成
タグ機能
httpとhttpsの出し分け処理するやつ
ぱっと思い付いたのがこのくらい、多分他にもあるがこの辺は仕事で請け負う規模のサービスだと大体毎回使うから
最初から入ってるか、定番のものがあるとありがたいといつも思ってる <>
nobodyさん<>sage<>2016/03/13(日) 13:03:53.97 ID:???.net<> >>798
使ってないから、ない機能が思いつかないんっだろうねw
ない機能はたくさんある。使ってるからわかる!
言わないけどな! <>
nobodyさん<>sage<>2016/03/13(日) 13:05:09.06 ID:???.net<> >>800
それらが入っているCakePHP以外の
フレームワークって何があるの?
マジレスするとフレームワークに入れるべきではない機能ばっかりだ。
(だから他のフレームワークにも入っていない) <>
nobodyさん<>sage<>2016/03/13(日) 13:14:49.45 ID:???.net<> どういう理由で入れるべきではないと主張してるのかは知らんが
少なくとも使用者の俺の立場からは、入っててくれた方がうれしいよ <>
nobodyさん<>sage<>2016/03/13(日) 13:56:27.62 ID:???.net<> いや、それって単にお前が自分で作れないだけだろ?
ドラえもんの四次元ポケットじゃないんだから、
無いのは自分で作ればいいだけじゃん。
のび太よろしく、なんでも道具に頼るのは良くない。 <>
nobodyさん<>sage<>2016/03/13(日) 13:58:25.46 ID:???.net<> 作れるか作れないかで言ったらフレームワークだって作れるじゃん
そんな車輪の再発明みたいな無駄な時間使いたくないからFW使ってるんだから
なんでも最初からあった方がいいに決まってる、自分の労力はもっと上の方の機能に使いたいじゃん
そんな基本もわからないほどレベル低いの? <>
nobodyさん<>sage<>2016/03/13(日) 14:57:49.93 ID:???.net<> >>805
fw開発者自身がそう思ってる。だから実装されない。 <>
nobodyさん<>sage<>2016/03/13(日) 15:22:34.15 ID:???.net<> >>803
> どういう理由で入れるべきではないと主張してるのかは知らんが
そりゃフレームワークなんだから、
「枠組み」の部分はフレームワークに入れる必要があるが
枠組みの中の部分はライブラリを使えばいいんだよ。 <>
nobodyさん<>sage<>2016/03/13(日) 15:33:07.35 ID:???.net<> >>805
極端すぎ。1か0で考えてるのかよ。
少なくともFWに必要な基本的な機能はあるんだから、
追加分は自分で作れって話だろ。どんだけレベル低いんだ <>
nobodyさん<>sage<>2016/03/13(日) 21:57:28.50 ID:???.net<> Eclipse 3.7 Indigo の時にはエディタを2つ開いて
左右に並べる事が出来ていました。
しかし、Eclipse 4.5のMarsでリモートシステムで接続し
ファイル編集をしようとしたところ、右クリック > 新規エディタ
とする事が出来なくなってしまいました。
Eclipseの最新バージョン(Mars)では出来ないのが仕様となってしまったのでしょうか? <>
nobodyさん<>sage<>2016/03/13(日) 22:54:11.72 ID:???.net<> >>800
ライブラリやプラグインじゃダメなの? <>
nobodyさん<>sage<>2016/03/14(月) 11:58:47.08 ID:???.net<> >>809
について誰か教えてやれよ <>
nobodyさん<>sage<>2016/03/14(月) 12:00:33.07 ID:???.net<> 教えてくれよ、の間違いだろ? <>
nobodyさん<>sage<>2016/03/14(月) 18:06:11.28 ID:???.net<> ↑
分からんかったらすっこんでろ。アキバ系のキモオタク。 <>
nobodyさん<>sage<>2016/03/14(月) 22:20:49.75 ID:???.net<> 今日のSecurityFixは結構条件が限られるかな。 <>
nobodyさん<>sage<>2016/03/26(土) 09:58:30.36 ID:???.net<> このスレ下がりすぎワロタ
もう誰も使っていないのか
スレが落ちたらさらに笑う <>
nobodyさん<>sage<>2016/03/26(土) 10:43:22.70 ID:???.net<> >>815
フレームワークとしてある意味充分で枯れてるからね。
書き込みの勢いだけで判断する愚かな人はいないよ。 <>
nobodyさん<>sage<>2016/03/26(土) 11:53:22.32 ID:???.net<> 今CakePHPで作るなら2と3どっちが良いの? <>
nobodyさん<>sage<>2016/03/26(土) 12:00:16.12 ID:???.net<> どうして皆はcakeなの?
railsじゃダメなの? <>
nobodyさん<>sage<>2016/03/26(土) 12:20:37.42 ID:???.net<> どっちでもええよ <>
nobodyさん<>sage<>2016/03/26(土) 13:37:49.95 ID:???.net<> >>818
なんでrailsのがいいんだ?
レンタルサーバーじゃ動かんし、覚えるの面倒だろ。 <>
nobodyさん<><>2016/03/26(土) 14:16:19.21 ID:KniYU/rm.net<> 2の方が安定してていいのかな?
3のメリットってなんだろう <>
nobodyさん<>sage<>2016/03/26(土) 17:35:17.90 ID:???.net<> >>820
VPSつかえよ
ODBC接続も可能やぞ? <>
nobodyさん<>sage<>2016/03/26(土) 18:26:49.80 ID:???.net<> >>822
vpsも使ってるけど、管理が面倒だから、普通のレンタルサーバーでも使いたいんだわ。 <>
nobodyさん<>sage<>2016/03/27(日) 00:10:54.93 ID:???.net<> >>822
VPS使えってことは、サーバ管理のリスクも負えってことだな <>
nobodyさん<>sage<>2016/03/27(日) 14:32:05.67 ID:???.net<> モデルが1000個とかになるとどうなるの? <>
nobodyさん<>sage<>2016/03/27(日) 18:29:25.38 ID:???.net<> >>825
設計を見つめ直せ <>
nobodyさん<>sage<>2016/03/27(日) 19:45:38.96 ID:???.net<> モデルの中から別のモデルを呼び出すのも設計が悪い? <>
nobodyさん<>sage<>2016/03/28(月) 00:11:51.08 ID:???.net<> 悪すぎ。スパゲティコードと一緒 <>
nobodyさん<>sage<>2016/03/28(月) 01:05:49.47 ID:???.net<> >>828
そうかもしれんが、そっちのが早くコーディングできる場合も多いよ。 <>
nobodyさん<>sage<>2016/03/28(月) 04:15:00.41 ID:???.net<> 自分で納得してるなら人に聞くなよ <>
nobodyさん<>sage<>2016/03/28(月) 06:57:30.40 ID:???.net<> おいそいつは俺じゃねーよ <>
nobodyさん<>sage<>2016/03/28(月) 11:25:44.48 ID:???.net<> 結局コントローラに全部書くのが一番早いという結論に一周回って達した <>
nobodyさん<>sage<>2016/03/30(水) 19:15:43.87 ID:???.net<> ビューにはあまり書きたくないよな
<head>〜</head>の内容を書くことが結構あるけど。 <>
nobodyさん<><>2016/04/13(水) 11:03:40.18 ID:eWmkLfyA.net<> 急にPaginatorが機能しなくなったんだけど、何が原因?
それと、急にInternal Error Has Occurred.が出るんだけど、何が原因?
ページネータなんて、自分で作った方が高機能なもの作れるんじゃね?
なんでヘルパーで実現しなければならないの?
明らかに開発効率下がってるよ。 <>
nobodyさん<><>2016/04/13(水) 11:10:28.42 ID:eWmkLfyA.net<> ページネータうざいね。
バグは直ったけど、ページネータ以外のデータ処理でキーが必要なのにnullとかのときの例外メッセージが書けない。
これって、仕様なんだろうね。 <>
nobodyさん<><>2016/04/13(水) 11:22:30.55 ID:eWmkLfyA.net<> PHP7がリリースされたけど、
PHP7にフレームワークってどうやって動かすの?
まだ、PHP7対応のフレームワークって無いわけか?
早く高速のPHP7でフレームワークに対応してほしい
もうひとつ加えれば、なるべく分派してほしくない。よりスタンダードチックなフレームワークを作ってほしい。
軽いやつ。 <>
nobodyさん<>sage<>2016/04/13(水) 13:05:46.92 ID:???.net<> >>834-835
1行ずつデバッグできないの?
それか、あちこちにprint文をばらまいて、変数の内容を見る <>
nobodyさん<>sage<>2016/04/13(水) 23:40:56.42 ID:???.net<> Cakeのページネータの実装はちょっとなあ……
他のライブラリを使う手もある
http://harikt.com/blog/2016/01/13/cakephp-orm-and-illuminate-pagination/ <>
nobodyさん<>sage<>2016/04/13(水) 23:46:26.60 ID:???.net<> メジャーどころのFWの最新版はだいたいPHP7対応してるでしょ
Cakeも確か2.7か2.8あたりで対応したんじゃなかったっけ?
予約語の関係でStringクラスが使えなくなるのがメインの障害だったとか <>
nobodyさん<>sage<>2016/04/15(金) 02:33:50.76 ID:???.net<> >>838
他のライブラリでページネーションのような仕組みを付けられるの?
もしあるなら教えて。使い勝手見てみる。 <>
nobodyさん<>sage<>2016/04/15(金) 11:19:07.22 ID:???.net<> リンク先はCakeのORMとLaravel標準のページネータの組み合わせだな <>
nobodyさん<>sage<>2016/04/15(金) 14:53:56.31 ID:???.net<> ページネータの実装の問題点をこのスレでよいので列挙していただけると嬉しいです。順次修正したいと思います。counter()とかnumbers()が直感的じゃないのでしょうか。 <>
nobodyさん<><>2016/04/24(日) 11:05:40.86 ID:rcoMW0Ll.net<> >>836
CakePHPのgithubに対応状況が色々書かれてたと思いますよ <>
nobodyさん<>sage<>2016/04/25(月) 22:55:23.97 ID:???.net<> cakephpのフォーラム無くなったの? <>
nobodyさん<>sage<>2016/04/26(火) 22:53:20.56 ID:???.net<> >>844
日本語サイト無くなってるね。あれならむしろ無い方がいい。 <>
nobodyさん<>sage<>2016/04/26(火) 23:44:10.04 ID:???.net<> 今から勉強するならCakePHPの3系が良いですか?2系ですか?
まだあんまり3系の仕事ない感じですか? <>
nobodyさん<>sage<>2016/04/27(水) 16:39:20.17 ID:???.net<> フレームワーク指定の仕事って、もうそんな無い気がする <>
nobodyさん<>sage<>2016/04/28(木) 15:11:08.05 ID:???.net<> まだ3は早い気がする <>
nobodyさん<>sage<>2016/05/30(月) 19:13:29.78 ID:???.net<> 公式が大変なことに <>
nobodyさん<><>2016/06/04(土) 03:15:19.86 ID:MZ0krgcc.net<> Cake2系で、Google Cloud SQLにSSL経由で接続したいのだけれど、
どうも証明書のCNチェックでNGになっているみたい。
回避する方法はあるんでしょうか? <>
nobodyさん<>sage<>2016/06/12(日) 11:36:34.44 ID:???.net<> cakephp2と3の速度の比較とかどんなもん? <>
nobodyさん<>sage<>2016/06/15(水) 12:23:43.13 ID:???.net<> slackにCakePHP公式の日本語チャンネルができた模様
http://qiita.com/chinpei215/items/3c116171c5308365c314 <>
nobodyさん<><>2016/07/12(火) 13:13:54.39 ID:bO4py1IV.net<> ●起業したいプログラマに1000万円まで投資します●
アイディアと情熱のある方のみ、お願いします。
http://good-hill.xsrv.jp/?id=77121
『 グッドエンジェル 』
投資家と起業家のマッチングサービス
IT投資家からベンチャーキャピタルまで参加されています。 <>
nobodyさん<>sage<>2016/07/19(火) 21:25:46.72 ID:???.net<> httproxy、cakeは問題ないかな? <>
nobodyさん<>sage<>2016/07/21(木) 18:10:39.82 ID:???.net<> >>854
あれって自分の書いたコードの中に
'HTTP_PROXY'使ってなければセーフなの? <>
nobodyさん<>sage<>2016/07/22(金) 00:50:47.36 ID:???.net<> ていうかcgi動作じゃなきゃいいんでしょ? <>
nobodyさん<>sage<>2016/07/22(金) 01:24:19.83 ID:???.net<> >>856
モジュールも対象 <>
nobodyさん<>sage<>2016/07/22(金) 01:27:32.09 ID:???.net<> ありゃマジで…thx
明日朝イチで調べなきゃ <>
nobodyさん<>sage<>2016/07/22(金) 01:52:03.59 ID:???.net<> ちなみに「proxy」だけが問題になってるけど、「host」でも上書きできちゃうんだよな。
環境変数でHTTP_から始まるものを使っていたら、一通りチェックしたほうがいい。 <>
nobodyさん<><>2016/07/29(金) 12:59:09.98 ID:UvtMyrK1.net<> 久々にサイト覗いたら、デザインとかアイコンと変わっててびっくりした。
3.2から変わった? <>
nobodyさん<>sage<>2016/08/17(水) 13:08:40.97 ID:???.net<> cakePHP3.3リリース。 <>
nobodyさん<>sage<>2016/08/17(水) 13:16:27.17 ID:???.net<> 2系のサポートが末長く続きますように <>
nobodyさん<>sage<>2016/08/17(水) 21:20:08.42 ID:???.net<> 4はまだか <>
nobodyさん<>sage<>2016/08/18(木) 08:17:19.93 ID:???.net<> 3はどのくらい使われてんだろうな? <>
nobodyさん<><>2016/08/21(日) 01:50:18.05 ID:NlLXLZki.net<> http://ritsuan.com/job/1597/
仕事概略 【東京都 23区西部】IT分野/クラウドサービス開発
言語:PHP
雇用形態 正社員
1つの目安といたしまして、今案件は350,000円〜800,000円程の月収を予想しております。 <>
nobodyさん<>sage<>2016/09/03(土) 13:16:09.71 ID:???.net<> 使ってる人いるの? <>
nobodyさん<>sage<>2016/09/03(土) 20:25:47.79 ID:???.net<> ろくな解説本が無い上にコロコロバージョンが変わるからな <>
nobodyさん<>sage<>2016/09/03(土) 20:44:47.30 ID:???.net<> 使ってますよ。railsよりは変化が少ないのが良いです。 <>
nobodyさん<>sage<>2016/09/04(日) 10:13:46.09 ID:???.net<> 3の解説本って出てるの? <>
nobodyさん<>sage<>2016/09/04(日) 13:00:18.19 ID:???.net<> ずっと2使ってる <>
nobodyさん<><>2016/09/16(金) 00:47:25.45 ID:7L9wyAQq.net<> なにかの異常の拍子(メモリ超過/高負荷時のプロセスの強制終了とか)で、
変数の全データがクライアントに出力されてしまう、っていう理由は何か考えられますか?
CakePHP2系での話なんですが、サーバトラブルで負荷が上がってしまった際にApacheを再起動かけると、
database.phpの内容含めたすべての変数内のデータがクライアントに返ってしまったんです。
再現性もなく、CakePHPの問題なのかPHPの問題なのか切り分けも難しく、ちょっとご意見いただければと思います。 <>
nobodyさん<><>2016/09/16(金) 00:52:22.19 ID:7L9wyAQq.net<> すみません、補足です。
数回事象が発生して、いずれも契機になったのはApacheプロセスの強制終了のタイミングでした。
ただどのような状況でプロセスを強制終了すれば事象が発生するか、という点では再現性が掴めてません。 <>
nobodyさん<>sage<>2016/09/17(土) 14:01:05.77 ID:???.net<> Debugkitじゃない?
本番環境ならオフにしてる? <>
870<><>2016/09/17(土) 14:16:09.40 ID:CiFBu07L.net<> 本番ではcore.phpでdebug値は0にしています。
debug値によるPluginの動的なload制御は行っていないのですが、ちょっと試してみます。
試すといっても再現できないので待つしかないのですが…。 <>
nobodyさん<>sage<>2016/09/18(日) 00:28:02.38 ID:???.net<> この過疎っぷりは酷いな、、
日本では一番使われてるフレームワークらしいぜCakeって <>
nobodyさん<>sage<>2016/09/18(日) 02:28:00.37 ID:???.net<> 2chが過疎ってるだけやろ
もう雑談系の板ぐらいしか機能してない <>
nobodyさん<>sage<>2016/09/18(日) 17:21:37.59 ID:???.net<> フレームワーク初心者です。
windows7でcakephp3を導入したいと思っています。
composerを導入しバージョンの確認までできています。
まずはxamppでcakephp3をインストールをしようと思い、
c:\xampp\htdocs>composer create-project --prefer-dist cakephp/app cakephp
と入力すると、
[ErrorException]
file_get_contents(C:\Users\Justin\Projects\knap-build\var\knapsack\software
\x86-windows\openssl\1.0.11\ssl): failed to open stream: Permission denied
上記のようにSSLのパーミッションエラーが発生してしまい正常にインストールできませんでした。
ぐぐっても分からなかったので、何か解決方法があればご教授お願いしますm(_ _)m <>
nobodyさん<>sage<>2016/09/18(日) 21:37:57.00 ID:???.net<> composerってトラブル多いよね。なるべく使わないようにしてる <>
nobodyさん<>sage<>2016/09/18(日) 23:47:43.62 ID:???.net<> >>878
でも時代の流れはcomposerだからな。
俺もハッキリ言っていらんと思うが。
いつでも最新に更新できるのがメリットなんだろうけどバグが怖くて更新しないよな。 <>
nobodyさん<>sage<>2016/09/21(水) 02:18:29.93 ID:???.net<> 初めてフレームワーク触ったんやが、
bake楽しすぎwwwwwwww <>
nobodyさん<>sage<>2016/09/21(水) 05:33:06.69 ID:???.net<> 良かったね <>
nobodyさん<>sage<>2016/09/21(水) 10:06:40.27 ID:???.net<> Silex 2.0、プロダクトに導入を断念 <>
nobodyさん<>sage<>2016/09/21(水) 10:51:17.91 ID:???.net<> 2のサポートはいつまでやってくれるのかね
3は大きく違ってて互換性がない→移行が不可能なのに旧サポート切られたら、やってられないよね
OSやPHPはメジャーバージョン上げても少しの手直しで動くからいいんだけど <>
nobodyさん<>sage<>2016/09/22(木) 23:52:34.09 ID:???.net<> 通信エラーの原因
実は95%がLANケーブルの刺し忘れだったことが判明 <>
nobodyさん<>sage<>2016/09/26(月) 18:34:37.05 ID:???.net<> 公式みたらもう3基準になってるけど、みんなは3に移行してるの?
2の開発もまだ続いてるし、2の方が慣れてるから使いやすいんだが <>
nobodyさん<>sage<>2016/09/26(月) 21:13:23.61 ID:???.net<> >>885
3に移行してるね。
使いやすいからという理由で古いの使う癖は
プログラマーにとって致命傷。 <>
nobodyさん<>sage<>2016/09/26(月) 21:55:20.81 ID:???.net<> >>886
でも情報少ないから勉強難しくね?
それとも公式見ながら試し試しでやってるの? <>
nobodyさん<>sage<>2016/09/26(月) 23:57:21.41 ID:???.net<> >>887
公式とソースを追いながら使ってる。
パスワードハッシュの互換性も2と保てるから、
少しずつでも使ってみるのが良いよ。 <>
nobodyさん<>sage<>2016/09/27(火) 01:24:34.29 ID:???.net<> こなれた頃に非推奨だらけになる <>
nobodyさん<>sage<>2016/09/27(火) 10:27:55.79 ID:???.net<> 2だ3だ言ってるのはSymfonyのこと?
>>889
> こなれた頃に非推奨だらけになる
ありがちw
deprecatedてんこもりの次バージョンが出たあたりから、やっとその前のバージョンがこなれた感じになる <>
nobodyさん<>sage<>2016/10/04(火) 14:26:09.35 ID:???.net<> 使おうと思ったときには忘れてたり使い方変わってたりで、クエリ書けば5分で終わるものを毎回一時間かけて調べるハメになるんだよなぁ <>
nobodyさん<>sage<>2016/10/18(火) 17:59:10.48 ID:???.net<> 共通の設定をDBで管理しています。(仮にModel名Configとします)
この設定を各モデルのafterFindでClassRegistryから読み込んでいるのですが、
複数モデルを実行する場合、その都度、設定用のモデルも実行することになり、
DBのselect回数が増えます。何か良い方法はないでしょうか?(2系でお願いします <>
nobodyさん<>sage<>2016/10/20(木) 12:35:48.19 ID:???.net<> もうここには人いませんか? <>
nobodyさん<>sage<>2016/10/20(木) 14:26:35.30 ID:???.net<> >>893
います <>
nobodyさん<>sage<>2016/10/20(木) 14:26:56.28 ID:???.net<> >>892
Cache使えば? <>
nobodyさん<>sage<>2016/10/20(木) 16:55:48.35 ID:???.net<> >>895
Modelキャッシュということですか? <>
nobodyさん<>sage<>2016/10/20(木) 16:58:49.96 ID:???.net<> キャッシュならなんでもいいんでない? <>
nobodyさん<>sage<>2016/10/20(木) 20:20:18.11 ID:???.net<> 共通の設定と言うのが何かわからんが、自分ならbeforeFilterでAPC/Redisから読み込む。 <>
nobodyさん<>sage<>2016/10/21(金) 19:15:59.13 ID:???.net<> ちょっと3調べたけど難しいのな。メソッドチェーンというか配列じゃないから戸惑うわ
直感的で専門的にはなったけど、とっつきづらくなった。お前らはもう慣れたの? <>
nobodyさん<>sage<>2016/10/21(金) 20:11:52.16 ID:???.net<> >>899
書き方は慣れじゃない?
3は2よりも速いし、構成がすっきりするから徐々に移行中。 <>
nobodyさん<><>2016/10/23(日) 11:21:27.72 ID:MVhecrGG.net<> キャッシュといえば、appを公開用・管理用で分けてるのですが、
管理用でCache::delete('Model');しても当然ながら開発用の同一キャッシュは消えません。
なので、パス指定してulinkで削除しているのですが、他に良い方法はないでしょうか? <>
nobodyさん<>sage<>2016/10/23(日) 15:38:30.92 ID:???.net<> >>901
俺も直接ファイル削除してるね、 <>
nobodyさん<><>2016/10/23(日) 19:58:04.84 ID:MVhecrGG.net<> やっぱりそれしかないですね。
ググっても事例がないので、直接削除で納得します。
ありがとうございました。 <>
nobodyさん<>sage<>2016/10/25(火) 18:04:30.18 ID:???.net<> プラグインの存在判定って出来ますかね?PHPの関数使うんじゃなくて。
pluginsフォルダを調べて、「プラグインがあれば表示、なければ非表示」って設定を
管理画面に組み込みたいのですが、Cakeの機能にあれば教えてください。 <>
nobodyさん<>sage<>2016/10/25(火) 18:07:58.38 ID:???.net<> >>904
http://api.cakephp.org/2.8/class-CakePlugin.html#_loaded <>
nobodyさん<>sage<>2016/10/25(火) 18:43:02.60 ID:???.net<> >>905
こんな便利機能があったんですね!ありがとうございました <>
nobodyさん<><>2016/10/27(木) 21:54:42.93 ID:ravgyvz0.net<> また管理画面の話で恐縮ですが、
管理アカウントで操作できる機能・画面を制限したい時、どうするのが一般的でしょうか?
ビューを例に取ると、単純に
<?php if ($user['User']['type'] == 'admin'): ?>
<a href="">管理者のみ</a>
<?php else: ?>
<a href="">その他のユーザーがアクセスできる</a>
<?php endif; ?>
みたいな分け方をしたとして、IFだらけになりそうで心配です。
あるいは、AppControllerのbeforeFilterに管理アカウント以外は
見せなくすることもできそうですが、どの作り方が効率的か教えてください。 <>
nobodyさん<>sage<>2016/10/28(金) 02:36:18.34 ID:???.net<> うちはifだらけにしちゃってるな
もっといい方法があれば教えて欲しい、viewを完全に分けちゃう以外で <>
nobodyさん<>sage<>2016/10/28(金) 08:31:53.28 ID:???.net<> >>908
俺もそうだな。 <>
nobodyさん<>sage<>2016/10/29(土) 09:58:27.10 ID:???.net<> エレメントキャッシュでもだいぶ違うんだな
ローカルの開発環境で、JMeter使いながら、
100ユーザーが1分間に1000アクセスするってテストしてみたんだけど、
キャッシュなしの場合はエラー率が30%超えたが、キャッシュ使うとほぼなしだった。
ページ全体のビューキャッシュ出来れば良いんだろうけど
会員制サイトとか難しい場合があるし、
エレメントキャッシュでここまで違いが出るならこっちでも良いな <>
nobodyさん<><>2016/10/30(日) 15:03:05.50 ID:CsXh8rc4.net<> 2系なんだけど、Authで困ったことが起きた。
ユーザーアカウントはログインしていたとする。
管理画面やらphpMyAdminやらで該当ユーザーをDBから削除する
しかし、セッションは残っているので、ユーザー専用ページが閲覧できてしまう。
こういうのってどう対処すればいいの?
$this->Auth->user()する前にDB調べばいいだろうけど、
毎回それするとSQLコストがかかるし・・・ <>
nobodyさん<>sage<>2016/10/30(日) 21:49:14.90 ID:???.net<> >>911
それは思うよね。毎回ログインさせるのもきついし。
ブラックユーザー決めて、そのユーザーIDならマイページにアクセスできない。
って感じにはしてる。
あんまり人数がいないから。 <>
nobodyさん<>sage<>2016/10/30(日) 22:27:22.76 ID:???.net<> >>912
ブラックユーザーか否かを判定するにもDBアクセスが発生するのでは? <>
nobodyさん<>sage<>2016/10/30(日) 23:04:41.97 ID:???.net<> >>913
bootstrap.phpにIDを直接書いてる。 <>
nobodyさん<>sage<>2016/10/31(月) 06:47:52.93 ID:???.net<> >>911
ユーザー消したときにセッションも消せばいいだけでは?
クライアントにセッションが残っていたとしても
サーバーから消せばそのセッションは使えなくなる。 <>
nobodyさん<>sage<>2016/10/31(月) 07:12:22.74 ID:???.net<> だよな
910が何を悩んでいるのかよくわからんかった <>
nobodyさん<>sage<>2016/10/31(月) 08:05:00.66 ID:???.net<> セッションて、ユーザー決めうちで消せるの? <>
nobodyさん<>sage<>2016/10/31(月) 13:09:30.19 ID:???.net<> >>915
どうやって消すんだ?Cakeのtmp、sessionsやDBに保存してるわけじゃないぞ <>
nobodyさん<>sage<>2016/10/31(月) 13:40:50.37 ID:???.net<> >>911
> こういうのってどう対処すればいいの?
> $this->Auth->user()する前にDB調べばいいだろうけど、
> 毎回それするとSQLコストがかかるし・・・
測定した?
実行速度は1ms程度で、なおかつディスクアクセスなし(キャッシュリード)かもよ。 <>
nobodyさん<>sage<>2016/10/31(月) 16:12:30.13 ID:???.net<> >>919
測定とは?
速度を疑問視してるんじゃなくて、セッション残るのを疑問視してるんだが。 <>
nobodyさん<>sage<>2016/10/31(月) 16:14:28.12 ID:???.net<> 疑問視じゃなくて問題視だw
ま、beforeFilterなんかで毎回ユーザーテーブル調べれば良いだけだし、
速度は気にしなくても良いレベルだろうけど、
やっぱり無駄なSQLを実行したくないってのがある。できるだけ減らしたい。 <>
nobodyさん<>sage<>2016/10/31(月) 17:09:37.68 ID:???.net<> >>920
> 速度を疑問視してるんじゃなくて、セッション残るのを疑問視してるんだが。
毎リクエストで当該ユーザーがデータベース上でvalid userかどうかをチェックするようにすると、SQLコストが心配なんでしょ?
それって速度が心配ってことじゃないの?
>921
> やっぱり無駄なSQLを実行したくないってのがある。できるだけ減らしたい。
いやだから測定したのかと。
大抵のリクエストではデータベースなりキャッシュされたデータなりを読むだろうけど、それにvalid user checkが加わるとどれくらい違うのかと。 <>
nobodyさん<>sage<>2016/10/31(月) 17:25:46.68 ID:???.net<> CakePHPって一度認証したら、セッションが残ってる限り認証チェックとか権限チェックとかが行われないのか? <>
nobodyさん<>sage<>2016/10/31(月) 17:31:31.09 ID:???.net<> >>922
君が望むレベルの測定はしてないよ。
jmeterで負荷テストはしてるけど、100人1000アクセス/分でも
ユーザーテーブル読み込むレベルなら大した違いはない。
所詮感情論と言えばそうだが、SQLの実行を減らせるならその方が良いだろ <>
nobodyさん<>sage<>2016/10/31(月) 17:50:49.26 ID:???.net<> CakePHPのことがわかってないだけ <>
nobodyさん<>sage<>2016/10/31(月) 17:54:00.03 ID:???.net<> 1600req/secのサービスやってる奴がこのレベルかよ <>
nobodyさん<>sage<>2016/10/31(月) 17:57:28.54 ID:???.net<> >>910と同一人物だろ
つまり、どしろうと <>
nobodyさん<>sage<>2016/10/31(月) 18:07:01.21 ID:???.net<> JMeter使ってるなら、beforeFilter()でチェックを追加したときにどれくらいになるかすぐにわかるでしょ。
やってみれば? <>
nobodyさん<>sage<>2016/10/31(月) 18:30:39.32 ID:???.net<> >>926
やってないってw
>>927
同一人物だけど、パフォーマンスチューニングしてるんだよ
どしろうと相手に教えてよ
>>928
単にそれしても意味ないよ。ほぼ変わらないし。
それこそ>>910な、どしろうとテストしか出来ないよ。
実際の運用を想定する場合、テーブルに仮データ上限まで入れてやるの? <>
nobodyさん<><>2016/10/31(月) 19:29:40.42 ID:EnwIxw7g.net<> 以下の条件でやってみましたが、不思議な事が起こりました。
・sql_dumpで「(default) 40 queries took 7 ms」という結果になるページにて
・100ユーザーが1分間に1000アクセスするってテスト
・アクセスごとにログ用DBにsave(トランザクション付き)
・ユーザーIDチェックはbeforeFilterに追加して、ログ書き込みの前に実行
・1レコード目と最終レコード目の秒数チェク
■ユーザーIDチェックなし
197秒(964レコード追加)
■ユーザーIDチェックあり(1回目)
179秒(900レコード追加)
■ユーザーIDチェックあり(2回目)
180秒(959レコード追加)
エレメントキャッシュなどを使っていないので、
ページアクセスでエラーが出て、1000レコード追加出来ませんでした。
が、ユーザーIDチェックありの方がなしより時間がかかっています。
(ちなみにusersテーブルには3レコードしかない状態)
ということで、毎ページ・毎アクセス、ユーザーIDをチェックする処理を入れても
SQLコストがかからないという結果になりました。
こういうテスト方法でこの結論で良いのでしょうか?
どしろうとなのでテスト方法がおかしいかもしれません。 <>
nobodyさん<>sage<>2016/10/31(月) 20:07:29.76 ID:???.net<> >>930
sqlのキャッシュが働いてるとかじゃないの? <>
nobodyさん<>sage<>2016/10/31(月) 20:57:16.96 ID:???.net<> セッションをユーザー狙い撃ちで消す方法教えてくれ。
無理なら無理と言ってくれ。 <>
nobodyさん<>sage<>2016/10/31(月) 21:20:36.30 ID:???.net<> >>932
redisセッションなら狙い撃ちできないこともないと思う。
しかし、普通のセッションなら俺はやり方わからんな。 <>
nobodyさん<>sage<>2016/11/01(火) 09:04:41.83 ID:???.net<> 914は適当なこと言ってただけか <>
nobodyさん<>sage<>2016/11/01(火) 09:10:57.48 ID:???.net<> 適当な事言って他人にやらせて自分は何もしないやつだっただけ <>
nobodyさん<>sage<>2016/11/01(火) 09:49:39.35 ID:???.net<> セッションにユーザーのIDを書き込んでおいて、全セッションデータを検索すれば特定のIDだけ消せるんでない? <>
nobodyさん<>sage<>2016/11/01(火) 10:04:17.43 ID:???.net<> >>936
fwの標準機能でできるか聞いてるんだよ。
そんなコストのかかる方法を誰が望んでいるのか。 <>
nobodyさん<>sage<>2016/11/01(火) 14:17:00.39 ID:???.net<> 914と915の華麗な連携プレーに脱帽 <>
nobodyさん<>sage<>2016/11/04(金) 17:54:57.13 ID:???.net<> もう見てないかもしれないけど。
>>937
> fwの標準機能でできるか聞いてるんだよ。
ないですね。
素直に毎回usersテーブルを検索すべし。 <>
nobodyさん<>sage<>2016/11/04(金) 18:36:49.38 ID:???.net<> ACLが難しいんだがお前ら使い方分かる? <>
nobodyさん<>sage<>2016/11/04(金) 21:23:26.91 ID:???.net<> >>940
俺もわからん。
勉強しようと思ったがワケわからん過ぎてギブ。
でも困ったことない。 <>
nobodyさん<>sage<>2016/11/04(金) 21:41:38.12 ID:???.net<> ACLってなに? <>
nobodyさん<>sage<>2016/11/04(金) 22:59:39.65 ID:???.net<> テーマに入れたjsファイルだけがなぜか動かん・・・
CSSは適用されるし、ソースコードからsrcを直接叩いても表示されるのに <>
nobodyさん<>sage<>2016/11/04(金) 23:36:42.82 ID:???.net<> 942だけど、原因分かった。
圧縮されたファイル(jquery.min.jsとか)だと駄目みたいだ・・・
こんなのググっても出てこねーよ。みんな普段は圧縮ファイル使わないのかよ <>
nobodyさん<>sage<>2016/11/04(金) 23:44:14.06 ID:???.net<> ACLは、制御をかけたいスコープが違うから使ってないなあ。
URL単位に制御したいんでなく、データ単位に制御したいから、
独自で実装してる。 <>
nobodyさん<>sage<>2016/11/04(金) 23:57:52.36 ID:???.net<> >>939
やっぱり標準では無いんですね。
ちなみに私はRedisキャッシュ付のUserテーブルを毎回検索する方法で実装してます。 <>
nobodyさん<>sage<>2016/11/05(土) 00:21:55.12 ID:???.net<> >>945
cookbooにあるけど、isAuthorized()使うのでなんとかしてる。
シンプルだけどそこそこ汎用性あるし、なによりソースが分かりやすい <>
nobodyさん<>sage<>2016/11/05(土) 03:04:53.87 ID:???.net<> クックブー <>
nobodyさん<><>2016/11/05(土) 22:13:30.61 ID:fokCG3DU.net<> cake内でテーブル作成する方法って無いですかね?
Scheme使ってconsoleから作成する方法はありますが、
Web上で実行させる方法がありません。 <>
nobodyさん<>sage<>2016/11/07(月) 09:15:54.15 ID:???.net<> >>949
Baserのインストーラーでも覗いてみたら? <>
nobodyさん<>sage<>2016/11/07(月) 10:31:35.96 ID:???.net<> >>950
覗いてみました。
複雑ではあるものの、つきつめるとSchemeの記述を分解して
CREATE TABLEしてるだけなんですね。
これなら普通にデータソースからquery実行するのと変わらないので、
Scheme使って作成するよりそうします。 <>
nobodyさん<><>2016/11/13(日) 00:41:37.69 ID:QwwJJl5g.net<> 命名規則とテーブル設計について相談です。
User(ユーザー)モデルとSpecial(特集)モデルがあるとします。
「特集毎に、条件に一致するユーザーを紹介したい」とします。
特集+ユーザー検索条件=SpecialUser
というモデルを作れば良いんですかね?
それとも、特集モデルの中にユーザー検索条件まで入れるべきですかね?
(1つの特集に1つの検索条件なので、1対1だと思います)
仮に後者にした場合、カラム名は
user_name、user_address
というようにuserを付けるべきでしょうか?
どういう構成にするか迷っているので、アドバイスいただけたら助かります。 <>
nobodyさん<>sage<>2016/11/14(月) 17:54:16.98 ID:???.net<> >>952
良くわからないけど、「あるユーザーに関する特集」なら、「特集」の属性にユーザーID等を持てばいいのでは? <>
nobodyさん<>sage<>2016/11/15(火) 08:52:55.45 ID:???.net<> 触り始めて2週間程の者です。
初歩的なことかもしれませんが質問させてください。
controller内のメソッド使用するにはsetActionを使用するか内部関数として_アクション名とする方法がありますよね。
どちらの方を使ったほうが良いのでしょうか。
actionは他のcontrollerからは呼ばない想定です。 <>
nobodyさん<>sage<>2016/11/15(火) 11:49:50.65 ID:???.net<> >>954
まずはモデルに処理をかけないか考える。
どうしても無理なら _action名 で。 <>
nobodyさん<><>2016/11/16(水) 10:33:08.41 ID:ofNi3+j7.net<> キャッシュの使い方について悩んでいるので教えてください。
CookbookのCache::writeには以下のようなサンプルコードがあります。
if (($posts = Cache::read('posts')) === false) {
$posts = $this->Post->find('all');
Cache::write('posts', $posts);
}
1ページ1回のPostを実行するなら良いのですが、
1ページに複数回のPostを実行する場合、上書きされます。なので、
Cache::write('posts_header', $posts);
Cache::write('posts_footer', $posts);
のようにして、実行毎に任意の名前をつければ良いのでしょうが、
$posts = $this->Post->find('all', array(
'conditions' => array('post_group_id' => $groupId),
));
のように、検索条件がある場合のキャッシュ方法が分かりません。
※Cache::write('posts_' . $groupId, $posts);
として書き込めば良いのでしょうが、今度はキャッシュ削除に困ります。
なにか良い設定方法をご存じないでしょうか? <>
nobodyさん<>sage<>2016/11/16(水) 12:58:20.58 ID:???.net<> >>956
キャッシュ削除の何に困るの?
困るところあるか? <>
nobodyさん<>sage<>2016/11/16(水) 13:33:13.33 ID:???.net<> >>957
すみません、
Cache::write('posts_' . $groupId, $posts);
の書き方で、Postをsaveする時に、afterSaveにgroup_idを渡せば削除できました。 <>
nobodyさん<>sage<>2016/11/18(金) 13:32:28.04 ID:???.net<> 2.9.1をPHP5.4や5.5に設置したら
Uninitialized string offset: 0 [CORE/Cake/View/Helper.php, line 359]
ってエラーが出るんだけど、Cake2ってPHP5.4以上に対応してるよね? <>
958<>sage<>2016/11/18(金) 14:59:32.75 ID:???.net<> 自己レスだけど親クラスからの継承の仕方が問題だったっぽい
あと、beforeSaveをbeforeSave($options = array())とか
afterSaveをafterSave($created, $options = array())としておかないと駄目っぽい <>
nobodyさん<>age<>2016/11/19(土) 19:13:13.53 ID:???.net<> 他人が作ったファイルを公開するためwebrootにa.phpというファイル置きました
サーバーだとfoo.com/aでアクセスできるんですがxamppで127.0.0.1/aだと404です
127.0.0.1でroutesで指定したトップのファイルが表示されてるので階層がおかしいとかはないと思うのですが
どうすればa.phpをxamppで見れますか?
教えてください <>
nobodyさん<>sage<>2016/11/20(日) 01:15:44.69 ID:???.net<> hosts <>
nobodyさん<>sage<>2016/11/29(火) 01:27:23.99 ID:???.net<> DBのデータ一覧を表示する際にidをテキストボタン(link)として作る
そのidのレコードをviewのフォームに反映
っていう風なことをしてます。
pagerでpage=3とかになってるときにそれやろうとすると1ページ目に戻ってしまいます。(linkのactionがindexだから)
その場合にurlを変更しないで行う場合はajaxを使うしかないですかね <>
nobodyさん<>sage<>2016/11/29(火) 18:28:40.86 ID:???.net<> 既存のビューファイルを使う話か?
自作した方がいいと思うぞ。ややこしくなるから。 <>
nobodyさん<><>2016/12/09(金) 15:29:07.59 ID:8pRknB39.net<> 【原発】 次に死ぬのは、誰〜だ? 【福島】
増える原因不明死 死因解明が追いつかない
(NHK・クローズアップ現代)
某看護師会「なぜ最近20代の突然死が急に増えたのか」
というテーマで、全く理由がわからなかったらしい。
1990年以降、被曝医学はカリキュラムから追放された
たくさんの人があっけなく死んでいく
ベンチに座ったまま バスを待ちながら
説明のつかない死が多かった
多くの人が脳卒中や心筋梗塞を起こした
駅やバスの中で (『チェルノブイリの祈り』)
5日死亡
武藤まき子、虚血性心不全。(「とくダネ!」、71)
黒沢健一、脳腫瘍。 (「L⇔R」、48)
ーーーーーーーーーーーーーーーーーーーーーーー
朝本浩文、自転車転倒死。 (UAなど作曲、53)
小泉義仁、駅で脳梗塞。(スピリチュアルTV 51)
森岡賢、、心不全。 (元ソフトバレエ 49)
飯野賢治、心不全。 (株式会社ワープ 42)
よしお、、、睡眠中突然死。 (ルサンチマン、33)
今井洋介、心筋梗塞。(テラスハウス出演者 31)
杉崎由佳、急死。(『進撃の巨人』作画監督 26)
今井雅之54 盛田幸妃45 松来未祐38 泉政行35
宮田紘次34 黒木奈々32 丸山夏鈴21 椎名もた20 <>
nobodyさん<><>2016/12/12(月) 23:05:20.90 ID:qafTiMZP.net<> 2系です。
1)フォーム投稿
2)投稿にはログインが必要なので、ログインフォームに転送される。
3)ログインする
4)1のページにリダイレクトされるが、POSTの値が消えている
と言った状態なのですが、セッションとかクッキーに入れる以外で、
元のページに戻った時にPOSTの値を保持する方法は無いでしょうか? <>
nobodyさん<>sage<>2016/12/13(火) 01:35:30.90 ID:???.net<> >>966
DBとか?
でもセッションにしたほうがいい。 <>
nobodyさん<>sage<>2016/12/13(火) 02:05:20.94 ID:???.net<> ログイン前にPOSTされたデータを信用するのに違和感を感じるのは俺だけ? <>
nobodyさん<>sage<>2016/12/13(火) 04:25:34.63 ID:???.net<> 別にそのまま投稿しちまうわけじゃないから違和感感じてるのはお前だけじゃないかな <>
nobodyさん<>sage<>2016/12/13(火) 10:51:37.28 ID:???.net<> てか、ログイン後だってPOSTデータは信用しちゃならんだろ
ログイン前も、それと同じくらいの信頼度(つまり変わらん) <>
965<>sage<>2016/12/13(火) 12:19:27.72 ID:???.net<> やっぱりセッションが良いですね。
あと、ログイン前にPOSTするのは止めます。
やはりセキュリティ的に不安ですね(やってるサイト多いですが <>
nobodyさん<>sage<>2016/12/13(火) 14:07:02.91 ID:???.net<> >>971
セッション開始前のデータをどうやってセッションで保持するのか、単純な疑問 <>
965<>sage<>2016/12/13(火) 14:26:24.55 ID:???.net<> >>972
というか、会員制のサイトならAppControllerにAuth適用してると思うので、
どの画面でもセッション処理は行なえますよ <>
965<>sage<>2016/12/13(火) 14:26:52.52 ID:???.net<> あ、AuthじゃなくてSessionコンポーネントか <>
nobodyさん<><>2016/12/13(火) 15:12:46.89 ID:Gp6hyIsi.net<> ログインしないと投稿できないのに、ログインしていないのに投稿ページあるいは投稿フォームが表示されるという設計がクソ <>
nobodyさん<>sage<>2016/12/13(火) 15:16:09.31 ID:???.net<> >>975
ど素人かよ
黙っとけよ <>
965<>sage<>2016/12/13(火) 15:22:20.82 ID:???.net<> >>975
そうなんですが、そういう設計って多いんですよ。
なもんで、それがスタンダードかな?って考えてみました。
↑ってレスしようとしたんですけど、ざっと探したらヤフー知恵袋ぐらいでした。
直近で見たのがこのサイトだったので、勘違していたかもしれません。
他はだいたい、ログインしてないと投稿部分は隠してますね。 <>
nobodyさん<>sage<>2016/12/13(火) 15:32:21.12 ID:???.net<> >>977
認証と承認の説明を100回読むまで実装するな <>
965<>sage<>2016/12/13(火) 15:51:50.95 ID:???.net<> 認証も承認もどっちの言葉も使ってないのに無理やり叩かなくても・・・ <>
nobodyさん<>sage<>2016/12/13(火) 15:58:09.15 ID:???.net<> >>979
叩いてるわけではない
別にお前がどんな糞コード書こうが俺には関係ないが、認証と承認の仕組みを
理解してから設計・実装した方がお前の為だと思ってアドバイスしたまで <>
nobodyさん<>sage<>2016/12/13(火) 21:19:05.30 ID:???.net<> セキュリティセキュリティって言うけど、
みんなそんなにクラックされるの?
postデータなんてh関数使ってるレベルで
今まで一度もされたことないんだけど。 <>
nobodyさん<>sage<>2016/12/14(水) 02:17:35.52 ID:???.net<> こまけぇこたぁいいんだよ!! <>
nobodyさん<>sage<>2016/12/17(土) 13:07:30.35 ID:???.net<> >>981
ばかじゃん?
不正アクセス禁止法のせいで、ザルシステム作った会社じゃなく、
ザルの穴を見つけた奴が処罰されるようになってるから
そうそう不用意にはクラックしないってだけ。
お前が許可してくれるならクラックするよ。
ただし、こっちには一切迷惑を書けないという誓約書よこせよ。 <>
nobodyさん<>sage<>2016/12/17(土) 16:58:59.26 ID:???.net<> >>983
勘弁してよ <>
nobodyさん<>sage<>2016/12/19(月) 15:17:07.37 ID:???.net<> cake2では、AppControllerで
Configure::write('Session.cookie', 'aaabbb');
すれば、cookie名が変わってたんだが、cake3ではこれが効かなくなった
なぜじゃ? <>