【PHP】フレームワーク CakePHP 9ホール目【v1.3】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/07/23(金) 09:13:26ID:v3m09M9uCakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう
※sage推奨
※質問時もsageること
※他フレームワークとの比較等はスレ違いです
テンプレは>>1-5くらい
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
github - cakephp
http://github.com/cakephp
■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
0458nobodyさん
2010/09/08(水) 17:18:50ID:+2USXYbVどういう値でも全てエラー扱いになります。
どこを直せばいいのでしょうか?アドバイスをいただければと思います。
var $validate = array(
'user_id' => array(
array(
'rule' => 'checkUserId',
'message' => 'IDが存在しません',
)
));
function checkUserId()
{
$data = $this->User->findById($this->data['Profile']['user_id']);
if(!$data){
return false;
}
}
0459nobodyさん
2010/09/08(水) 17:22:28ID:???0464nobodyさん
2010/09/08(水) 18:12:31ID:???>オープンソースなんだからソース読んで自力で解決しろよと思う
と書いてあるわけだが。
ソース読めば、なんですべてエラー扱いになるか理解できるはず。
それを怠って人に頼っている時点で酷いと言ってる。
0465nobodyさん
2010/09/08(水) 18:14:01ID:???じゃ聞くが、458のような書き方ってソースの問題か?
単に構築上での質問だと思うが。
そしてそれすらも自分で考えろって言うなら、
>>1で質問受け付けないようにしないとな。
0466nobodyさん
2010/09/08(水) 18:28:54ID:???前半、なにを言いたいのかよく分からないが、ソース読めば
trueを返さなければいけないって分かるだろ?
>>>1で質問受け付けないようにしないとな。
それ賛成
>>463
勉強する気があるならmodel.phpのinvalidFieldsの中を読んでみ
0467nobodyさん
2010/09/08(水) 18:29:06ID:???ぐぐると使用例がいっぱい出てくるけど、使ったらエラーが出た
Warning (512): SQL Error: 1064: You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to use near 'findAll'
at line 1 [CORE/cake/libs/model/datasources/dbo_source.php, line 673]
0468nobodyさん
2010/09/08(水) 18:29:42ID:???0472nobodyさん
2010/09/08(水) 18:38:27ID:???嫌なら答えなければいいのに。なにかお前に対して迷惑かかるのかよ
0473nobodyさん
2010/09/08(水) 18:43:02ID:???0475nobodyさん
2010/09/08(水) 20:24:25ID:???0476nobodyさん
2010/09/08(水) 22:09:02ID:???458のためを思って言ってるんだけどね。
あのくらいの問題を自分で解決できないんじゃ、いつまでたっても成長しないだろ?
0479nobodyさん
2010/09/09(木) 02:03:12ID:???0480nobodyさん
2010/09/09(木) 02:05:46ID:???0481nobodyさん
2010/09/09(木) 02:56:55ID:???0482nobodyさん
2010/09/09(木) 03:00:37ID:???0483nobodyさん
2010/09/09(木) 10:33:38ID:???しかも回答貰ってんのに自己解決とかいっちゃってるし
0484nobodyさん
2010/09/09(木) 10:41:38ID:???0485nobodyさん
2010/09/09(木) 11:27:23ID:???自分が知ってて簡単に答えられそうで、尚かつめんどくさくないなら。
面倒な奴は無視すれば良いんだよ。
誰かに教える事で不利益を被るのか?自分もググって他人に教えてもらうのに。
0487nobodyさん
2010/09/09(木) 12:25:37ID:???とにかくなりすましができる環境で質問してあれは俺じゃないとか
実はあれ頴田の俺でしたみたいな感じになるのが荒れる最大の原因だから
0488nobodyさん
2010/09/09(木) 12:31:13ID:???0489nobodyさん
2010/09/09(木) 13:20:50ID:???お前馬鹿か?それかネットやったことないとか?
荒れるのは十中八九「誰かが構うから」だ。構わず無視しとけばいいだろ。
心底教えて欲しいと思う奴はID出すし、騙られるのが嫌な奴もそうする。
0491nobodyさん
2010/09/09(木) 13:39:32ID:???0492nobodyさん
2010/09/09(木) 14:04:42ID:???0495nobodyさん
2010/09/09(木) 16:07:57ID:???0498nobodyさん
2010/09/09(木) 16:25:31ID:???他所でやれ
0499nobodyさん
2010/09/09(木) 16:30:25ID:???0500nobodyさん
2010/09/09(木) 16:31:11ID:???0501nobodyさん
2010/09/09(木) 17:26:36ID:???0502nobodyさん
2010/09/09(木) 17:43:47ID:???Cakeは情報が多くて助かるが多すぎるのもあれだな
0503nobodyさん
2010/09/09(木) 17:48:27ID:???0504nobodyさん
2010/09/09(木) 17:52:06ID:???0506nobodyさん
2010/09/09(木) 21:50:33ID:???http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GPTB_jaJP291JP291&q=bom
0507nobodyさん
2010/09/10(金) 00:50:01ID:???BOMつけようとする奴ははじめてみた
0508nobodyさん
2010/09/10(金) 00:51:02ID:???0509nobodyさん
2010/09/10(金) 12:38:20ID:???ぐぐったら、<?php echo $this->element('sql_dump'); ?>
でいけるとすぐ出てきたのですが、やってみたら
Not Found: /xxx/xxxxx/app/views/elements/sql_dump.html;
とエラーになります。
elements/sql_dump.htmlがないみたいなんですがどこかで入手できるのでしょうか?
0511nobodyさん
2010/09/10(金) 14:00:06ID:???あぁすまん、よく読んでなかったわ。
sql_dump.ctpは/xxx/xxxxx/cake/views/elementsにあるはずなんだが、ないか?
0513nobodyさん
2010/09/10(金) 14:51:11ID:???普通にSQL文のテーブルが出力されたけどな。
やっぱ、元ファイルの拡張子をhtmlにしたのが原因だと思う。
0514nobodyさん
2010/09/10(金) 15:15:18ID:???こんな弊害あるのね
0515nobodyさん
2010/09/10(金) 15:30:29ID:???<?php echo $this->element('sql_dump.ctp'); ?>
0517nobodyさん
2010/09/10(金) 16:16:11ID:???「view.php」というviewファイルを扱おうとしたら動作がおかしくなった。
0518nobodyさん
2010/09/10(金) 16:30:54ID:???foreach ($paths as $path) {
if (file_exists($path . 'elements' . DS . $name . $this->ext)) {
$file = $path . 'elements' . DS . $name . $this->ext;
break;
}
}
ってなってるから無理
cssだと拡張子ついててもOKなのに、こういう統一性がないところが嫌だな
0519nobodyさん
2010/09/10(金) 23:46:45ID:???cake/views/elementsのほうにありました。app/views/elementsの方見てた。
解決しました、アリが東
0520nobodyさん
2010/09/11(土) 23:25:50ID:7mKdJQTUそれぞれのapp内で同じコンポーネントやヘルパーを使いたいとします。
その場合、どちらかをrequireして読み込む方法しかないのでしょうか?
0521nobodyさん
2010/09/11(土) 23:39:30ID:???0522nobodyさん
2010/09/11(土) 23:42:40ID:???0523nobodyさん
2010/09/11(土) 23:43:36ID:7mKdJQTUそこにファイルを置くと、app内に置かなくても読み込まれました。
App::build(array(
'helpers' =>array(ROOT . DS . 'common' . DS .'helpers' . DS),
));
こういう便利な機能があったんですね。もう少しマニュアル読んで勉強します。
0524nobodyさん
2010/09/11(土) 23:57:14ID:???0526nobodyさん
2010/09/12(日) 00:00:49ID:???0527nobodyさん
2010/09/12(日) 00:53:23ID:???PHPで作る携帯サイトって本を買ったんだけど、
appフォルダとapp_adminをドメインで分けて作っていっくことを前提で解説してあったんで
0528nobodyさん
2010/09/12(日) 00:58:08ID:???別の方法考えな。
appとapp_adminを分けるってことはそれぞれのフォルダにいくつか同じファイルが存在するってことだろ?
バグ生み出す原因を作るだけだぞ
0530528
2010/09/12(日) 01:30:51ID:???その本持ってたわw
やり方は本に書いてあるから、よく読め
>>529
前半部分しか読んでないけど、新たな発見があって悪くはなかった。
p118の表とかCakeの流れが分かりやすく書かれてたし。
0531nobodyさん
2010/09/12(日) 02:32:07ID:???同じコントローラーでも公開・管理で仕様が異なるんだから
バグの原因にならないと思うけど。
むしろ、1つのファイルに長々とコードを書いていくことが
バグや見落としの原因になるぞ。
0532nobodyさん
2010/09/12(日) 02:53:28ID:???あぁスマン>>528は本見る前に書いたレスだから忘れてくれ。
同じコードがあちこちに散在しているプロジェクトは修正忘れが起きやすくバグをうむ。
だから、>>528みたいな忠告をしたんだけど、ソース見てみたら、
共通なのはapp_model.phpとか、あまりないのな。
0533nobodyさん
2010/09/12(日) 03:16:47ID:???ついでだから、こちらも質問させてくれ。
1つの関数に長々とってなら分かるけど、
1つのファイルに長々とコードを書いていくとバグの原因になるのはなんで?
0534nobodyさん
2010/09/12(日) 03:23:34ID:???モデルなんて一緒じゃないの?
0535nobodyさん
2010/09/12(日) 03:58:40ID:???0536nobodyさん
2010/09/12(日) 04:35:47ID:???views,controllersは別々で問題ない。
configあたりはほぼ同じ内容でコピペなんだろうね
でもなんだかんだで同じ処理って出てくるよなぁ
メンテナンス性は落ちそうに思うんだけどな
0537nobodyさん
2010/09/12(日) 05:12:08ID:???前者がわかるのになぜ後者がわからないの?
単にコードが長いと見落としがあるだろ。
それ以外も出来るだけコードを簡潔にするのが良いって聞いたこと無いか?
>>534
それは>>523にすればいいんじゃねぇ?
実質、configファイルのコピーだけだと思う。
俺の場合、公開用・管理用とで分けてるから、同じような処理は出にくいな。
findのconditionやsaveの条件も異なるし。ビューの表示する内容も。
0538nobodyさん
2010/09/12(日) 05:14:56ID:???コントローラー内でアクション分けする方法もあるから、
自分が管理しやすい方法でやればいいと思うよ。
0539532
2010/09/12(日) 09:03:48ID:???コロコロ意見変わってスマンが、やっぱり>>532は撤回。
たまたまチェックしたmodelのファイルの中身がアソシエーションとバリデーションの
設定くらいしか書いてなかったから、このくらいならいっかと思ったけど、
よくよく調べると、他にも同じようなコードが散在しているね。
メンテナンス性を考えるとモデルくらいは>>523のようにした方がいい気がする。
>単にコードが長いと見落としがあるだろ。
>それ以外も出来るだけコードを簡潔にするのが良いって聞いたこと無いか?
関数なりメソッドなりのコードを簡潔にするってのは聞いたことあるけど、
ファイルを短くた方がいいなんて聞いたことがないな。
ファイル分割したら、コードの見落としって減るか?
1つのファイルに100個ぐらい関数あったら、見落としそうってのも分かるけど、
Cakeのファイルなんて普通は多くても10個や20個じゃない?
0540nobodyさん
2010/09/12(日) 13:24:32ID:???0541nobodyさん
2010/09/12(日) 13:44:17ID:???あんまりスクロールが長いと可読性が下がって見落としが増える。
コメントを充実させたり、役割ごとにきちんとファイル分けした上での関数10個なら問題ないと思う。
ごった煮でファイル名が曖昧になるようなファイルは関数10個でも見辛い。
0542532
2010/09/12(日) 14:02:34ID:???PDTみたいなの使ってない?
PDTだと関数一覧が表示されるから、そういう理由で可読性が下がることはないと思うぞ。
便利だし、使ってみたら?
>ごった煮でファイル名が曖昧になるようなファイルは関数10個でも見辛い。
それは論外でしょ
0543nobodyさん
2010/09/12(日) 15:11:59ID:???普通にありえるだろ。
数学ファイルなのか、ベクトル計算ファイルなのか、二次元ベクトル計算ファイルなのか、内積計算ファイルなのか。
抽象化されたファイル名になればなるほど、およそ関係ないか、他でも再利用可能な便利関数でてくる。
トレードオフな関係に論外はありえない。
0545nobodyさん
2010/09/12(日) 17:27:22ID:???自分が書いたCakeのアプリはそうだね。
分割してもControllerやModelのコードの半分以上が共通になるような仕様だったから。
>>527のControllerみたいに共通する部分がほとんどない場合は分割すればいいと思うよ。
>>543
曖昧になるのは単にセンスがないだけだと思うのだが。
たぶん単なる例えで言ったんだろうけど、
>数学ファイルなのか、ベクトル計算ファイルなのか、二次元ベクトル計算ファイルなのか、内積計算ファイルなのか。
って、全部まとめてmathファイルでよくね?
0546nobodyさん
2010/09/12(日) 17:49:39ID:???センスで作られたコードほど読み辛いものはないし
曖昧なケースなんてコーディングしてればいくらでもでてくるだろ…
中、大規模なコーディングしないと解らないのかもしれん。
0547nobodyさん
2010/09/12(日) 19:06:17ID:???model内の変数を処理する時に、配列を使うか、オブジェクトにしちゃうかの判断は
どうすればよいでしょうか?
オブジェクトってどこからでも取り出せて便利だから、今まで
$thisMonth = date(m);
こんな感じでやっていたのも、
$this->thisMonth = date(m);
のように基本的に全部オブジェクトにしたらいいんじゃないか?って思っちゃったのですが、
大きな間違いでしょうか?(重くなるとか・・)
0549547
2010/09/12(日) 19:21:33ID:???分かりにくくて申し訳ないです。
functionをまたいで使用する値を格納する時に、
全部オブジェクトにしちゃうのはまずいのだろうか?っていう疑問です。
下記のような形の時です。
public function getDate(){
$this->thisMonth = date(m);
}
public function showDate(){
$this->getDate();
echo $this->thisMonth;
}
0550nobodyさん
2010/09/12(日) 19:22:56ID:???というか此処で聞くことじゃないってわからないの?
0551547
2010/09/12(日) 19:30:59ID:???申し訳ありませんでした。
メンバ変数というのですね、ググって勉強しなおします。
どうもありがとうございます。
0552nobodyさん
2010/09/12(日) 19:54:10ID:???単に覚え間違いだったのかw
0553nobodyさん
2010/09/12(日) 19:59:05ID:???0554nobodyさん
2010/09/12(日) 20:03:01ID:???0555nobodyさん
2010/09/12(日) 20:08:24ID:???最初からソース提示してるんだからわかる。スレ違いなだけ。
それに対して「単に覚え間違い」とかずれたツッコミしてるんだけど?
0556nobodyさん
2010/09/12(日) 20:08:24ID:???メンバ変数をオブジェクトだと思っていたところ。
そしてそれをオブジェクト指向と関係があると思い、
CakePHPのスレで質問したところ。
更に、547自身が何を笑われているかわからないところ。
0557nobodyさん
2010/09/12(日) 20:09:17ID:???>最初からソース提示してるんだからわかる。スレ違いなだけ。
俺らはエスパーだと思ってるの?
■ このスレッドは過去ログ倉庫に格納されています