11/11/10 03:42:25.89
URLリンク(book.cakephp.org)
URLリンク(book.cakephp.org)
1.3のドキュメントは編集できるようになってるけど
URLリンク(book.cakephp.org)
URLリンク(book.cakephp.org)
2.0のドキュメントは編集できない
まだシステムが整備されてないとか言う問題なのかな
ドキュメントを読むとgithubのファイル修正したら公式ドキュメントに反映されるようにも書かれてるけど、
ドキュメントチームにメール送るかIRCで参加表明してくれとも書いてある
よくわからん
URLリンク(book.cakephp.org)
しかしgithubみると、今のところhiromi2424さんがほとんど翻訳してるんだな・・・
URLリンク(github.com)
とりあえず明日github編集してみて、よくわからなかったら野良翻訳ブログでもやってみるわ
15:nobodyさん
11/11/10 10:14:20.96 Y5PvVcC5
CakePHPってアソシエーション設定して普通に開発してると、
気がついたら1ページで100クエリ発行してたりするから困る
16:nobodyさん
11/11/10 11:15:50.69
既出だとは思うがコンテイナブル ビヘイビアを使うと必要なアソシエーションだけに限定できる。
URLリンク(book.cakephp.org)
この場合recursiveは関係なくなるっぽい。
17:nobodyさん
11/11/10 13:22:07.94
1ページで100クエリ、あるある
なんちゅーフレームワークだと思った
18:nobodyさん
11/11/10 13:40:46.41
>>16
つまり、いちいちbindModelで付け足していくよりも、
最初からモデルにアソシエーションを書いて
そこから必要な分だけ取り出すって形かな。
それはそれで便利そうだけど、
「ユーザ」モデルに「日記」「写真」「プロフィール」とかの
関連モデルと結合する場合、bindModelの方が軽い気がする。
19:nobodyさん
11/11/10 16:03:19.22 Y5PvVcC5
>>17
だからクエリ減らすために、
デバッグログをビューに出すやつで、
このクエリはこのファイルのここで実行された、みたいなログも一緒に出してくれたらいいんだけど
誰か方法しらない?
20:nobodyさん
11/11/10 16:29:00.22
あれはCake専用のレイアウトじゃないと出ないのでは?
って事はないよな・・・個別に貼り付けできるはずなんだが
21:nobodyさん
11/11/10 16:31:05.79
>>18
その例だとどうbindModelが軽いのかよく分からないが
コンテイナブルビヘイビアだと、順序やIDのつながり方をモデルのアソシエーションに集約できるから
普通は純粋にテーブルの取捨選択だけをcontainで指定すればいいし、順序を変えたいならcontainで上書きすることもできる。
22:nobodyさん
11/11/10 17:29:24.47
>>19
てかコンテイナブル使っても何しても、CakePHPは入れ子の2階層までしかJOINしてくれない
だからそれ以上の階層になると、1レコードとってくるのに WHERE id = ??? のようにして1クエリ発行される。
JOINしたら1発で取ってこれるような情報でも、100クエリとか発行するのはそのせい
23:nobodyさん
11/11/10 18:06:18.89
>>21
俺の出した例は大きく分けて2パターンの利用方法がある。
A:特定会員のコンテンツを取得
B:コンテンツ内のデータ(そのデータにユーザモデルをJOIN)
この場合、モデルにすべて書くと再帰的に複雑になるだろ?
AはUser→Diary、BはDiary→User
Aでfindした時、User→Diary→Userみたいになってエラーになる可能性がある。
だから、必要な時だけbidModelを使ってその都度足していけばいい
って考え方なんだけど、何か間違ってるかな?
24:nobodyさん
11/11/10 20:46:02.54
>>23
A:
$this->User->id = $id;
$this->User->contain(array('Diary' => array('Article')));
$data = $this->User->read();
(Articleはおまけで付けた)
B:
$data = $this->Diary->find('all', array('contain' => array('User')));
いずれにしろ再帰はしない。bidModel書くのが手間ではないならそれでもいいと思うが。
25:nobodyさん
11/11/10 23:20:49.30
>>22
findのjoinsオプション使うと明示的にJOINできるよ
デフォルトだとクエリ多発するのは確かにそうだね
でもhasManyのときはJOINにコストが結構かかるから、この仕様のほうが効率いいことが多いとかそんな話を聞いたことはある。
眉唾で聞いてたけど。
26:nobodyさん
11/11/10 23:52:27.25 tPbiz4Np
CakePHP2.0でfindとかやったときの例外処理ってどのように記述すればいい?
try {
$this->User->find('all', $params);
} catch (xxx) { ←ここら辺
xxx ←
}
27:nobodyさん
11/11/11 00:04:29.44
>>25
joinsってなんかうまく動かないの俺だけか
joinしたテーブルの下にjoin付けられる?
28:nobodyさん
11/11/11 01:43:52.72
付けられるぞ。
アソシエーション云々考えなければ、
joins使う方が一番思い通りに出来るよ。
29:nobodyさん
11/11/11 01:54:38.67
翻訳ブログ立ち上げたとたん>>14の2.0向けドキュメントが消えている
なんてこったい
30:nobodyさん
11/11/11 02:05:21.30
>>29
本当だ。復旧すると思うが吹いたw
31:nobodyさん
11/11/11 02:48:32.46
設計について質問させてください
例えばmixiでいうコミュニティーをユーザーが作れるとします。
コミュニティー作成者(管理人)は
設立段階で、
メンバーになる人達がコミュニティーに登録する際、
コミュニティー内で利用する
メンバーIDのフォーマット(バリデーションパターン)を指定する必要があります。
メンバーIDのフォーマットはどんなパターンにも
応じられる仕組みにしたいです。
例えば
コミュニティーAでは 477-794-954 のような(数字三桁)-(数字三桁)-(数字三桁)フォーマット
コミュニティーBでは英数半角なら何でもOK
コミュニティーCでは47472のような数字五桁
上記のようにメンバーIDは多岐に渡ります
こういった場合はどのようなテーブル設計、
またフローで対処するのが一般的ですか?
コミュニティー内でのメンバーリストでの
メンバーIDによるソートなども考えて実装したいところです。
32:nobodyさん
11/11/11 03:50:10.89
メンバーIDのフォーマットを選ばせるってのがよくわからない。
そこがすでに一般的じゃないからなんとも。
33:nobodyさん
11/11/11 03:51:04.82
むずかしすぎてわからないぜ
34:nobodyさん
11/11/11 06:01:26.02
JsHelper使って$this->Js->request();を使いjavascriptでアクションを呼び出しました。
methodをgetにするとレスポンスが返ってくるのですが、postにするとレスポンスが返ってきません。
原因なにかわかりませんか
35:nobodyさん
11/11/11 08:30:54.84
>>32
メンバーIDのカラムは一つだけど
コミュニティーごとにバリデーションパターンが違って
コミュニティ作成者が指定出来るようにすることが出来るのか?ということです。
36:nobodyさん
11/11/11 08:54:22.87
>>31
バリデーションルールをcustomにして、customバリデーションの中でコミュニティー毎にルールを書けばいい
37:nobodyさん
11/11/11 09:11:59.03
>>35
beforeValidation使えば出来ると思う
38:nobodyさん
11/11/11 09:32:54.02
CakePHP1.3系の自作behaviorについて
詳しく説明されているサイトをご存知の方いらっしゃいませんか?
独自のbehaviorを作成するにあたって、参考にしたいんですが
なかなか、細かく説明されているものが見当たりません
39:nobodyさん
11/11/11 10:46:14.70
>>36
一般ユーザーが簡易に
バリデーションパターン(コミュニティー管理者任意)をフォーム画面からカスタマイズさせるのって
どういう形で入力させるのが
一般的なんでしょう?
あまり、この手のものは前例を見たことがないので
40:nobodyさん
11/11/11 11:20:05.05
Cake1.3のSessionについて質問
初回のみURLにOAuthパラメータが付加されてくるのでチェックして認証できたら
$this->Session->write( $key, $params );
と保存。
これ以外にはどこにもSessionにwriteするコードはない。
2回目以降のアクセスでセッションを読む。
$this->Session->read( $key );
すると空になっている。
調べてみると初回の認証成功の後に、2つほど新しいキーで空っぽの値が保存されている。
これは何が起きていてどうすれば直るのでしょうか。
ぐぐってCAKE_SECURITYを変えたり、RewriteCond %{REQUEST_URI} !\.(cgi|css|gif|jp?g|png)$をやってみたけど駄目でした。
41:nobodyさん
11/11/11 22:11:48.35
jsもできないとうまく使えないかな
42:nobodyさん
11/11/12 04:22:28.06
じつはセッションに保存してなかったとか
43:nobodyさん
11/11/13 18:01:49.24
CakePHPのフォーラム活気がないんじゃないの?
ふつうあんなものなの??
44:nobodyさん
11/11/13 18:15:00.75
登録してハンドルで投稿するのがめんどい
無責任に書くつもりも無いけど、名前背負ってまで書き込みたくない
というのは2chみたいな匿名コミュニティに慣れてる人には多いんじゃ無いだろうか
45:nobodyさん
11/11/13 18:27:05.63
Railsのスレのほうが活気ないから
CakePHPに移ろうかと思うんだけど
日本でのシステム構築はどちらが有利?
シェアとか利点とか
46:nobodyさん
11/11/13 18:34:37.07
はいどうぞ
URLリンク(www.tiobe.com)
1 1 Java 17.874% -0.63% A
2 2 C 17.322% +0.61% A
3 3 C++ 8.084% -1.41% A
4 5 C# 7.319% +1.61% A
5 4 PHP 6.096% -1.72% A
6 8 Objective-C 5.983% +2.79% A
7 7 (Visual) Basic 5.041% -0.43% A
8 6 Python 3.617% -2.06% A
9 11 JavaScript 2.565% +0.90% A
10 9 Perl 2.078% -0.39% A
11 10 Ruby 1.502% -0.40% A
12 20 PL/SQL 1.438% +0.78% A
13 13 Lisp 1.182% +0.09% A
14 15 Pascal 0.991% +0.21% A
15 21 MATLAB 0.955% +0.32% A--
16 12 Delphi/Object Pascal 0.872% -0.77% A
17 23 ABAP 0.847% +0.25% A--
18 22 Lua 0.635% +0.02% A-
19 16 Ada 0.622% -0.07% B
20 19 RPG (OS/400) 0.620% -0.04% B
21 Logo 0.592%
22 Transact-SQL 0.550%
23 Visual Basic .NET 0.533%
24 Assembly 0.529%
25 COBOL 0.522%
26 Scratch 0.522%
27 R 0.500%
28 Scheme 0.453%
29 NXT-G 0.447%
30 Fortran 0.440%
47:nobodyさん
11/11/13 18:40:37.21
単純にRuby的なのが好きならRails、PHP的なのが好きならCakeという選び方でいいよ
php frameworkのシェアはこんなもん
URLリンク(www.google.com)
cake, symfony, rorのシェアはこんなもん
URLリンク(www.google.com)
日本だけ見ればcakeの圧勝だな
しかしrailsがこんなに先細ってるとは知らなかった
48:nobodyさん
11/11/13 21:24:33.67
世界的に見ると、Yiiの伸びがすげーのな。
日本だとcakeの圧勝だけど。
49:nobodyさん
11/11/14 12:21:32.77
YiiとCodeintegerスゲーじゃんと思いながら調べていくと
結局CkakePHPに戻ってしまう
50:nobodyさん
11/11/14 13:08:59.45
>>49
理由は?
51:nobodyさん
11/11/14 13:13:03.72
>>50
日本語に対する情報の差
52:nobodyさん
11/11/14 13:18:47.14
そんなに英語嫌なの?
アホなの?
53:nobodyさん
11/11/14 13:22:04.04
>>52
yes
54:nobodyさん
11/11/14 13:41:19.30
まぁ良いフレームワークならユーザーも増えて情報も増えていくだろう
Yiiはかなり有望だと思うよ
55:nobodyさん
11/11/14 13:47:56.50
/ ̄ ̄ ̄\
/ ─ ─ \
/ (●) (●) \ 有望だけじゃなにがいいかわからない
| (__人__) |
\ ` ⌒´ /
/ |
(_ ) ・ ・ ||
l⌒ヽ _ノ |
| r ` (;;;U;;) )__)
(_ノ  ̄ / /
( _)
56:nobodyさん
11/11/14 14:43:27.05
>>55
・シンプル
・軽い
・柔軟
・だけど大規模もいける
57:nobodyさん
11/11/14 15:38:26.16
/ ̄ ̄ ̄\
/ ─ ─ \
/ (●) (●) \ CakePHPもおなじじゃないのか
| (__人__) |
\ ` ⌒´ /
/ |
(_ ) ・ ・ ||
l⌒ヽ _ノ |
| r ` (;;;U;;) )__)
(_ノ  ̄ / /
( _)
58:nobodyさん
11/11/14 17:55:25.43
CakePHPは日本語情報が相当そろってるでしょ。
個人のブログでも盛んに発信されてるし。
Yiiは有望なんだろうけど、いかんせん個人での発信者が少ない気がする。
開発画面のフッターはかっこいいと思う。あれは使いやすい。
59:nobodyさん
11/11/14 18:04:58.31
CakePHP辞典のようなリファレンス本があればいいのにね。
やっぱネットで調べるよりも本を見ながらの方が開発しやすいし。
60:nobodyさん
11/11/14 18:57:00.77
皆は
会員登録
メールによるクリック本登録
パス忘れたときのメールによる再発行
なんかは自分で作り込んでるの?
61:nobodyさん
11/11/14 18:59:56.98
いらないだろ
62:nobodyさん
11/11/14 19:22:07.74
>>61
どういうこと?
63:nobodyさん
11/11/14 19:24:44.69
>>61はいらない子
64:nobodyさん
11/11/14 19:55:45.54
>>60
自分で作り込んでるの?ってどういう意味だ?
誰かが作った物をそのまま流用してるって事か?
そんなわけねーだろ。
65:nobodyさん
11/11/14 20:59:16.72
>>60
この一連のユーザー登録機能、
フレームワークによっては標準搭載もあるよな。
66:nobodyさん
11/11/14 21:09:29.55
んじゃ、CIやYIIって
cakephp+ktailiblary以上に携帯サイト作りやすいの?ん?
67:nobodyさん
11/11/14 21:18:38.51
>>60
adminが登録するタイプの案件しかやった事ない。
68:nobodyさん
11/11/14 22:03:24.22
みんな携帯サイトつくってばかりということか
69:nobodyさん
11/11/14 22:25:25.56
>>60
自分で作ったよ。CakePHPで。
テストも自動化したかったから、
ニセのSMTPサーバー作ってそこに送信→ファイルに保存。
それみてCakePHPについてたブラウザをエミュレートするモジュールが
クリックなんてことしたなぁ。
もう3年以上前になるかな。今なら便利な何かがあるかもね。
70:nobodyさん
11/11/14 22:32:22.79
Ktai Libraryって個人が作ってるショボいやつでしょ?
絵文字の対応が弱かった気がする
71:nobodyさん
11/11/15 00:30:41.57
Modelにvalidateを記述してもスルーされてしまうんですが、何故でしょうか?
<?php
class Contact extends AppModel
{
var $name = 'Contact';
var $useTable = false; //データベースのテーブルを使用しない
var $validate = array(
"name" => array(
"rule" => 'notEmpty',
"message" => '名前を入力してください'
),
);
}
?>
コントローラ
function index() {
if ($this->data['Contacts']['mode'] == 'confirm') {
if (!empty($this->data)) {
$this->Contact->set($this->data);
if ($this->Contact->validates()) {
$this->render('confirm');
return;
}
$this->render();
return;
}
(以下略)
72:nobodyさん
11/11/15 00:47:02.01
>>71
>var $useTable = false;
↑こういう場合は、$_schema を設定する必要があった気がする。
var $_schema = array(
'name' => array(
'type' => 'string',
),
);
73:nobodyさん
11/11/15 01:42:34.79
>>70
setしたデータがあってるか、validatesする前にvar_dumpしてみたら?
ContactsとContactがごっちゃになってそうだけど。
74:nobodyさん
11/11/15 01:56:03.33
>>47を見る限りCIはタガログ語とインドネシア語の情報が豊富そうだぞ
まずはそっちの語学学習からだな
75:nobodyさん
11/11/15 13:30:08.83
>>71
俺みたいにappを分けてて、
modelファイルも同一の物があるんじゃねーの
76:nobodyさん
11/11/15 15:55:39.02
CakePHP2.0でhelperを読み込んだらviewからしか開けません
これってふつうですか?controllerから前は呼べた気がするんですが
77:nobodyさん
11/11/15 16:51:27.77
前からもコントローラーでApp.importしたが
78:nobodyさん
11/11/16 13:56:38.50
test
79:nobodyさん
11/11/16 14:58:38.98
CakePHPの勉強会いってるひといる?どうですか
80:nobodyさん
11/11/16 15:21:00.48
単なる馴れ合いです
81:nobodyさん
11/11/16 15:29:23.74
勉強会でコネ作れればいいんだろうけど、俺は毎回孤立するか、名刺交換しても連絡取らないからな
まあ自分みたいなアマグラマーは少ないからしょうがないと思ってる
82:nobodyさん
11/11/16 15:58:04.21
連絡取るってことは=金が発生するって事だからな。
大の大人がただの情報交換で連絡取り合うのはあり得ないし。
83:nobodyさん
11/11/16 17:21:51.07
さ、寂しいこと言うなよ。
僕は>>82君の声を耳元で聞きたくて連絡取ってるわけだし、いつだって君のことを見てるよ
84:nobodyさん
11/11/16 18:33:51.99
まじかよ。行く気がへっちゃったよ
85:nobodyさん
11/11/16 19:42:09.06
相手が自分と相応の知識持ってたら、無償の情報交換も成り立つんだけどな。
86:nobodyさん
11/11/16 23:57:11.46
viewについてですが条件分岐が多くてif文だらけになるんですが
なんかスマートなやりかたってありますかね
87:nobodyさん
11/11/17 01:07:02.88
>>86
viewファイルわけるとか?
88:nobodyさん
11/11/17 01:26:10.05
そういうのはうちでは全部盛り込んだ。
89:nobodyさん
11/11/17 01:44:12.36
なにを盛り込んだのよ
90:nobodyさん
11/11/17 08:49:19.09
ど、どくを・・・
91:nobodyさん
11/11/17 08:55:55.80
>>86
まず、何に対する条件分岐か書けよ
92:nobodyさん
11/11/17 11:17:06.59
>>86
ヘルパーにまとめちゃえば
93:nobodyさん
11/11/17 12:51:19.33
viewからコントローラーやモデルを呼び出すことはできますか?
94:nobodyさん
11/11/17 12:52:51.10
出来ます
95:nobodyさん
11/11/17 13:44:18.21
>>93
そうしなくちゃいけない設計がマズイ
96:nobodyさん
11/11/17 23:19:43.07 t9LRBQJB
一つのIPに対してバーチャルホスト切って運用する場合に
ドキュメントルートってcakephp/app/webrootでいいの?
トップはいいとして他のページを表示しようとすると
Not Foundになっちゃうんだけど。
ちなみにcakephp直下をドキュメントルートにするとうまくいく。
97:nobodyさん
11/11/17 23:46:36.11
cakePHPを最近使い始めました。
mod_rewriteを使って、実際のパス名と違うパスでアクセスさせているんだけど
paginatorで作成されるURLが、実際のパス名のほうになってしまいます。
どこかの定数を変更したりすれば上手く行くでしょうか?
htdocs/foo/app/webroot/index.php
こんな感じで index.php を置いているとして、でも各種都合により
実際のリクエストは
URLリンク(domain.com)
こんな形で来ます。
このとき、mod_rewriteで^/bar/bazを/foo/に置き換えているんだけれど
このときmod_rewriteのフラグに[PT]を入れないと画像などがHelper経由の画像のパスが、
/var/foo/というような、おかしなものになってしまい
[PT]を入れるとpaginatorで生成されるURLが/foo/になってしまう。
ざっと見た感じでは、問題はDispatcherなのかと思うんだけど
app下のファイルでうまく設定は出来ないでしょうか。
98:nobodyさん
11/11/18 01:01:53.98
>>96
バーチャルホストのドキュメントルートを、各のドキュメントルート直下を指定するといい。
99:nobodyさん
11/11/18 01:18:37.03
>>97
mod_rewriteは基本触らないでRouterでやった方がいいと思うんだけど
100:nobodyさん
11/11/18 01:56:17.73
>>98
「各のドキュメントルート直下」というのは
例えば、/var/www/cakephp/のこと?
それとも、/var/www/cakephp/app/webrootのこと?
101:nobodyさん
11/11/18 12:40:48.58
/var/www/cakephp/
これでいいのでは?
cakephp標準で.htaccessが付いてるし。
102:nobodyさん
11/11/18 17:11:19.32
2.0でhelperからcomponentを呼びたいのでやりかたおしえてください
あとcomponentからhelperを呼ぶようにするのとどっちがいいですか
103:nobodyさん
11/11/18 23:01:21.82
普通にPHPクラスを作って、両方から呼び出してください。
104:nobodyさん
11/11/18 23:12:54.03
CodeIgniterがライセンス変更されて使いづらくなったらしいけど
Cakeは大丈夫かな?使い始めてから突然変更されたらかなわんな
105:nobodyさん
11/11/19 00:00:44.70
>>104
CIは会社が作ってるんでしょ。
106:nobodyさん
11/11/19 00:07:58.71
>>99
mod_rewriteが使えるならRoutesよりmod_rewriteが推奨のように見えます。
URLリンク(cakephp.jp)
> "Routing"(ルーティング) は、(中略)見栄えの良い URL (pretty URLs) をより設定しやすくし、
> mod_rewrite がなくても動くようにするため、 Cake に追加されました。
> しかし、 mod_rewrite を使用するなら、アドレスバーははるかに整理されます。
107:nobodyさん
11/11/19 01:45:52.06
>>104
今cake使っててCIかyii浮気しようと思っていた俺は、浮気先が一つになったので選ぶ必要がなくなった
オープンソースの宿命だから、そのときはそのときでしょうがない
108:nobodyさん
11/11/19 02:37:10.19
なんで浮気しようと思ったの?
109:nobodyさん
11/11/19 02:40:13.80
>>106
えとね。mod_rewriteは○○○ってURLを×××に変えることはできるけど、
×××を○○○に変えることはできないんだよ。
110:nobodyさん
11/11/19 08:14:03.03
オープンソースの宿命なの?
あとから規約変えるとか詐欺だろ
111:nobodyさん
11/11/19 10:01:41.28
最近はてブでFuelPHPってのが話題にあがってた
触ってみた?
112:nobodyさん
11/11/19 11:11:45.38
>>109
mod_rewriteで出来ないことまでやろうとしてるんじゃなくて、
mod_rewriteとRoutes両方で出来ることなら、
mod_rewriteでやったほうがいいんじゃないか。
>>99はmod_rewriteは基本触らないという意見のようなので。
113:nobodyさん
11/11/20 02:41:49.47
>>111
そんなに便利そうに思えないんだよな。
オレオレの域を抜けてないというか
114:nobodyさん
11/11/20 14:33:03.47
CodeIgniterが死亡した今Yiiとの一騎打ちになったか
115:nobodyさん
11/11/20 14:54:00.52
>>111
触ってない
「CIより多少マシ」というコメントがついていたけど、まさにそんな感じだと思った
CIも結局盛り上がらなかったし、既にCakeとかSymfonyというフレームワークがある状況だと、
いいフレームワークが出来てもいかにそれを流行らせるかが問題だと思う
暇そうなプログラマー雇って提灯記事とドキュメントの日本語訳書かせまくるしかないんじゃない?
116:nobodyさん
11/11/20 17:11:02.58
なんで訳さないといけないんだよ
お前らが英語勉強しろよ
117:nobodyさん
11/11/20 20:29:27.21
Cakeが流行ったのは提灯記事のおかげだったのか
118:nobodyさん
11/11/20 23:38:02.20
いいえ、提灯ではない記事のおかげです
119:nobodyさん
11/11/21 01:16:55.48
>>117
cake初期の頃ブログ書きまくってたけど、「CakePHPがRoRに対抗するフレームワークになるんだ!俺がそうするんだ!」
みたいな変な使命感もってやってたよ
今はすでにPHPでフレームワークがたくさんある、しかもCakeなどのメジャーになったモノがたくさんある状況で
新規のフレームワークに手を出す人は少ないだろうから、まずはそのフレームワークのエヴァンジェリストが必要なんじゃ無いかと思う
120:nobodyさん
11/11/21 01:22:56.17
>>119
確かにCakeの記事は玉石混交しててバリエーション豊かだった気がする。
Zend Frameworkとかもあんま流行ってる感じしないしな。
121:nobodyさん
11/11/21 01:38:56.62
cakeネタで書こうと思えばいろいろあるんだけど
twitterとか使い出したら、なんかわざわざブログに書くのめんどくなったよ
122:nobodyさん
11/11/21 12:40:46.36
Cake1年ほど業務で使ってみたけど
開発スピードは速い
実行スピードは遅い
バグは多くも少なくもない
という印象
123:nobodyさん
11/11/21 16:18:29.64
俺も同じ意見。
実行スピードの遅ささえ解消されれば、最強なんだがな・・・
124:nobodyさん
11/11/21 17:47:44.03
Controllerからviewヘルパーを呼ぶと
Fatal error: Call to a member function hoge()がでてしまいます
コントローラには
$helpers = array('Hoge');
とかいて
$this->Hoge->hoge();
と書いているのですが
125:nobodyさん
11/11/21 17:49:18.81
コントローラー内で呼ぶ場合、newしないとだめだよ。
126:nobodyさん
11/11/21 18:19:23.29
>>125
ありがとうございます
$this->Hoge = new HogeHelper();
このように書いたら
Fatal error: Class 'HogeHelper' not found が$this->Hoge = new HogeHelper();と書いた行ででてしまいました
最初に読み込んだりしますか
127:nobodyさん
11/11/21 18:50:56.58
App::Importしないと。
128:nobodyさん
11/11/21 19:17:30.73
>>127
ありがとう
できなかったからもう寝るお
129:nobodyさん
11/11/21 19:25:32.67
なぜにググることすらしないのか
130:nobodyさん
11/11/21 19:34:10.21
馬鹿だから
131:nobodyさん
11/11/21 21:57:23.12 hMc6lKUo
LinuxでPHP5.3.6をソースからコンパイルして使ってるんですが、
CakePHPの内部でfindメソッドの戻り値にモデル名をセットしている箇所に問題があり、
モデル名の代わりに0がセットされるようになってしまい困ってます。
原因はPDOStatement::getColumnMeta()でtable名が返ってこないためです。
ちなみにxampp環境のPHP5.3.8だと問題なく動作しているのですが、
PHP5.3.6に問題があるのでしょうか?
132:nobodyさん
11/11/22 02:47:37.72
ソースからコンパイルなんてするの
133:nobodyさん
11/11/22 03:02:58.10
オプションいろいろ付けたかったらするでしょ
134:nobodyさん
11/11/22 17:28:20.16
>>131
このことじゃね
URLリンク(bugs.php.net)
135:nobodyさん
11/11/23 19:20:56.88 vIVNUlWb
hetmlhelperで相対パスにリンクを張ったらhttpのアドレスからだとhttpにリンクが張られてしまうんですが、
httpsに張るようにするには絶対パスしかないですか?
136:nobodyさん
11/11/23 20:28:32.14
>>135
Htmlヘルパーを拡張したMyHtmlヘルパーを作ればいいじゃない。
137:nobodyさん
11/11/23 20:35:14.55
舞Htmlヘルパー
138:nobodyさん
11/11/23 21:13:39.19
app_html.phpかな。
139:nobodyさん
11/11/25 01:36:56.19
CakePHPでサイト作るとしたらふつうだいたい何ヶ月くらいかかるの
140:nobodyさん
11/11/25 01:41:51.95
自分で学習して作るのか、外注して作るのか、作るサイトの規模はどれくらいかとか書いてくれないと、ピンキリとしか言いようが無い
141:nobodyさん
11/11/25 02:01:33.59
OpenPNEのようなSNSを自分で作る場合はどのくらいかかりますか?
142:nobodyさん
11/11/25 03:48:39.39 ms97YqHe
URLリンク(libro.tuyano.com)
このとおり作ってるんだが、「送信」押すと、
Create the class ResultController below in file: app\Controller\ResultController.php
ってエラーがでる。
143:nobodyさん
11/11/25 05:54:25.81
Cakeのwebrootにあるcss.phpて動作してる?
App::import('Vendor', 'csspp' . DS . 'csspp');とかやってるけど、そんなもの存在してない気がするんだが
144:nobodyさん
11/11/25 05:55:26.54
Cakeのwebrootじゃなくてapp/webrootだった
145:nobodyさん
11/11/25 12:05:59.37
>>142
そのサイトの他ページは見てないからviewがどうなってるのか知らないけど、
フォームの送り先URIがおかしいのでは。
146:nobodyさん
11/11/25 12:08:23.24
>>143
cssppをダウンロードしてVenderにぶち込めってことじゃないの
css.phpのコメントにでも書いてあると思うが
147:nobodyさん
11/11/25 12:47:14.66
>>139
画面数と機能数で概算出してみたら?
148:nobodyさん
11/11/25 13:42:47.07
/ ̄ ̄ ヽ,
/ ',
| {0} /¨`ヽ、
l ト.__.i●
ノ ー─'
ノ ',
●をダブルクリックするとクチバシが伸びるぞ!
人人人人人人人人人人人人人人人人人人
) (
) 伸びるわけねーだろ! ( _/\/\/\/|_
) ,rrr、 ( \ 試したやつ /
⌒Y⌒Y⌒Y⌒Y⌒Y| |.l ト⌒Y⌒Y⌒Y⌒Y⌒Y/つ))) < バーカ! >
⊂ ヽ | __ ☆ __ _/ 巛 / \
/ ̄ ̄ ヽヽ ,`ー \ | |l / \ __つ  ̄|/\/\/\/ ̄
/{゚} 、_ `ヽ/|| , \.|||/ 、 \ ☆ / ̄ ̄ ヽ,
/ /¨`ヽ {゚} | / __从, ー、_从__ \ / ||| / 丶 / ',
| ヽ ._.イl ',/ / / | 、 | ヽ |l ノ//, {゚} /¨`ヽ {゚} ,ミヽ
、 ヘ_/ノ ノ/ ) `| | | |ノゝ☆ t| | |l \ / く l ヽ._.イl , ゝ \
\___ ノ゙ ─ー `// `U ' // | //`U' // l / /⌒ リ ヘ_/ノ ' ⌒\ \
/ / W W∴ | ∵∴ | (  ̄ ̄⌒ ⌒ ̄ _)
/ ☆ ____人___ノ ` ̄ ̄`ヽ /´ ̄
149:nobodyさん
11/11/25 14:26:37.82
>>145
遷移しなかったのですが、一応解決しました。
原因は、
フォームの
<form method="post" action="./result">
↑ここがおかしかったみたいです。
150:nobodyさん
11/11/25 23:22:16.42
CakePHP2.0について
■app/Model/Test.php
<?php class Test extends AppModel{public $name = 'test';}
■app/Controller/TestController.php
<?php class TestController extends AppController{function index(){$test = $this->Test->find('all');debug($test)}}
データベースはSQLiteに設定してありますが、データベースを使わず、
モデルTest.phpに書いた変数$nameの値をコントローラから読み込みたいのですが
Fatal error: Call to a member function find() on a non-object
というエラーが出て困ってます
どなたかアドバイスお願いします
151:nobodyさん
11/11/26 02:11:47.02
cakephp使ってるやつはもっとブログいっぱい書いてくれ。使い方がよくわからないし
152:nobodyさん
11/11/26 02:19:26.62
>>146
見たけどなんも書いてないし
こういう作りかけで放置?みたいなのがCakeにはちょこちょこ見られて嫌だな
153:nobodyさん
11/11/26 14:40:10.29
>>152
2.0ではcss.phpは無くなってるし、全体的にちぐはぐだった部分が整理されてきてる感じ
154:nobodyさん
11/11/26 15:54:08.70
>>150
よくわからんが
Test.phpはtest.php
TestController.phpはtests_controller.php
じゃないのか。
155:nobodyさん
11/11/26 23:26:54.50
>>141
たぶんその質問をするレベルからなのだろうから、集中してやっても半年
下手すれば3年
156:nobodyさん
11/11/27 03:43:00.02
勉強するために本を購入しようと思ってるんですけど、
お勧めの本とかを聞くのはスレ違いですか?
もし平気ならお勧めの本を教えてください。
157:nobodyさん
11/11/27 07:48:03.99
「奉仕を主とする事業は栄え、利得を主とする事業は衰える」
「ほかの要因はさておき、我々の売上は、ある程度賃金に依存しているのだ。
より高い賃金を出せば、その金はどこかで使われ、ほかの分野の商店主や卸売り業者や製造業者、
それに労働者の繁栄につながり、それがまた我々の売上に反映される。
全国規模の高賃金は全国規模の繁栄をもたらす」
奥田 碩(日本経団連名誉会長 元トヨタ自動車会長)
158:nobodyさん
11/11/27 17:45:35.50
>>156
CakePHP辞典とネットの情報でおk
159:nobodyさん
11/11/28 06:13:25.61
>>158
PHPは何となくわかるんだけど、ビジネスロジック?をmodelにどう書いたらいいかとかがわからない、、。
ネットで調べてもDBのアクセス方法とかしか載ってないし・・・。
160:nobodyさん
11/11/28 11:15:11.72
>>159
おいおい、その程度の知識かよ・・・
それなら「はじめてのMySQL」的な本とかかって、DB回りを勉強しろよ。
MVCについても全く概念が無いようだから、
ネットの解説記事を見て、オレオレフレームワークでも作る練習しろ。
その後にCakeやった方が捗るよ。
161:nobodyさん
11/11/28 13:01:50.72
知識なんていらないからね
162:nobodyさん
11/11/28 13:52:41.35
必要なかったら本買わずにソースだけ見てやってください
163:nobodyさん
11/11/29 15:55:46.38
echo $this->Form->input('birthdate',array('type'=>'date'));
上記で出力した項目のValidationについて教えてください。
上記で年・月・日のドロップダウンリストが出力されます。
2011・2・31を選択して保存すると、2011-03-03として保存されます。
ありえない日付を選択されたのでエラーとしたいのですが、標準でできますでしょうか?
164:nobodyさん
11/11/29 16:27:20.48
>>163
モデルの$validateでruleをdateにしたらエラーに出来ないか?
165:nobodyさん
11/11/29 23:21:26.10 xETpRXat
Viewの必要のないXMLを返すような場合に
Viewを作らずにすますにはどうすればいいですか?
166:nobodyさん
11/11/30 01:08:19.68
>>164
dateルールだとできません。
167:nobodyさん
11/11/30 01:46:38.75
>>160
オレオレフレームワークのつくりかたどっかにないかな
168:nobodyさん
11/11/30 02:02:38.21
>>167
ちょっと古い記事ですが
URLリンク(blog.syuhari.jp)
テーブルからデータを取得するコードはモデルにメソッドとして書いて
コントローラで取得して、ビューに渡すという流れです
169:nobodyさん
11/11/30 11:57:10.26
>>166
俺のところでは出来るが
>>168
これ、ページネーション(paginate)を使いたい場合は使えないんだよな・・・
170:nobodyさん
11/11/30 13:04:25.29
>>169
すみません、バージョン教えてもらえますか?
こちら2.0です。
171:nobodyさん
11/11/30 16:17:33.31
バージョンだわ。俺は1.3系使ってるし。
172:nobodyさん
11/11/30 22:39:37.21
いよいよ2.0の話題が増えていくのか
173:nobodyさん
11/12/01 01:14:05.48
app/webroot/files/sample.phpから
app/views/layouts/layouts.ctp
を参照したいんですけど、相対パスってどうなりますか?
174:nobodyさん
11/12/01 01:15:41.08
むずかしいもんだいだね
175:nobodyさん
11/12/01 01:19:47.08
すみません../../views/layouts/でいけました
webrootなので複雑に考えてました
176:nobodyさん
11/12/01 01:36:07.41
逆にlayouts.ctpから参照するときは
files/sample.phpなんですね
177:nobodyさん
11/12/01 21:07:27.25
2.0系って、従来のプラグイン使えるのかな
移行ガイドにはそのあたり触れられてないのが気になる
178:nobodyさん
11/12/02 02:48:35.30 LODTi230
CakePHP + Oracleってあまり相性良くない?
Oracleってオートインクリメント使えないんだけど
CakePHP側でうまくやってくれるとか?
179:nobodyさん
11/12/02 04:44:28.87
そもそも使えるの?
180:nobodyさん
11/12/02 22:19:51.28
オートインクリメントが使えなかったら
RDBMSとして成り立たないだろ。
お前があほなだけ。
181:nobodyさん
11/12/02 23:44:46.73
Oracle側でシーケンスとトリガーでやります
182:nobodyさん
11/12/03 00:46:21.36 ewJKbRKA
CakePHP2.0でSqlite3のファイルにアクセスしたいんだけど
どうもうまくいきません。以下のようなエラーが出ます。
Missing Database Table
Error: Database table xxx for model Xxx was not found.
もしかして、CakePHP2.0ではsqlite3のファイルにアクセスできない?
183:nobodyさん
11/12/03 00:51:11.36
Missing Database Table って言ってんだろw
184:nobodyさん
11/12/03 09:33:17.39
>>182
Model.phpが無いんじゃないの?
cake bakeしてみたら。
185:nobodyさん
11/12/03 13:53:22.68
CakePHP辞典の人が2.0バージョンも出してくれたらいいのにな。
今は明らかに情報が足りなすぎる。
186:nobodyさん
11/12/03 16:12:59.14
>>182
eat cake, PDO版 SQLite3 を使う
URLリンク(miztools.so.land.to)
187:nobodyさん
11/12/04 01:19:55.36
sqliteいいの?mysqlしかつかったことない
188:nobodyさん
11/12/04 02:29:45.94
システムが違う。
sqliteはテキストデータにRDBMSっぽい書き込みをして使用する。
189:nobodyさん
11/12/04 02:37:58.60 vxdOAUX9
sqliteはPHP5からのデフォルトバンドルだぜ?
しかもDBサーバを立てることもなく一つのファイルで完結だ。
俺はこんないいものを知らない。
190:nobodyさん
11/12/04 02:43:31.05
同意せざる終えない。使い勝手良すぎ
191:nobodyさん
11/12/04 15:48:53.97
app/app_controller.phpを作って、
function beforeFilter(){
echo '<!--'.$this->params['controller'].'-->';
}
とやってみたんですが、特定のコントローラだけ$this->params['controller']で出力されません
何が原因なんでしょうか?
他とその出ないコントローラの違いで思い当たるのはそのコントローラにもbeforeFilterが指定してあることくらいです
192:191
11/12/04 15:50:38.27
>>191に追記です
コントローラ値が空なだけだと思ったら、どうやたapp_controller自体実行されてなかったようです
(普通に文字を出力させてもでませんでした)
御教示いただけたら幸いです
193:nobodyさん
11/12/04 15:54:37.24
>>191
コントローラ内のbeforeFilter内で
parent::beforeFilter();
ってやってる?
194:191
11/12/04 16:19:33.30
>>193
それでした
app_controllerを作ったのがはじめてだったので、決まりごとを理解してませんでした
ありがとう御座いました
195:nobodyさん
11/12/07 14:22:49.37 XLyuG92u
cakephp 1.3.13を使ってcakeError()の情報をXMLで返したのですがうまくいきません。
通常のデータは以下のようなことでViewをXMLにしています。
var $helpers = array('Text', 'Xml');
public $components = array('RequestHandler', 'Security');
function beforeRender() {
$this->RequestHandler->respondAs('xml');
$this->viewPath .= '/xml';
$this->layoutPath = 'xml';
しかし、app_error.phpに
function errorXXXX($params) {
$this->helpers[] = 'Xml';
if ($this->controller->RequestHandler->isXml()) {
$this->controller->RequestHandler->renderAs($this->controller, 'xml');
}
$this->controller->render('errors', 'default');
とやってデバッグすると、内部の$outに正常にXMLが入っているのですが、クライアント
にわたりません。なにか特別のことをしなければならないのでしょうか。
196:nobodyさん
11/12/07 17:18:20.77
検索処理で該当データなしの場合、「(検索条件)に一致する情報は見つかりませんでした。」みたいなメッセージを出力させたいのですが、
どこにどう記述するべきでしょうか?Controller?View?
197:nobodyさん
11/12/07 18:02:05.03
View
198:nobodyさん
11/12/07 21:33:41.84
Viewに決まってるだろ
199:nobodyさん
11/12/07 23:38:47.74
>>196
controllerかmodelで分岐させて、controllerでset
viewの出したい箇所に変数を<?php echo $message ?>
200:nobodyさん
11/12/07 23:41:58.93
>>199
いや、View内で分岐だろ
201:199
11/12/07 23:45:59.78
うちはmodel::findのif(empty($data))の分岐でviewに渡す文字列またはarray。
viewの方にもif(isset())で文字列またはarray(リスト表現)
202:nobodyさん
11/12/08 01:31:10.64
CakePHPはPHP5.3に完全対応できないだろうな。
PHP5.3の恩恵を受けることのできるフレームワークはfuelphpしかない。
CakePHPの時代も終わりか。
203:nobodyさん
11/12/08 01:32:48.80
>>202
スレあるんなら誘導してくれよ
【php】fuelphpについて語ろうぜ
スレリンク(php板)
204:nobodyさん
11/12/08 01:37:07.11
アクセス修飾子にvarが使われてる時点で、すごい気持ち悪い。
205:nobodyさん
11/12/08 02:27:45.30
DebugKit、2.0の環境で使えてます?
LAMP環境で
var $components = array('DebugKit.Toolbar');
とAppControllerに書くと、画面が真っ白になる・・・
xampp環境だと問題ないんだけど。
206:nobodyさん
11/12/08 02:47:03.37
Lithiumはどうなったのよ
207:nobodyさん
11/12/08 09:13:39.91
Cakeオワコン過ぎ
技術情報とかぐぐっても2009年とかの前のバージョンの記事しか出ないし
便利なプラグインなんかも大体その頃に作られてて、今は放置
大きめの英語の掲示板で技術質問をしても、1日1個の書き込みもない過疎っぷりでレスが付かない
おワットる
208:nobodyさん
11/12/08 10:23:40.21
逆に他のフレームワークだと書き込みは多いのか?
209:nobodyさん
11/12/08 16:08:22.57
以前のような盛り上がりは無くなったね
っていうか、前のバージョンでもさほど動作が変わらないから書き直すほどでも無いしなあ…
でもそういうバージョンの違いがあってもちょっと直すだけで動くと言うことを新規参入者は知らないから、
今から始めようという人には不親切な環境かもね
cookbookも日本語になってないし
210:nobodyさん
11/12/08 16:27:06.15
えー
find('all')かfindAllかとか、大きな違いで戸惑うと思うけどなあ
他にも色々変わっていて困ったことがあった
211:nobodyさん
11/12/08 18:21:25.83
>>210
そのくらいは最初にブログチュートリアルで学ぶかマイグレーションガイド見てください
212:nobodyさん
11/12/10 06:31:35.05 dP9DBevc
早く2.0のcookbook日本語化しろよ。
どんだけ情報少ないんだよ。
ちんたらしてるとユーザー逃げるぞ。
213:nobodyさん
11/12/10 19:52:45.95
よっしゃ、まかせろ!
214:nobodyさん
11/12/10 21:39:38.00 XSFB8P6r
掲示板に画像UPの機能付けようとしてて、現在メディアプラグインを
使おうとしてるんですがうまくいきません。
「The file cannot be transferred from or to location.」と表示されて
先に進めず、力量不足で問題の切り分けもできない状態です・・・
メディアプラグインを使われてる方、アドバイスお願いします。
現在の環境はMacでXAMPP,php5.29,cakephp1.3,mediaplugin1.3です。
215:nobodyさん
11/12/11 02:28:53.15
>>214
使ったことないからわからんけど、軽くググった感じだと、たぶんファイルの書き出し先がちゃんと指定されてないんじゃね
216:nobodyさん
11/12/11 18:29:54.09
ログイン機能があったのですがChromeだけセッションが保持されなくなってしまいました。
なにか原因としてかんがえられますか
217:216
11/12/11 19:19:22.12
すみません
Cookie削除したら解決しました
218:nobodyさん
11/12/11 20:39:39.12
>>213
まだですか
219:nobodyさん
11/12/11 20:56:58.63
>>215
レスありがとう御座います。
現状を報告すると、
xamppのtempフォルダまではちゃんと、ファイルが上がってました。
しかしそこからプラグインが指定している、weroot/media/transfer/img/
フォルダには移動されていませんでした。
パーミッションを777にしても駄目だったので今からソースを追ってみます。
進展があったらまた、こちらに報告します。
220:nobodyさん
11/12/11 21:06:56.91
>>219
パス間違えました
webroot/media/transfer/img/ です。
221:215
11/12/11 21:11:51.64
>>220
サーバー側までファイルは来ていて意図するところに書き出せないと言うことは、やっぱりそういうtypo系のミスじゃないかなー
あとはファイルを置くディレクトリの階層浅くして別のところに作って試してみるとか
222:nobodyさん
11/12/11 21:43:21.91
>>221
少し進展があったのでご報告します。
今までチュートリアル系のブログを見ながら試していたのですが
最新のヘルプを見るとadd.ctp(登録用view)に追加する記述が変わっていました。
今まで
echo $form->create('Hoge',array('action'=>'add','type'=>'file'));
echo $this->element('attachments', array('plugin' => 'media'));
新しい
echo $form->create('Hoge',array('action'=>'add','type'=>'file'));
echo $form->input('file', array('type' => 'file'));
新しいもので試した所、ファイルはアップロードされていましたが
$hasManyで設定したテーブルにファイルの情報が保存されていませんでした。
----
プラグインの制作者様が細かいバージョンで仕様変更されているようなので
注意して進めていきたいと思います。
また、進展がありましたら報告します。
223:nobodyさん
11/12/12 11:11:03.41
Cakeの実行速度が遅いので、なるべく急いで他のフレームワークに移行したい場合
おすすめがあるとしたら何でしょうか?
移植のしやすさと得られるパフォーマンスの改善のバランスが良いもの
んなもん経験者にしかわからんと思うが、もしいたら
224:nobodyさん
11/12/12 11:29:31.97
なるべく急いで他のフレームワークを取得できるなら
Cakeの実行速度を上げる方法を学んだ方が良いですよ。
225:nobodyさん
11/12/12 13:18:51.48
>>223
どこがネックで遅いのか書くとより良い回答が期待できると思う。
どこがネックかもわかってないなら、まずやることはフレームワークの移行ではない。
226:nobodyさん
11/12/12 13:33:57.79
App::import()が遅いです
227:222
11/12/12 15:26:43.56
メディアプラグインで画像アップロード機能を実装しようと
してましたがもう無理です。
添付されたヘルプと、ソースを追って行った時の処理が違うので
修正する為のコストが多すぎます。
こんな事なら最初から全部自分で書けばよかった。
228:nobodyさん
11/12/12 16:38:37.11
こんなガタガタのフレームワーク使ったら、そうなるわな…
MVCの本当に基本フレームワークとしては普通に使えるから
それ以上の機能は自分で書いた方がいい
229:nobodyさん
11/12/12 17:46:20.08
てか、画像アップロードの仕組みってそんなに難しくないんだから
自分で作ればいいのに。フレームワーク使う前の関数・クラスとかあるだろ。
230:nobodyさん
11/12/12 17:57:52.56
フレームワーク使うと、何故かフレームワークの機能を使わなくちゃならない気分になるんだよな
俺もCakeのヘルパーとかプラグインとか最初試して、結果試した時間は全部無駄になったな
結局自分で作って元気に動いてるよ
231:nobodyさん
11/12/12 18:14:26.06
App::import()が遅いなら普通にinclude・requireすればいいのと一緒だな
232:nobodyさん
11/12/12 18:22:41.27
CakePHPで、DBが死んでる時はこっちのコントローラに分岐ってことをやりたいのですが
DB接続できないとモデルのコンストラクタがエラーになって、そこで処理が止まっちまいます
これを避けるにはcake以下を直接書き換えるしかない?
233:nobodyさん
11/12/12 22:02:32.47
pluginは有志開発だから、過剰な期待しちゃいかんよね
234:nobodyさん
11/12/12 22:15:59.53
メディアプラグインは2.0でうごくん?
235:222
11/12/12 22:21:11.57
>>229
セキュリティ的にちゃんとした物が書ける自信がなかったので
プラグイン使おうと思いました。
>>230
今回は裏目に出たけど、他人のソースを読めてよかったと思う事にします。
画像うpについては↓のプラグインがさくっと動いたので今回はこれで行く事にします。
URLリンク(github.com)
制作者様(?)の解説動画↓
URLリンク(zenpre.net)
では、名無しに戻ります。お騒がせしました。
236:nobodyさん
11/12/12 22:26:02.72
>>234
1.3でぼろぼろだから2.0は厳しいと思う。
作者がgithubで「自分の為に作ってるプラグインで、今忙しいごにょごにょ」
って言ってたから自分で修正できないならやめとけ。
237:nobodyさん
11/12/13 10:15:11.41
結局、誰の助言も聞かずに自分で探して終了か。
画像アップロード如きで「セキュリティが~」とか言っちゃう奴が
他人の作ったプラグインをすんなりと受け入れるというのが
おかしいとは思わないんだろうな。
頑なに意思を変えないなら、人に質問しなきゃ良いのに。
238:nobodyさん
11/12/13 11:31:08.57
なんか陰湿でキモい
239:nobodyさん
11/12/13 15:08:02.43
うかつに質問も出来ないこんな2ちゃんねるじゃ
240:nobodyさん
11/12/13 15:53:33.42
自分で分かるならわざわざ質問するなとは思わないか?
241:nobodyさん
11/12/13 16:19:08.03
>>239
ぽいずん
242:nobodyさん
11/12/14 00:20:14.28
>>240
自分の中で80くらいがんばって無理だったらネットで質問しつつ後の20の努力をする。
質問に回答もなく、後の20がんばっても無理だったら諦めて違う方法を模索する。
243:nobodyさん
11/12/14 01:34:17.83
いや、回答出してるじゃん
244:nobodyさん
11/12/14 17:39:11.08
CodeIgniterは覚えたからCakePHPも覚えたいと思うんですけど難しいよ
245:nobodyさん
11/12/14 17:40:34.96
モデルってデータベースに接続しないといけないの?
モデルに変数でデータを入れててコントローラーからそれらの変数を取得ってできないの?
246:nobodyさん
11/12/14 17:41:52.04
グローバル変数みたいなことか?出来ると思うけど。
あと、データベース使わなくても使えるよ。
247:nobodyさん
11/12/14 23:57:19.24
Railsのせいでモデル=データベースの1テーブルって
間違った考えが広まってしまったよな。
248:nobodyさん
11/12/15 00:06:20.83
4
249:nobodyさん
11/12/15 03:00:05.66
モデル名とコンポーネント名が重複してるとコンポーネントの方が優先されてモデルにアクセスできなくなるのって仕様?
UserモデルがあるところにUserコンポーネントも作っちゃうと$this->User->save()とかがundefined methodになってしまう
250:nobodyさん
11/12/15 11:44:42.72
同名ならそりゃそうだ
251:nobodyさん
11/12/15 11:46:40.70
またCakeの関数と重なるアクション名を付けてうまく動かなかったよ
すぐ参照できる一覧とかねーのかよ
つーかPHPてnamespaceないわけ?なにこの糞言語
252:nobodyさん
11/12/15 12:26:04.28
>>251
PHP5.3以降ではnamespace使えるけど、
Cake2.0は動作環境にPHP5.2系も入れてるので互換性のために仕方ない部分もあるのでは。
FuelPHPみたいに最初からPHP5.3以降で作られてるやつはコアでnamespaceサポートされてたりするし。
253:nobodyさん
11/12/15 13:24:42.38
PHPって後からつけたしつけたし、つぎはぎみたいな言語だし
フレームワークは苦労するわな
254:nobodyさん
11/12/15 17:12:04.31
>>250
やっぱそうなのか
一つのモデルに対して、同名のコントローラーとコンポーネントを作れると名前がそろっていて綺麗なんだがなあ・・・
たとえばUserModelに対してeat_cake_countをアップデートする処理とかはUserComponentに書きたい
そういうときはUsersComponentって名前にすればいいのかな
なんかその辺のコンポーネントの分け方(ネーミングルール)のセオリーみたいなのがよくわからないんだよね
UpdateComponentって分け方にすると、とんでもなく巨大なファイルになりそうだし
255:nobodyさん
11/12/15 17:32:59.52
それはモデルに書くべきじゃないの?
コントローラーは薄く、モデルは厚く
256:nobodyさん
11/12/15 18:14:13.62
>>251
せめて
function actionIndex()
function actionView()
みたいな作りになってればいいんだけどね。
257:nobodyさん
11/12/16 13:25:33.43
Modelの中身が突如出力されだしたんですが消し方知ってる方いませんか?
URLリンク(www.dotup.org)
258:257
11/12/16 13:34:08.67
自己解決 <php がありませんでしたw
259:nobodyさん
11/12/16 19:10:30.97
1つのレコードの1つのカラムを更新したい場合、
findで目的のレコードを取り出してsaveするのと
updateAllで1つだけ更新するのとでは、どちらが速いですか?
260:nobodyさん
11/12/16 21:55:12.50
<php じゃ動きません
261:nobodyさん
11/12/16 22:46:31.07
一人で開発する分にはフレームワークいらない
CakePHPだと逆に遅くなる。
PHPは頭よりも手を動かしてなんぼだと思う。
フレームワークは頭を動かす比重が大きくなる。
設計部分が特にそう。
極端に言えば変数が上書きされないようクラス化しておけば実運用では問題ない。
スパッティーコードにもメリットはあって頭使わなくても最速でコーディングできる。
関数の共通化を考える時間があれば手を動かしてた方がいい。後でリファクタリングで十分。
262:nobodyさん
11/12/16 23:38:25.39
一生のうちPHPで書くアプリケーションが3つほどまでで、書き直しを一切しないというなら完全に同意してもいい
263:nobodyさん
11/12/17 00:03:51.26
>スパッティーコードにもメリットはあって頭使わなくても最速でコーディングできる。
ワロタ
学生の課題ならそれでいいんじゃね
264:nobodyさん
11/12/17 06:04:20.02
セッションが設定した時間内で切れてしまうのですが、
原因として何が考えられますか?
core.phpでは以下のようになっています。
Configure::write('Session.timeout', '31536000');
Configure::write('Session.start', true);
Configure::write('Security.level', 'low');
ちなみに、サーバーにアップロードすると自動的に切れてしまうのですが、
ローカルでは大丈夫(もしくは切れるまでの時間が長い)なんですよね・・・
265:nobodyさん
11/12/17 06:11:18.00
Configure::write('Session.save', 'php');
Configure::write('Session.checkAgent', true);
あと関連しそうな設定は上記になっています。忘れていました。
他のsession関連の設定はコメントアウトされています。
266:nobodyさん
11/12/17 09:24:53.68
1つのレコードの1つのカラムを更新したい場合、
findで目的のレコードを取り出してsaveするのと
updateAllで1つだけ更新するのとでは、どちらが速いですか?
267:nobodyさん
11/12/17 11:42:27.08
>>266
findする意味がわかんないんだけど。
saveするだけが一番早いだろうに。
268:nobodyさん
11/12/17 14:55:06.91
select id from posts where user_id = 3;
update posts set title = 'hogehoge' where id = 5;
と
update posts set title = 'hogehoge' where user_id = 3;
さてどっちが速いかね
269:nobodyさん
11/12/17 15:59:01.03
user_idがユニークでインデックスあたってれば、後者のほうが速そう
270:nobodyさん
11/12/17 18:54:27.72
>>267
findしないと、idがわからない
271:nobodyさん
11/12/17 18:58:31.20
>>268
後者が速いよな。
CakeではupdateAllか。それ以外方法ないよな?
272:nobodyさん
11/12/17 19:59:48.04 6Ny+9Cbj
エレメント使うと Starting to render ってHTMLにコメントが入っちゃうんですけど
これ消す方法ないですか?
273:nobodyさん
11/12/17 21:10:11.26
>>272
debugが0なら消える
274:nobodyさん
11/12/18 04:48:44.53 9T9v3cA3
CakePHP2.0 + SQLite3で
arning (512): _cake_model_ cache was unable to write 'default_"xxx"' to File cache [CORE\Cake\Cache\Cache.php, line 310]
みたいな警告が出るんですが同じ症状の人いません?
275:nobodyさん
11/12/18 18:19:44.28
>>223
どこが遅いかの原因解明をまず行うべきです。
SQLレベルなのか、画面描画なのか、CakePHPのせいなのかetc
ユーザー数増加によるアクセス過多も問題になることはありますね。
根本的に解決しない可能性もあります。
276:nobodyさん
11/12/18 18:27:15.86
>>259
やりたい事をそのまま2つの処理で書いて、debugでSQLが出力されますので、
それをMySQLのオプティマイザーなどの時間が計測できる機能で実際に試してみては?
レコード数の多い・少ないにも関連しそうなので、
テストする際には1か月後、1年後などの予測されるレコード数で実行することを忘れずに。
277:nobodyさん
11/12/19 21:46:59.93
HABTAMで関連付けられた、投稿-タグのテーブルの検索ってどうやるんでしょうか。
やりたいことは、特定のタグを持った投稿を取得する、という単純なものです。
配列は以下のようになっていて、ConditionにTag.name => $tagname などとしても取得できませんでした
Array
(
[0] => Array
(
[Post] => Array
(
[id] => 60089
[message] => testtest
)
[Tag] => Array
(
[0] => Array
(
[id] => 8
[name] => タグ1
[PostTag] => Array
(
[id] => 26
[post_id] => 60089
[tag_id] => 8
)
)
[1] => Array
:
:
)
)
278:nobodyさん
11/12/19 22:57:47.33
>>277
Set::extract使うべし
279:nobodyさん
11/12/20 05:19:51.29
え、そういう問題?
280:nobodyさん
11/12/20 11:14:14.85
>>278
SQLでとってくる方法はないですか?
「タグ1と関連づいた投稿を全て取得する」というfindができれば教えてほしいんですが、、、
281:nobodyさん
11/12/20 11:48:28.25
Cakeってさ、findでデータ取ってきた時に
モデル名のキーが頭に付くのがジャマでしょうがないよね
仕方ないからいつもこうやってる
$data = $this->find( ....
$data = $data['モデル名'];
282:nobodyさん
11/12/20 12:16:02.08
>>277
findするときに、joinsオプション使って明示的にJOINする
283:nobodyさん
11/12/20 12:36:01.65
>>281
よくやる。
284:nobodyさん
11/12/20 14:59:31.58
>>281
俺は↓する
$data = $this->User->find('all');
$user_data = $data['User']
これだとどのモデルか分かりやすいし。
ただし、アソシエーション使ってる場合などは、適切でないかも。
285:nobodyさん
11/12/20 16:07:14.62
>>281
$this->data = $data
ってやると、formヘルパーの値valueに自動でセットするためにキーがついてからね。
おれはあんまり気にしたことがない。
286:nobodyさん
11/12/20 17:30:41.74
>>284
find('all');ってテーブルの全レコード取り出してるの?
あんまりそういう機会ないなあ
あとfind('all')だと配列が返ってくるから、2行目はエラーになるんじゃないか
287:nobodyさん
11/12/20 17:36:47.14
>>281
じゃまくせえとは思うけどアソシエーションを考えると仕方ないなと思ってそのまま使ってる
288:nobodyさん
11/12/21 08:45:16.75
CakeEntity使えよ。色々捗るぞ
289:nobodyさん
11/12/21 10:15:07.10
>>264だけど、
Configure::write('Session.timeout', '31536000');
↑これってセッションファイルが破棄されるまでの時間じゃないのかよ!!!ややこしすぎ
290:nobodyさん
11/12/21 13:07:35.76
>>286
あくまで例を書いただけだが・・・
291:nobodyさん
11/12/21 14:24:31.11
>>288
紹介している人のブログ見たけど、いまいち何が捗るのか分からん
別に配列で指定しても見た目で分かるじゃん。
292:nobodyさん
11/12/21 14:41:31.77
そんなんだからぺちぱーなんだよ
293:nobodyさん
11/12/21 14:45:23.68
ぺちぱーってなんですか
294:nobodyさん
11/12/21 14:57:27.19
PHPer
295:nobodyさん
11/12/21 23:18:44.66
パーラー(Pearler)ほど洒落た言い回しではありませんね。
296:nobodyさん
11/12/21 23:35:54.39
APIにアクセスしたりするメソッドってどこに書けばいい?
複数のモデルとコントローラーから利用する予定だけど、クラスとしてLibに置いた方がいいのか
APIからデータを持ってくるところまでモデルとして扱っちゃった方がいいのかで迷っている。
URLリンク(www.multiburst.net)
この人はモデルに書いてるけど、外部のライブラリを使うわけで無ければモデルとして書いちゃった方がいいのかな。
297:nobodyさん
11/12/22 16:13:09.95
ログインの実装のデファクトスタンダード的な方法ってあるの?
ログイン維持しておくのはセッションで?クッキーで?
セッションなりクッキーにユーザーIDだけ保存する?ユーザー情報も保存しておく?
298:nobodyさん
11/12/22 16:20:05.12
ユーザー情報って具体的に何?
299:nobodyさん
11/12/22 17:12:31.58
セッションで。名前とか権限とかよく使いそうなデータもいっしょにセッションに入れておく。
300:nobodyさん
11/12/22 17:51:46.44
AuthComponentだと、usersテーブルの情報だけ持ち回してくれるんだっけ?
その都度SQL叩いてるんだったか、どっちだったか忘れた。
301:nobodyさん
11/12/22 18:58:21.21
ってかCakePHPってアプリケーションにアクセスするだけで
セッション発行してるけど、なんのために?
中規模のサイトだったらsessionファイルが何万も作られて怖いんだけど
302:nobodyさん
11/12/22 21:04:43.88
>>301
親切心での自動発行じゃ無いかな
いらないんならSession.startをfalseにしておこうぜ
303:nobodyさん
11/12/22 21:12:30.05
>>302
falseにしたら
$this->Session->setFlash
のメッセージが表示されなくなったニダ
304:nobodyさん
11/12/23 00:56:07.87
というか、2.0だとSession.startの設定出来なくなった?
305:nobodyさん
11/12/23 12:30:12.44
俺も2,0にしたいけど書き換える部分めっちゃあるだろうからめんどうだわ
306:nobodyさん
11/12/23 12:56:48.08
なんでCakeなんて使って作っちまったんだろうなあ
今更変えられないし
307:nobodyさん
11/12/23 13:04:59.22
>>306
変えられないのはお前のせい。
正しくフレームワークを使っていれば
自分の作ったコードとフレームワークを分離させられる。
308:nobodyさん
11/12/23 13:24:47.98
いやいやいやw
309:nobodyさん
11/12/23 13:33:57.13
時間と手間をかければできる
310:nobodyさん
11/12/23 14:26:04.13
1.3使ってる、それなりに大きなサイトあるだろ。
そのサイトで問題ないんだから、使い方が悪いだけだ
311:nobodyさん
11/12/23 16:12:44.23
ふと気づいたんだけど、1.2系でさえまだメンテナンス続いてるのね
最終版と銘打ったものが出ない限り、クリティカルなバグを含んでなければコアをアップデートする気になれない俺は無精すぎる
312:nobodyさん
11/12/23 16:19:01.72
動いてるシステムに手を入れたくない気持ちはよく分かる。
313:nobodyさん
11/12/23 16:46:26.74
そうそう
寝た子を起こすようなことになってしまったら嫌だし
314:nobodyさん
11/12/23 17:12:11.79
メジャーバージョンは動いているシステムだとアップデートするのはきついね。
マイナーバージョンは以前あったセキュリティコンポーネントのバグとかあるから注視しないといかんと思うけど。
315:nobodyさん
11/12/24 08:41:32.33
1.3.13を使っています。
ビューキャッシュって$autoLayoutがfalseの場合、
キャッシュファイルが生成されません。
レイアウトを使用しない場合、キャッシュが生成されないのでしょうか?
316:nobodyさん
11/12/24 15:39:27.27
>>315
その状況でのみキャッシュ生成されないんならそうなんじゃない?
layout/empty.ctpとか作ってコンテンツだけを単純に出力するレイアウトにして適用すれば回避できそうだけど
317:315
11/12/24 17:08:20.11
>>316
ありがとうございます。仮のレイアウト作る方法で出来ました。
ただビューキャッシュについては上手く行かないことが多くて、
例えば、core.phpに
Cache::config('default', array('engine' => 'File', 'prefix' => 'aaa_'));
としてもキャッシュファイルにprefixが付きません。
pathを指定しても、指定した箇所にファイルが生成されず、
普段通りapp/tmp/cache/viewsに作られるだけだし・・・
1.3.13をダウンロードして初期設定以外変えてないのですが
どうにもキャッシュ設定の変更が上手く行きません。
ググっても問題を見つけられないし・・・
分かる方いたらアドバイスお願いします。
318:nobodyさん
11/12/25 03:30:55.85 S4Adtqyt
CakePHP2.0でSessionの設定関連がcore.phpに見当たらないんですが、
セッションの有効期限を変更するのってどこをいじればいいんでしょうか?
319:318
11/12/25 03:57:41.58
自己解決。
一箇所に固まったのね。
320:nobodyさん
11/12/25 17:29:14.64
PaginatorHelperって使ってる?
自分で作るよりそんなに楽なの?
321:nobodyさん
11/12/25 21:18:29.33
>>320
標準であるから使ってる。既にあるものを再作成しちゃいけない。
322:nobodyさん
11/12/25 22:46:46.49
>>320
かなり楽
323:nobodyさん
11/12/26 00:40:12.74
SQL文のパラメーターを自分でエスケープする時ってmysql_real_escape_stringでいいんだよね?
conditions に array("MATCH(title) AGAINST ('".mysql_real_escape_string($keyword)."')");
みたいな感じに書くと「DBに接続できてないからmysql_real_escape_stringは使えないっすよ」的なエラーが出るんだけどどうしたらいいんだ
324:nobodyさん
11/12/26 08:51:40.09
>>323
cakeディレクトリ以下をmysql_real_escape_stringでgrepすることぐらい思いつかなかったの?
325:nobodyさん
11/12/26 08:53:39.81
>>323
cakeディレクトリ以下をmysql_real_escape_stringでgrepすることぐらい思いつかなかったの?
326:nobodyさん
11/12/26 19:22:58.29
>>323
App::import('Sanitize');
Sanitize::escape($keyword); とか
327:nobodyさん
11/12/27 02:42:47.86
>>321,322
でもDBの値を変更して出力する場合には
対応してないですよね?
328:nobodyさん
11/12/27 11:15:57.24
>>327
ページネイトでDBの値を変更するってどういう用途?
329:nobodyさん
11/12/27 13:24:45.98
webrootをpublic_htmlにして、それ以外のフォルダはドキュメントルートの外に起きたい場合はどのように設定するのでしょうか?
330:nobodyさん
11/12/27 13:29:34.03
↓のように見える件について報告はしたけど返信もこないんですけど
たいしたことないから修正されないんですかね?
実際に個人情報とか漏れてるわけでもないので別に問題ないっちゃ問題だいけど。
ちょうどフレームワーク名に使おうか迷っててcakephpにも興味あるんですが
cakephpてurlにクエリをつけるとこういうページが表示されるものなんでしょうか?
URLリンク(mystone.aeriagames.jp)
331:nobodyさん
11/12/27 14:05:11.21
うわー、urlに?を含めたこと無かったからびっくり。
332:nobodyさん
11/12/27 16:06:32.48
>>324-325
以前は入っていたような気がするんだけれども、2.xになってから使われてないっぽかったので、よくわからんので質問したんだ
説明不足ですまぬ
>>326
さんくす!
333:315
11/12/27 17:42:17.16
どなたか>>317についてはわかりませんか?
もう何日もググって試してやってますが、
ビューキャッシュファイルにprefixが付きません・・・
334:nobodyさん
11/12/27 19:36:48.08
>>329
webroot/index.phpでパスを指定する
335:nobodyさん
11/12/28 02:02:45.93
>>328
DBから一覧を取得してその中の日付のフォーマット変えたり、
0か1で入っている性別を男と女に変換したりとか。
336:nobodyさん
11/12/28 07:03:30.26
>>330
これは特殊例だな
多分トップページだけCakeのルーティングを外しているか特殊なmod_rewrite書いたりしてるはず
ソース読めないんで確かなことは言えないけど。
まあそもそも1.2の初期バージョン使ってるようなサイト参考にされても困る
337:nobodyさん
11/12/28 09:44:18.78
>>335
1.3ならvirtualField使った方が良いのでは。
日付のフォーマット変えるのは自分は表示する時にしてるけど。
338:nobodyさん
11/12/28 09:59:07.49
>>335
DBの値を変更って、SQLのINSERTとかUPDATEかと思った。
DBから引いたデータを加工するなら、viewでやろうがmodelでやろうが好きにすればいい。
そのあたりはpaginateでもfindと同じこと。争点にする意味がわからん。
339:nobodyさん
11/12/28 12:59:51.45
Cakeはデータがただの配列だから、
こういうときつらいよな
Yiiはオブジェクトなんだっけ?
340:nobodyさん
11/12/28 14:11:35.72
Cake使ってるWebサービスはあるけど、アプリはあるの?
341:nobodyさん
11/12/28 14:16:12.40
アプリってなんぞ
342:nobodyさん
11/12/28 14:43:40.02
意味不明ワロタ
343:nobodyさん
11/12/28 15:50:07.23
mixiアプリとかのことかな?
344:nobodyさん
11/12/28 16:36:45.22
すみません。webアプリのことです
345:nobodyさん
11/12/28 17:11:51.85
webサービスとwebアプリの違いは?
346:nobodyさん
11/12/28 17:18:26.85
wikipediaによると
・Webサービス(ウェブサービス)とは、HTTPなどのインターネット関連技術を応用して、SOAPと呼ばれるXML形式のプロトコルを用いメッセージの送受信を行う技術、またはそれを適用したサービス。
・ウェブアプリケーション(Web application)は、ウェブの機能や特徴を利用したアプリケーションソフトウェアのことである。
ウェブアプリケーションの一例としては、ウィキペディアなどで使われているウィキやブログ、電子掲示板、銀行のインターネットバンキング、証券会社のオンライントレード、電子商店街などネット販売のショッピングカートなどを挙げることができる。
347:nobodyさん
11/12/28 19:42:34.74
その定義通りだとして(違和感はあるが)、逆にWEBサービスとして使われてるのを見たことないな
348:nobodyさん
11/12/28 20:23:56.64
>>335
v2.0でもvirtualfieldだな
Paginatorのソートは、sqlに投げてるだけっぽいから、
加工後の値でソートしたいなら、virtualfield使うのが一番楽
349:nobodyさん
11/12/28 22:42:26.99
SOAPやRESTfulな環境で使うイメージがわかない。
350:nobodyさん
11/12/28 22:51:10.97
SOAP使ってないとWebサービスにならないのか
って、んなわけねーだろ!
351:nobodyさん
11/12/29 01:39:46.15
俺は↓な風に思ってたけど・・・
Webサービス→mixiとかtwitterとか
Webアプリケーション→OpenPNEとかWordpressとか
352:nobodyさん
11/12/29 03:10:25.40
Webサービス∈Webアプリケーション
353:nobodyさん
11/12/29 04:32:43.50
$this->User->save(array(
'id' => $user['User']['id'],
'lastlogin' => date("Y-m-d H:i:s", time()),
));
↑こうやってlastloginにユーザーのログイン時間を保存しているんですが、
ローカルではちゃんと保存されるのに、
全く同じコードをアップロードした本番サーバでは
保存されないのはなぜ??
354:nobodyさん
11/12/29 08:33:32.46
databaseの設定ミスとかじゃないよね?
355:nobodyさん
11/12/29 10:49:12.41
webrootをpublic_htmlに変更し、それ以外を全部ドキュメントルートの上に置くというのは難しいですか?
356:nobodyさん
11/12/29 10:58:31.41
MVCについてお聞きしたいのですが
学年
クラス
生徒
を管理するときに
コントローラ・・・学年
アクション・・・・クラス
id・・・・・・・・・・・生徒
とするのか
コントローラ・・・学年/クラス
アクション・・・・・生徒
とするのどちらがよいでしょうか?
前者の場合はモデルへデータを追加するだけで管理できますが
紺者の場合はモデルへデータの追加とアクションの追加を行いますが
どちらが定番といえますか?
357:nobodyさん
11/12/29 12:02:14.47
>>353
本番サーバとやらのログを貼らないのはなぜ??
358:nobodyさん
11/12/29 12:14:03.44
>>355
難しくありません。
359:353
11/12/29 12:45:18.65
>>357
ログとはどのログのことでしょうか?
360:nobodyさん
11/12/29 12:54:07.59
>>356
まともな日本語でおk
「管理」の用法が特殊で意味がわからない
あと、MVCについて誤解してないか?
361:nobodyさん
11/12/29 12:59:47.56
>>359
webサーバ、データベース、cakeあたりのログ
362:nobodyさん
11/12/29 13:01:26.83
>>360
分からない奴は黙っていたほうが良い
恥を書いて荒らしなる道に行くから
363:nobodyさん
11/12/29 13:33:28.56
わからないままは恥ずかしいので、
是非教えてください
荒らす気はありません
364:nobodyさん
11/12/29 14:44:26.04
>>356
その例なら学年とクラスは一緒じゃないか?
カテゴリ・サブカテゴリの関係性だろ?
365:nobodyさん
11/12/29 17:29:24.05
>>355
public_htmlの位置が変えられない環境ならこの辺参考にがんばれ
URLリンク(massat.jp)
>>356
その例だと、学年hasManyクラス、クラスhasMany生徒、のデーターベース構成の話になってしまうような
ちょっとMVCを誤解している気がする
366:nobodyさん
11/12/29 17:41:41.88
なかなか斬新なMVCの解釈だなw
367:nobodyさん
11/12/29 19:59:03.95
年末で暇なのか、賑わってるなー。よきかな
368:nobodyさん
11/12/29 20:06:56.58
>>356
学年、クラス、生徒は全部モデルだよ。
正確に言えば、モデルが扱うデータとその属性だよ。
ま普通に考えれば、生徒がたくさん入っている生徒達データがあって、
学年とクラスは、生徒一人ひとりの属性。
369:nobodyさん
11/12/29 20:09:49.58
コントローラはURLとモデルが持っているメソッドへの変換を行うものと考えればいい。
そして、メソッドの戻りをビューに変換する役目も持っている。
コントローラはあくまでURLとデータの変換をするだけで
学年とかクラスとかそんなものを扱う所ではない。
370:nobodyさん
11/12/30 03:20:30.57
>>356は俺たちの煽り耐性を試してるんだと思う。
371:nobodyさん
11/12/30 11:04:12.85
MVCを勘違いしていることはよく分かる。
372:nobodyさん
11/12/30 12:04:16.43
MVCを理解していない人は非常に多いが、こういう勘違いをする人はレア
373:nobodyさん
11/12/30 12:56:24.02
cookbookさえ読めば解決だと思う
374:nobodyさん
11/12/30 13:57:03.73
MVCでラーメンは作れますか?
375:nobodyさん
11/12/30 14:07:23.64
cookpadさえ読めば解決だと思う
376:nobodyさん
11/12/30 14:08:22.55
MVCはなくても電気は足りるよ
377:nobodyさん
11/12/30 15:17:13.68
MVC 2014年10月から引き上げ決定
378:nobodyさん
11/12/30 15:37:15.23
MVCが異音出してて壊れそうなので買いに行きたいんだけど、そろそろ値段は落ち着いてるのかな
379:nobodyさん
11/12/30 23:17:06.65
おれが、おれたちがMVCだ!
380:nobodyさん
11/12/31 04:56:39.85
MVCとは違うのだよ、MVCとは!
381:nobodyさん
11/12/31 07:32:25.22
MVCであることを強いられているんだ!
382:nobodyさん
11/12/31 07:56:47.38
早くMVCになりたい!
383:nobodyさん
11/12/31 07:57:13.90
MVC48がレコード大賞だってよ
384:nobodyさん
11/12/31 08:39:39.24
さあ、ケーキ作りに戻ろうか。
385:nobodyさん
11/12/31 19:39:46.96
結局>>362が一番アホだったなw
386:nobodyさん
12/01/02 13:43:43.74
2
387:nobodyさん
12/01/02 16:43:04.06
新年だし1.3系のシステムを2.0系に作り直してみるぜ
388:nobodyさん
12/01/02 17:00:58.05
それは貴方にいかなる利益をもたらすのか?
389:nobodyさん
12/01/02 17:34:39.76
勉強にはなる。
390:nobodyさん
12/01/02 17:59:16.89
「使わない機能を切る」みたいな機能があればいいのにな。
なんでもかんでも読み込むから重くなるんだと思う。
391:nobodyさん
12/01/02 18:45:39.31
>>388
他にも2.0で新規に作ったシステムがあって、それと同時に開発してるから、バージョンが違うとややこしい
あとコードが汚いからイチから書き直したいというのもある
いずれにせよ、古くなったバージョンからはさっさと離れたい
392:nobodyさん
12/01/02 18:47:28.84
2.0って?p=1みたいな感じでもキャッシュは効くのかな
393:nobodyさん
12/01/02 20:59:19.72
1から作りたいなら、いっそのことCake風オレオレフレームワークを作れよw
俺はそんな感じの作ってるよ。
394:nobodyさん
12/01/02 21:23:42.17
cakeやるんだったらbakeって覚えとかなきゃマズい?すげぇかったるそうなんだけど。
395:nobodyさん
12/01/02 22:01:40.40
楽できなくてもいいなら問題ない
396:nobodyさん
12/01/02 22:15:37.39
>>395
まぁ使う方が楽なんだろうけど、やんないならやんないで別にいいって部類ならスルーしちまおうかと思って。
397:nobodyさん
12/01/02 22:19:15.79
てか、bakeやらなくても1回作った物をコピーすれば良いだけじゃん。
同じような箇所が結構あるだろ
398:nobodyさん
12/01/02 23:08:17.97
>>394
cakeに用意されているサンプルデータでいいから、1回はbake体験した方がいい。
ひな形とはいえ、MVC全部を作ってくれるのは助かる。
399:nobodyさん
12/01/03 00:17:03.05
bakeやった方が良さそうという事がわかった。サンクス。
400:nobodyさん
12/01/03 03:59:04.88
フォームヘルパーをカスタマイズしたいときって多いと思うんだけど、どうやってる?
1.helpers/form.phpをapp以下にコピーして改造
2.FormHelperを継承したMyFormHelperを作成
1→Cakeのバージョンアップ時に問題
2→ビューでの変数名がFormじゃなくなるのが嫌
401:nobodyさん
12/01/03 08:57:05.67
>>400
半角スペースは投稿時に省略される。
>.2.FormHelperを継承したMyFormHelperを作成
今回はこっちを採用した。html5の input email を使いたくて、FormHelperを継承した。
402:nobodyさん
12/01/03 13:58:48.66
JavaScript系のヘルパー使うのって普通にjQueryのコード埋め込むのと比べてメリットありますか?
403:nobodyさん
12/01/03 15:17:25.79
PHPファイルで使える
404:nobodyさん
12/01/04 00:34:45.46
結局MyFormHelperをビューで$this->Formという変数名で使うことはできないの?
405:nobodyさん
12/01/04 00:43:36.30
>>404
namespaceでも使えば出来るんじゃないの?
406:nobodyさん
12/01/04 09:38:54.30
>>404
URLリンク(github.com)
407:nobodyさん
12/01/04 20:46:12.62
誰かAppModelをオーバーライドして
複合主キーにも対応させてくれないか?
408:nobodyさん
12/01/04 22:17:55.77
断る
409:nobodyさん
12/01/04 23:27:58.25
みんなfunctionの頭にpublicってつけてる?
2.0のブログチュートリアルを見るとつけてたりつけてなかったりだけど、
何も書かなければデフォでpublicだから省略していい気がするんだけど、
書いた方が(見栄え的に)お行儀のいいコードだったりする?
URLリンク(book.cakephp.org)
410:nobodyさん
12/01/05 00:24:31.76
>>409
一応CakepPHPのコーディング規則ではそこまで書いてないので、好きにすればOKかと。
ただし、メソッド名の方に規則があって、protectedの場合はメソッド名の先頭をアンダーバー、
privateの場合はメソッド名の先頭をアンダーバー2つ。
URLリンク(book.cakephp.org)
411:nobodyさん
12/01/05 01:57:28.20
変数は必ずpublic/privateつけて、メソッドはpublicなら省略するのが俺ルール。
つけたほうが一貫性があっていいとは思うんだけど、
public function 関数名
と書くと、public functionが長すぎて、ぱっと見たとき関数名に目が
行きにくいんだよな。変数は常にpublic/private意識しておくけど、
メソッドはほぼpublicで問題ないし。
412:nobodyさん
12/01/05 02:06:02.96
>>410 >>411
サンクス
見た目すっきりさせたいしpublicは無しで統一するわ
413:nobodyさん
12/01/05 02:32:44.05
public付けないと気持ち悪くね?
1.3時代からpublic付けてたんだが。
414:nobodyさん
12/01/05 12:39:38.01 6HbHp9Xn
CakePHPを勉強し、自前のウェブサイトを構築したおかげで、ウェブサービスの企画があっという間できるようになった。
頭の中に、ウェブサービス構築のための常套手段が植え付けられたからだと思う。
CakePHPというよりもフレームワークを使用するメリットと言った方が適切かな。
415:nobodyさん
12/01/05 17:48:11.25
2.0になって、404吐かせるのがcakeErrorからthrow new NotFoundException()に変わったせいか、
AppControllerのbeforeFilterでsetした値が404の時にビューに反映されないようになった?
全ページでヘッダー部分に表示させてる共通データの部分が、404の時だけundefined variableになってしまう
SQLログ見るとデータ自体は取ってきてるみたいだけどsetしたはずのデータがビューに反映されない
416:nobodyさん
12/01/05 17:52:46.12
>>413
コア見るとpublicつけてるみたいね
コアと共通表記にしたいのならpublicつけるべきだと思う
417:nobodyさん
12/01/05 21:37:19.55
>>415
ビューがClassRegistyに登録されなくなったから、ビューの別インスンタンスが生成されて
それが使われる。
あとデフォルトのExceptionRenderer(というか、CakeErrorController)はbeforeFilter()まで実行しない。
beforeFilterで例外飛ばすときもあるじゃん?
というわけでExceptionRendererを継承したクラスを作ってそれを使うのがお勧め。
_getController()でもオーバーライドすればいいじゃないの。
418:nobodyさん
12/01/05 22:25:09.07
>>417
ありがとう
なんか取り回しが悪くなった気がして仕方ないがw
419:nobodyさん
12/01/06 01:07:10.01 yz+Wi1W6
Model::find('all')のfieldsにサブクエリを使いたいんだけど
どうすればいいですか?
420:nobodyさん
12/01/06 06:11:17.85
セッションファイルってどれだけ溜めてもいいもん?
云万になるとlsが遅くなる気がするけど、
PHPがセッションファイルを直接取ってくるんならとくに大丈夫なのかな
421:nobodyさん
12/01/06 07:36:47.81
>>420
全列挙する必要がある ls には O(N) 必要
それに対して目的のファイルが判っている場合は O(log N) に収まる
古いファイルシステムだとまた話が変わってくるが
422:nobodyさん
12/01/06 07:42:05.08
>>421
100万あっても無視できる程度になりそうですね
423:nobodyさん
12/01/06 09:12:24.69
ファイルってインデックス化されるん?
そらされるか…
424:nobodyさん
12/01/06 10:03:42.70
インデントはスペース派なんだけど、
Cakeはタブだよね?
スペース派の人どうしてる?
Cakeに合わせてる?
425:nobodyさん
12/01/06 11:54:55.28
プロジェクトや会社によってはPEAR規約(っぽいもの)で開発してたりするよ
426:nobodyさん
12/01/06 14:42:53.01
cakephp2.0を置いてHelloコントローラとindexアクションとhelloビューを作って
URLリンク(localhost)にアクセスするとhelloビューの内容が読み込まれましたが
URLリンク(localhost)にアクセスするとcakephpのreadme見たいな感じのページがでてしまいます
URLリンク(localhost)にアクセスした場合のデフォルトのコントローラをhelloにしたいのですがこれはどこのファイルに設定するのでしょうか?
427:nobodyさん
12/01/06 15:56:30.42
routes.php
428:nobodyさん
12/01/06 23:03:59.16
>>424
自分で書いたコードはスペースインデント
routes.phpとか既に用意されているファイルはタブインデント
一人プロジェクトだから細かいことは(゚ε゚)キニシナイ!!
429:nobodyさん
12/01/07 08:27:20.92
携帯からアクセスがあったときは、
app_controller の before_filter で
header('Content-Type: application/xhtml+xml; charset=Shift_JIS');
という風にHTTPヘッダの content-type と charset を設定して、本来
Content-Type: application/xhtml+xml; charset=Shift_JIS
このヘッダが送られるはずが、
Configure::write('debug', N);
この設定を、0(デバッグ無し)に変更すると、
Content-Type: text/html
と、出力されてしまう。
(3 にするとちゃんとxml用のヘッダが送られるのは確認済み)
このケースが逆なら、手動でヘッダを送る前にデバッグ情報が送られているのかなと思うのですが、
デバッグ無しにすると、別のヘッダが送られているのが不思議です・・・。
どのファイルのどこでHTTPヘッダが送られているかって確認できましたっけ?
430:429
12/01/07 08:33:08.99
大事なことを言い忘れていました。
>>429の現象はさくらの本番サーバにアップしたときにのみ起こります。
開発環境のlocalhostではdebugの値に関係なく、
意図したHTTPヘッダが送られています。
アドバイスいただければ幸いです
431:nobodyさん
12/01/07 12:27:32.35
一部のアクションでしか使わないコンポーネントを全部ロードするのは無駄ですが
アクションに応じて、ロードするコンポーネントを変更することはできないのでしょうか?
432:nobodyさん
12/01/07 13:24:04.51
>>431
App::importは?
URLリンク(book.cakephp.org)
433:nobodyさん
12/01/07 13:52:12.56
>>432
リンク先は違う情報だったけど要は
App::import('Component', 'Mailer');
$Mailer = new MailerComponent();
$Mailer->initialize( $this );
$Mailer->startup( $this );
ってやればいいのかな?
434:ひろみちゃん
12/01/07 17:28:25.09
>>431
2.0からコアの機能で動的に読めますが、1,x系は拙作のHackプラグインを使うことによって
期待する機能が提供されます。
URLリンク(github.com)
Alias->loadComponent('Mailer');
startupするかは第3引数にtrueを指定すればOKです。
ドキュメントが整備されてないのですが需要があればします。
あとプラグイン名が厨二病臭いですが厨二病なので諦めてください。
435:nobodyさん
12/01/07 17:52:24.37
>>434
ありがとうございます
拝見しましたが、思ったより長いですね
>>433のやり方じゃ駄目で、このようにきっちりやるべきなんでしょうか
436:ひろみちゃん
12/01/07 18:00:20.89
>>435
短期的には>>433のやり方でも問題ないです。
メールのマネージャー程度のコンポーネントならまず大きな問題は起こりえないでしょう。
長期的に見れば、2.0で導入されるやり方に近いほうがより良いと思います。
437:nobodyさん
12/01/07 18:15:00.53
わかりました、ありがとうございます
コードはありがたくいただきます
438:nobodyさん
12/01/07 21:17:09.01
2.0でこのAdminAuthComponentがちゃんと動いている人いる?
URLリンク(www.1x1.jp)
開発環境では問題なかったんだけれども、レンタルサーバーに上げてみたら
> header("WWW-Authenticate: Basic realm=\"Please Enter Your Password\"");
のところが効いてないのか、Basic認証のダイヤログが出ずにAuthorization Requiredと表示されてしまう。
HTTPヘッダーを見てみたところ、開発環境(正しく動いている環境)では
>HTTP/1.1 401 Authorization Required
となっているのが、本番(正しく動かない環境)では
>HTTP/1.1 200 OK
が出てしまっている。
ちょっと>>429の状況に近いかも知れないけど、自分の方はdebugの値に関係なくheaderがちゃんと送信されてない感じ
439:438
12/01/07 21:49:27.70
すまん、自己解決
CGI版のPHPだとBasic認証効かないのね
440:nobodyさん
12/01/07 22:13:13.36
2になってからちょっと軽くなった?
1.xと比べてシャキシャキ動いてる気がする
441:nobodyさん
12/01/07 22:51:46.73
2.0.5ぐらいになってるけど、バグは減った?
442:nobodyさん
12/01/07 23:02:34.52
なに、動きが軽くなるなら乗り換えたいが
443:nobodyさん
12/01/08 01:17:09.40
何となく軽いと言うだけでベンチを取ったわけじゃないので話半分に聞いてくれ
444:nobodyさん
12/01/08 03:29:35.66
そうか、ベンチ取った人とかいないのかな
445:nobodyさん
12/01/08 14:39:21.96
URLリンク(doophp.com)
dev版だけど、多少軽くなってるみたいだな
446:nobodyさん
12/01/09 00:29:39.74 pfm1AGOc
controllerでfindするときのorderを
'order' => array('Person.secondname ASC')
のようにしているんですが、複数のorder条件をつけるのはどうしたらいいですか?
具体的には苗字順に並べるようにしてるんですが、苗字がない人は下の名前(Person.firstname)を参照して五十音で並べたいです
447:nobodyさん
12/01/09 00:37:51.69
自己解決しました
$options['order'] = array(
'Person.secondname, Person.firstname ASC'
);
で$optionsをうしろにくっつければいけました
448:nobodyさん
12/01/09 00:53:14.64
>>446です>>447では解決してませんでした。。
449:nobodyさん
12/01/09 01:58:03.73
orderがarrayになってるんだから分かるだろ?
450:nobodyさん
12/01/09 06:19:15.24
コントローラーで
function index($param){
とアクションを作っていて、URLで
コントローラー名/index/パラメータ
と呼ばすに
コントローラー名/パラメータ
とやっても動くようにするにはどうすればよいでしょうか
ぐぐるとRoutesを使う例が出てきましたが、それだと他のアクションが使えなくなるようでした
アクションとして存在しない時のみ、indexのパラメータとして扱うことはできないでしょうか
451:nobodyさん
12/01/09 08:57:47.96
>>450
$paramが数値なら、ルーティング規則でその部分に(数値であることの)正規表現を書けば
いける。詳しくはぐぐって。
だめだったらカスタムルートオブジェクトを作成してひーこらするしかない。頑張って。
452:nobodyさん
12/01/09 08:58:56.35
その部分にってのは紛らわしいなごめん
Router::connect()の第3引数で指定するってこと。
453:nobodyさん
12/01/09 09:04:31.25
調べ中ですがまだうまくいっていません
ちなみに$paramは文字列で、複数ある場合もありますが大丈夫でしょうか
454:nobodyさん
12/01/09 09:46:49.44
数値ならってわざわざ書いたのはなんでだと思う?
455:nobodyさん
12/01/09 23:29:06.48
cakephpのサイトだけ紹介してるサイトないかな
456:nobodyさん
12/01/09 23:34:27.49 SU3KFcHv
2になって、AuthComponentがかなり洗練されたね
457:nobodyさん
12/01/09 23:37:13.69
CakePHPでページを表示すると下の方にsqlを200件だしているような表示になります
これは実際に200件実行してるということでしょうか
すると問題ありますかね
458:nobodyさん
12/01/09 23:43:44.32
件数取得してるだけじゃないのか?
sqlを200回実行してるわけねーだろ
459:nobodyさん
12/01/09 23:49:11.21
>>458
ありがとうございます。
(default) 262 queries took 46 ms こう表示されてました。
460:nobodyさん
12/01/09 23:55:34.73
>>459
262回クエリ投げてるな
どんなページだか知らないがさすがに多すぎると思う
っていうか、自分で実装したコードなんだろうからクエリ回数くらい検討つくだろう
アソシエーションで勝手にいっぱい持ってきているのならcontainableで引っ張ってくるデータを厳選すればいいぞ
461:nobodyさん
12/01/09 23:58:51.05
>>460
ありがとうございます。
containable調べてみます
462:nobodyさん
12/01/10 01:48:35.15
containつかったら88 queriesまで減らせませした
463:nobodyさん
12/01/10 03:05:48.92 Rzgwr3Tg
CakePHP2.1alpha を早速いれて試してみたが、エラーメッセージ(スタックトレース)がかなり見やすくなってる
464:nobodyさん
12/01/10 05:46:55.61
Cakeって気付くとめちゃめちゃクエリ投げてるよね
遅い原因の一つはこれか?
465:nobodyさん
12/01/10 10:19:59.29
今頃気づいたのか
Yiiにしとけ
CakePHPはオワコン
466:nobodyさん
12/01/10 12:07:44.08 +4VQFJJn
v1.2の話なんだけど
aテーブル
bテーブル
a_bテーブル
があるとして
a にhasAndBelongsToManyを設定して
a_b にbelongsToを設定したら、このbelongsToがスルーされる。なぜだかわかる?
削除用に設定したいんだけど、毎回bindModelするしかないのかな。
467:nobodyさん
12/01/10 12:11:35.74
Yiiってほとんどのレンタルサーバーで使えないじゃんw
468:nobodyさん
12/01/10 13:05:20.54
PDO使うからか?
469:nobodyさん
12/01/10 13:14:52.36
Yiiっていいの?
470:nobodyさん
12/01/10 13:32:02.30
>>466
recursive設定するのはどうかな
471:nobodyさん
12/01/10 19:50:56.57
最近2.0使ってるんだけど、本番環境時に/foos/barとか適当なURLにアクセスすると
表向きは404返してくれるんだけど、error.logにmissing controllerが記録されるようになった気がする
テスト環境時はmissing controllerエラーを表示してくれてOKだけど、本番でそれがerror.logに記録されるのはなんか変じゃないか?
/robots.txtとか/favicon.icoとかにアクセスがあったら、ひたすらerror.logに記録されちゃってるし(ファイルがない場合)
472:nobodyさん
12/01/10 21:31:38.90
それ、php.iniの設定では?
473:471
12/01/10 22:52:12.56
>>471
説明不足ですまぬ
/app/tmp/error.logに記録されまくって困っている
474:nobodyさん
12/01/11 09:07:32.93
>>471
.htaccessでなんでもかんでもCakePHPに渡すようになってる事が問題