トップページ⇒php
985コメント270KB

【PHP】フレームワーク CakePHP 15ホール目【v2.2】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/12/04(火) 13:06:36.87ID:ExCLhBiP
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※他フレームワークとの比較等はスレ違いです

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
github - cakephp
http://github.com/cakephp
the Bakery
http://bakery.cakephp.org/
CakeQs
http://cakeqs.org/
Issue
http://cakephp.lighthouseapp.com/dashboard
CheatSheet[1.2] (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
[2.x] http://book.cakephp.org/2.0/ja/index.html
[1.3] http://book.cakephp.org/ja

前スレ
【PHP】フレームワーク CakePHP 14ホール目【v2.1】
http://kohada.2ch.net/test/read.cgi/php/1335859124/
0002nobodyさん2012/12/04(火) 13:09:23.87ID:ExCLhBiP
前スレ埋まりそうなので建てた
リンクの順番を変更したり2.x系のマニュアルを追加したりした
テンプレらしきものは見当たらないのでこれ以上何もしない
独断でやった
反省はするが後悔はしない
0003nobodyさん2012/12/05(水) 11:52:00.08ID:???
乙
0004nobodyさん2012/12/05(水) 12:33:11.60ID:???
2.3で、find('first')でデータが空だったときにnullでなく空arrayで返ってくるようになったのが
地味に痛いのだが、俺だけ?
0005nobodyさん2012/12/05(水) 13:11:45.10ID:???
そうなん?
empty とかでチェックしてたから気が付かんかったけど、
なんでそんな仕様変えたりするんかな。
0006712012/12/05(水) 13:24:23.83ID:???
cakeの複数形って何のためにありますか?
機能的にはなくても問題ないですよね?
0007nobodyさん2012/12/05(水) 13:30:57.27ID:???
コンピュータはアングロサクソン文化。
それに異を唱えたところで無駄な抵抗。
0008nobodyさん2012/12/05(水) 14:17:02.19ID:???
>>5
find('all')の挙動とか考えると、戻りがarrayで統一されるのは良いことなんだけどね。
適切に判定するよう、2.3に合わせてソースを修正中。
0009nobodyさん2012/12/05(水) 14:44:23.38ID:???
ってか、まだRC-1だよね?
0010nobodyさん2012/12/05(水) 15:11:31.60ID:???
RC-1だろうが、最新を追いかけておけ。
0011nobodyさん2012/12/05(水) 15:16:46.14ID:???
何目線?
0012nobodyさん2012/12/06(木) 21:15:05.72ID:???
2.2.2だけどShellが動かない、検索してみてもどれが正しいのかルールが変わりすぎ
app\Console\Command\MyShell.php (mainだけの空ファイル)
path通ってて、app\Console\Command>cake my
↓
Error: Shell class MyShell could not be found.
0013nobodyさん2012/12/06(木) 21:27:20.26ID:???
app/ ディレクトリに移動

>Console\cake my
0014nobodyさん2012/12/06(木) 21:28:43.11ID:???
いや、ちょっとまった。
そのエラーは cake.php の設定ミスだ。
0015nobodyさん2012/12/06(木) 21:33:59.60ID:???
いややっぱ違うか、実行ディレクトリの間違いか
0016122012/12/06(木) 21:43:46.92ID:FnAkDg6W
すいません app\Console>cake my
で実行してます、どっちも試したけど…
0017nobodyさん2012/12/06(木) 22:02:47.45ID:???
ちなみに MyShell はちゃんとAppShellというか、CakeShellクラス継承してる?
0018122012/12/06(木) 22:14:11.45ID:???
>>17
下記のとおりです
class MyShell extends AppShell
{
public function main() {
}
}
0019nobodyさん2012/12/06(木) 22:38:41.60ID:???
んー、おかしいな。

Console\cake
って叩いて

-app:

と

[app]

を確認してみた?
まだなら一度やって報告してみて
0020122012/12/06(木) 23:06:05.43ID:???
>>18
-app どこかで見かけたけど見つからない
cake -app:xxx my   cake -app:[xxx] my
では動かなかった
Cakeの外からphpで呼ぶしかないか…
0021nobodyさん2012/12/06(木) 23:15:29.78ID:???
え?
単に
Console\cake
を叩くだけだよ。
んで、基本情報吐いてくれるからそれを見て確認してってこと。

Current Path:
の下に
-app:
っていうのがあるでしょ?
そこに
-app:app
ってなってればいいんだけど、そうじゃなければ何らかの理由で別の場所に読みに行ってるから。

あと
Available Shells:
の下に
[app]
っていうのがあるでしょ?
その右に使用出来るコマンドがカンマ区切りで並んでる。
そこにもし my ってのがあったら
Console\cake my
で呼び出せるはず。
まぁ、多分そこには表示されてないんだろうけど。一応確認してみて。
0022122012/12/06(木) 23:28:29.34ID:???
>>21
-app:Console
と
Available Shells:の下は
[CORE]
の横には my はないです
0023nobodyさん2012/12/06(木) 23:30:43.43ID:???
-app:Console
はい、ダウト

cake.php の設定ミスだ
0024nobodyさん2012/12/06(木) 23:38:26.98ID:???
いや違うわ。
お前、 Console ディレクトリにいるだろ!
0025nobodyさん2012/12/06(木) 23:39:06.33ID:???
>>13 をちゃんと読んだんだろうな
0026nobodyさん2012/12/06(木) 23:42:13.74ID:???
しまった、 >>16 ですでに間違いが書かれてた (´・ω・`)
俺が未熟だった orz...

悪いのは全て俺だ。。。
0027122012/12/06(木) 23:43:56.68ID:???
>>24
そうでした、app/にて、エラーが出ないで無事通りました。
大変お世話になりました、有難うごさいます。
0028122012/12/06(木) 23:54:10.76ID:???
>>26
いやネット上に1.3とかの情報がゴチャゴチャになってる状況なのもやっかいで
DirectX8と9やActionScriptの2.0と3.0とかも検索してソース見てると
混乱したのを思い出します。
cake.batの使い方がうまく伝わらない所が問題かなと思います。
丁寧なご指導有難うございます。
0029nobodyさん2012/12/07(金) 00:02:20.79ID:???
2系しかやってないからだけど、マジで1系の情報が強すぎてうざい
0030nobodyさん2012/12/07(金) 16:23:28.88ID:???
1系の情報を全部2系に書き換えて解説するブログをやれば人気出るかもしれないぞ
0031nobodyさん2012/12/07(金) 18:41:56.85ID:???
検索するときに CakePHP2 とかわざわざ書かないとフィルタかからないから意味ない

と言うよりも、キーワードからバージョンを推測できない問題は
そもそも同じ名前でリリースしたことにあるわけで、
これだけ仕様の異なるプロジェクトなら名称を変えるべきだった。

これはCakePHP2の最大の失敗だったと思う。
3系は是非名前を変更してほしい。
0032nobodyさん2012/12/07(金) 19:26:24.63ID:???
は?
世の中のプロジェクト全てにケチ着けてこいよ
0033nobodyさん2012/12/07(金) 21:30:22.94ID:???
いや、世の中の他のプロジェクトは俺には関係ないからどうでもいい。
悪いけど、自分のことしか考えてないんで。
0034nobodyさん2012/12/07(金) 22:16:32.45ID:???
普通に「cakephp2」で結果に出るなら良いじゃん
2って打つのがめんどくさいのかな
0035nobodyさん2012/12/09(日) 00:25:34.67ID:XFBeRYmD
echo $this->Form->end('作成');

を実行すると

<input type="submit" value="作成"> 

となりますが、

<input type="submit" value="作成" onclick="return validateValue();"> 

という風にsubmit前にJavaScriptにてバリデーションチェックを掛ける方法はありませんか?
0036nobodyさん2012/12/09(日) 00:42:36.77ID:???
$label = '作成';
$options = array('onclick' => 'return validateValue();', 'key' => 'value', 'key2' => 'value2', ...);
echo $this->Form->submit($label, $options);
0037nobodyさん2012/12/10(月) 09:25:33.40ID:???
処理に時間がかかる際の途中経過を表示したいのですが
通常phpならflush()ですが、MVCですし$this->render();でもダメなので
Cake独自の方法があれば教えてください。
0038nobodyさん2012/12/10(月) 16:08:56.64ID:R1lJ7E8n
>>36
ありがとうございます。
何とか出来そうです!!
0039nobodyさん2012/12/11(火) 18:13:11.67ID:???
てす
0040nobodyさん2012/12/15(土) 18:14:36.35ID:???
公式フォーラムがたよりないのでこちらに。
Cakeって1テーブル1モデルが基本だけど、2つ以上テーブルが必要な処理ってどこに書いてる?
アソシエーションの関係にないモデルが複数要る場合。JOINで済ませることも出来ない場合。
コントローラにごちゃごちゃ書きたくないけどモデル内で別モデルのインスタンス生成とかやりたくないので
そういう処理は全部コンポーネントに書いてるのだが、
そうするとコンポーネントがどんどん太ってモデルは空っぽになったりする。
別にそれでいい気もするが、MVCとしてなんか腑に落ちない気もする。
0041nobodyさん2012/12/15(土) 20:00:48.88ID:???
>モデル内で別モデルのインスタンス生成とかやりたくない

えーーー、なんでやねん!
0042nobodyさん2012/12/15(土) 21:12:47.77ID:???
>>40
あるモデルの中から他のモデルに働きかけたりするだろ普通
0043nobodyさん2012/12/17(月) 07:33:46.00ID:???
Cakeの話をするとスレが止まる何このスレ・・・

>>41-42
それやると典型的スパゲティになるからやめてくれ
引き継いだ他人のコードでそれがあると最悪
0044nobodyさん2012/12/17(月) 08:31:59.11ID:+2kdBB2j
>>40
2.2だけど下記じゃだめなの? 基本Controllerに書いてるけど

App::import('Model', 'Data');
App::import('Model', 'User');

class DataController extends AppController
{
$this->Data = new Data();
$this->User = new User();

処理
}
0045nobodyさん2012/12/17(月) 08:47:59.82ID:???
>>44
コントローラに書くのに普通に$uses使わずそう書く理由は?ていうかそれ合ってるのかね

コントローラに全部書く方針で行くならそれはそれでありだと思う
俺はコントローラの流れが見辛くなるのが嫌だからなるべく太らせないようにしたい
■ このスレッドは過去ログ倉庫に格納されています