【PHP】フレームワーク CakePHP 15ホール目【v2.2】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/12/04(火) 13:06:36.87ID:ExCLhBiPCakePHPから派生した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/
0019nobodyさん
2012/12/06(木) 22:38:41.60ID:???Console\cake
って叩いて
-app:
と
[app]
を確認してみた?
まだなら一度やって報告してみて
002012
2012/12/06(木) 23:06:05.43ID:???-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
で呼び出せるはず。
まぁ、多分そこには表示されてないんだろうけど。一応確認してみて。
0023nobodyさん
2012/12/06(木) 23:30:43.43ID:???はい、ダウト
cake.php の設定ミスだ
0024nobodyさん
2012/12/06(木) 23:38:26.98ID:???お前、 Console ディレクトリにいるだろ!
0026nobodyさん
2012/12/06(木) 23:42:13.74ID:???俺が未熟だった orz...
悪いのは全て俺だ。。。
002812
2012/12/06(木) 23:54:10.76ID:???いやネット上に1.3とかの情報がゴチャゴチャになってる状況なのもやっかいで
DirectX8と9やActionScriptの2.0と3.0とかも検索してソース見てると
混乱したのを思い出します。
cake.batの使い方がうまく伝わらない所が問題かなと思います。
丁寧なご指導有難うございます。
0029nobodyさん
2012/12/07(金) 00:02:20.79ID:???0030nobodyさん
2012/12/07(金) 16:23:28.88ID:???0031nobodyさん
2012/12/07(金) 18:41:56.85ID:???と言うよりも、キーワードからバージョンを推測できない問題は
そもそも同じ名前でリリースしたことにあるわけで、
これだけ仕様の異なるプロジェクトなら名称を変えるべきだった。
これは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:???2って打つのがめんどくさいのかな
0035nobodyさん
2012/12/09(日) 00:25:34.67ID:XFBeRYmDを実行すると
<input type="submit" value="作成">
となりますが、
<input type="submit" value="作成" onclick="return validateValue();">
という風にsubmit前にJavaScriptにてバリデーションチェックを掛ける方法はありませんか?
0036nobodyさん
2012/12/09(日) 00:42:36.77ID:???$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ありがとうございます。
何とか出来そうです!!
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:???えーーー、なんでやねん!
0043nobodyさん
2012/12/17(月) 07:33:46.00ID:???>>41-42
それやると典型的スパゲティになるからやめてくれ
引き継いだ他人のコードでそれがあると最悪
0044nobodyさん
2012/12/17(月) 08:31:59.11ID:+2kdBB2j2.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:???コントローラに書くのに普通に$uses使わずそう書く理由は?ていうかそれ合ってるのかね
コントローラに全部書く方針で行くならそれはそれでありだと思う
俺はコントローラの流れが見辛くなるのが嫌だからなるべく太らせないようにしたい
0046nobodyさん
2012/12/17(月) 09:49:27.27ID:???Cake始めて1ヶ月なんでこっちが聞きたいw
でも一本サービスとして公開して今2本目の開発途中
Modelはトランザクション以外空っぽでMySQLの繋ぎにしか使ってない
処理はControllerで、表示はViewなのでどっちも増えるけどシンプルだよ
基本下記のページを見て覚えたから
http://libro.tuyano.com/index2?id=734001
0047nobodyさん
2012/12/17(月) 10:27:21.50ID:???0048nobodyさん
2012/12/17(月) 12:19:50.12ID:???意味もなく非推奨な実装するな
普通に ClassRegistry::init 使えよ
そんなレベルの発言されるとバカが増える
0050nobodyさん
2012/12/19(水) 17:46:26.55ID:???ひどいサイトだな。
冒頭のコントローラの解説で、
モデルはDBアクセスに関する機能だから、
DBを使わなければ不要だなんて言っちゃってるし。
そっ閉じしたわ。
職業プログラマで、こんな糞コードを書いてたら大変だぞ。
こんなサイトにブクマが130超もついてるなんて、本当に青ざめるわ。
0051nobodyさん
2012/12/19(水) 20:20:25.67ID:???まあ昔からそんな調子だけどw
0052nobodyさん
2012/12/22(土) 04:06:14.78ID:???検索してみると漢字の名前のorderではアイウエオ順では並ばないとの事。
別カラムにひらがなで読みを入れれば並ぶらしいところまで…
0053nobodyさん
2012/12/22(土) 08:17:14.96ID:???そのまま抜けださないでおk
0054nobodyさん
2013/01/05(土) 14:05:46.60ID:???どういう仕組で動いてるのかさっぱりわからん
みんな分かって使ってんの?
0055nobodyさん
2013/01/05(土) 19:45:34.82ID:???PHPが読めんの?
0056nobodyさん
2013/01/05(土) 21:27:53.66ID:???中で何してるかまではしらない。
こう投げたらこう返ってくるが分かってればとりあえず使えるからね。
とはいえ、たまには中を読まないと解決できないはまりもあるけどな。
0057nobodyさん
2013/01/05(土) 22:25:20.31ID:???マニュアル読んで、最近話題の実践何とかっていう本も読んでサイトも作って公開した。
途中思うように行かないところ多数あったけど、とにかく公開を有線させたかったんで、
できないところは端折ったりしてなんとか公開にこぎつけた。
過去にフルスクラッチで書いていた頃に比べると
圧倒的に短時間でサイトができた。
ただ、なにか問題が起こった場合、ブラックボックスだらけなんでめちゃ不安。
そこらへん、みんなは中の挙動を全て把握できてるのかなと思って。
0058nobodyさん
2013/01/05(土) 22:31:41.84ID:???http://example.com/posts/view/1
で、確かに posts テーブルのid=1のレコードが表示される。
その間、PostsControllerがPostからid=1のレコードを取得して
view.ctpにそれを渡してそのページが
レイアウトの中に埋め込まれて表示されているってことはわかる。
でも、そもそもなんでそのURLで PostsController のインスタンスが生成されて
Posts::view のメソッドに1というパラメータが渡されて呼び出されるのか。
そういうことを分かってないので今すごく気持ち悪い。
0059nobodyさん
2013/01/05(土) 22:33:51.30ID:???そんなことみんな当然分かってやってるのか、逆にそんなことは全く知る必要がないと思ってるのか、
あるいは必要に応じて調べてるのか、その辺りどうなのかなというのが疑問です。
0061nobodyさん
2013/01/05(土) 22:37:33.39ID:???jQueryなんか中身ちゃんと解ってない人ばかりじゃない?
0062nobodyさん
2013/01/05(土) 22:40:57.73ID:???たしかにそうかも知れませんね。
ただ、自分は jQuery は昔のバージョンですがひと通り目を通しましたよ。
そんなに複雑なことはしてないので一日あれば大体わかります。
ただ、派生ライブラリは全然分からずに使ってますね〜、ちょっと気味悪いと感じながらも。
0063nobodyさん
2013/01/05(土) 22:44:03.40ID:???0064nobodyさん
2013/01/05(土) 23:00:56.92ID:???とりあえずはいいと思ってる。
リクエストに含まれる各パラメーターが、コントローラーに来た段階でどうなっているのか。
phpからDBへ格納する時どうなってるか。
テンプレートに吐き出すとき、どうなってるか。
ブラウザとphpとDBの間さえ意図通りなら、まぁ滅多な事にはそうそうならんと思う。
例えば、確認したの1系の頃だけど、リクエストはほぼそのままコントローラーに入ってくるから、
無対策でバイナリセーフでないphpの組込関数を使うのは危ないなとは思った。
0065nobodyさん
2013/01/06(日) 00:29:32.51ID:???諦めるか似たようなの作ってみるかどっちかしか無いよ。
俺は後者だったから、Cakeの縮小版みたいなの作った。
フレームワークの基礎は覚えたつもりだけど、
深入りすると難しくなるから、Cake使ってる。
0066nobodyさん
2013/01/06(日) 00:48:47.02ID:???0067nobodyさん
2013/01/06(日) 01:03:33.05ID:???0068nobodyさん
2013/01/06(日) 01:05:08.61ID:???そもそもPHP自体がソース見ない限りはブラックボックス
0069nobodyさん
2013/01/06(日) 02:25:26.95ID:???他の人にとってはブラックボックスだったりね。
0070nobodyさん
2013/01/06(日) 20:15:59.40ID:???大手とかそれなりの人数が揃った開発チームで、
ってのならわかるけど。
0071nobodyさん
2013/01/07(月) 00:14:17.75ID:???0072nobodyさん
2013/01/07(月) 00:20:51.78ID:???0073nobodyさん
2013/01/07(月) 00:59:35.07ID:9jm4x9DA0074nobodyさん
2013/01/07(月) 03:26:08.50ID:1/OpG9mzhttp://jbbs.livedoor.jp/bbs/read.cgi/study/3729/1226114724/53
¥¥¥¥¥¥¥『万有サロン』書き込み大賞・総額100万円¥¥¥¥¥¥¥¥¥¥¥¥
この掲示板に優秀な書き込みをして、総額100万円の賞金をゲットしよう!(*^^)v
万有サロン
http://jbbs.livedoor.jp/study/3729/
書き込み大賞の詳細
http://jbbs.livedoor.jp/bbs/read.cgi/study/3729/1069922074/78-
書き込み大賞の詳細(資料倉庫内)
http://www2.tba.t-com.ne.jp/a-z/omake/banyu/taisho.htm
また、あらゆる疑問に関する質問を、携帯電話やメールでも受け付けています。
電話番号 080-4437-4187
メール aaa-zzz@tba.t-com.ne.jp
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0075nobodyさん
2013/01/08(火) 12:34:30.70ID:???0076nobodyさん
2013/01/08(火) 12:41:28.97ID:???って言いたかったのかな
0077nobodyさん
2013/01/08(火) 16:50:25.93ID:???イベント周りに手こずったわ
0078nobodyさん
2013/01/08(火) 16:53:42.12ID:???0079nobodyさん
2013/01/08(火) 16:57:43.92ID:wT0DGdoq0080nobodyさん
2013/01/08(火) 16:58:37.29ID:???0081nobodyさん
2013/01/09(水) 14:58:19.50ID:FsynrIWDroutes.phpで、携帯サイトのみ以下の一文を付けたいのですが、
routesではhelperも使えないので判別に困っています。
helperが使えたらktaiライブラリを使っているので一発なのですが…
なにかいい手はないでしょうか? お願いします。
Router::connectNamed(true, array('argSeparator' => '~'));
0082nobodyさん
2013/01/09(水) 15:20:28.91ID:???routes.phpにユーザーエージェントを判別するコード書いて
PC以外のアクセスにはconnectNamed指定したら良いんじゃないか?
0083nobodyさん
2013/01/10(木) 06:18:15.98ID:???アソシエーションでconditionsを使う場合と使わない場合があります。
(例えば、非公開の投稿件数を表示する・しない 場合など)
今はコントローラーで、
一旦unbindModelをしてbindModelで再定義しているのですが、
モデル内で分岐させる方法はないでしょうか?
0084nobodyさん
2013/01/10(木) 12:08:13.10ID:???んで、いるアソシエーションのみcontainで指定して引っ張る
0085nobodyさん
2013/01/10(木) 23:33:47.63ID:???それfind()に渡すパラメーターで表現できないの?
0086nobodyさん
2013/01/11(金) 00:55:23.76ID:???それでも便利じゃん
0088nobodyさん
2013/01/11(金) 05:59:02.49ID:???それだけじゃないの?
008983
2013/01/11(金) 11:42:41.15ID:???それすると書く量や修正箇所が増えるんですよね・・。
>>85
自分はバーチャルフィールドにしているので、
find側でアソシエーションの条件は決められないっぽいです。
それができるとかなり便利なんですけどね。
>>88
どちらかというとその場限りですね。
「非公開の投稿件数を表示」って、管理画面で確認する程度ですし。
0090nobodyさん
2013/01/11(金) 12:39:05.49ID:???バーチャルフィールドって、なんか敬遠したい雰囲気だったから使ったこと無いけど、
調べたらconditionsには使えるみたいだから
contains => array(Model => array(conditions))にも使えるんじゃないの?ダメなの?
009283
2013/01/11(金) 17:49:51.59ID:???できました!コードが間違っていたようです。
containsではなくて、containでした。
対象のモデルに
var $actsAs = array('Containable');
を追加して、
findに'contain' => array('Posts' => array('conditions' => array('Posts.status' => 1))),
を追加すると、バーチャルフィールドでもconditionsが効きました。
containを教えていただいた方、ありがとうございました。
0093nobodyさん
2013/01/11(金) 19:58:49.04ID:???Containable使ってなかったのか。
これはもう必ず使っても良いくらいのビヘイビアだよ。
Modelのrecursiveプロパティと、やることが被ってるから、そこは注意が必要だけど。
class AppModel extends Model {
var $recursive = -1;
var $actsAs = array('Containable');
}
具体的には必ずContainable使うなら$recursiveはbelongsToすら取らない設定にするのがいいけど、
bakeして作った画面はbelognsToは来ること想定してるから、
containsにちゃんと書かないといけない。
その代わりアクション毎に指定したモデルだけを取れるから、無駄なSQL発行されない。
containだったか。他がconditions, fieldsってキーだからついcontainsって書いちゃうんだよな。
0094nobodyさん
2013/01/16(水) 11:49:21.14ID:???本家のほうにあったなんて
検索で1番上に表示されるcakephp.jpは害
0096nobodyさん
2013/01/16(水) 12:05:59.61ID:???今日からcakephpの勉強をしたいと思います
0097nobodyさん
2013/01/16(水) 12:55:44.13ID:???英語の公式以外で入手できる情報は基本ないと思ったほうが良い
ぐぐっても出てくるのは古いゴミみたいな情報ばかり
日本語なら、なるべく新しい本を買えばまだましなのかな、多分2冊ぐらいしかないはず
0098nobodyさん
2013/01/16(水) 13:48:36.02ID:???英語のマニュアルと、つまったらソース読むのが一番速い上に勉強になる
0099nobodyさん
2013/01/16(水) 14:37:13.70ID:???Unofficialてのがあるけど、質問してもレスつかんかった
0100nobodyさん
2013/01/16(水) 14:45:29.67ID:???激しく同意
あそこは潰したほうが CakePHP のためになる
0101nobodyさん
2013/01/16(水) 14:49:37.64ID:???自分用に何ページも翻訳あるんでよかったら使ってもらおうと思ったんだけど
糞めんどうくさいんでやめた。
そんな人結構たくさんいると思う。
チェック機構すら無い簡単過ぎる更新もどうかと思うけど、
今みたいな sphinx 形式に整形して github で pull request するなんて、
ほんの一握りのマニアしかやりたいとは思わないよ。
0102nobodyさん
2013/01/16(水) 14:53:30.56ID:???一応こちらが公式のQ&Aサイト。
http://ask.cakephp.org/
ただし、日本語で質問しても反応は絶望的だと思う。
もはやプログラマのスキルとして、つねに英語力が
プログラミング能力より先立つんじゃないかとおもうわ。
0104nobodyさん
2013/01/16(水) 16:14:04.46ID:???あとベースとなる英語も、ユーザーベースで書いてるから、追従は大変。
翻訳する意欲のある人は、翻訳をすることで英語力が身につき、
もう英語読めばよくね?となってしまうとか聞いた。
0105nobodyさん
2013/01/16(水) 16:40:43.25ID:???お金くれれば俺が翻訳やってやるのにな
ただではやらん
0107nobodyさん
2013/01/16(水) 16:54:17.30ID:???100円ぐらいで売れてる書籍結構あるよ
0108nobodyさん
2013/01/17(木) 12:47:53.30ID:???まだ50%程度か。
未翻訳のページもそのままリンク張っておいてくれたらいいのに。。。
文句言う筋合いじゃないけど、なんだか細かい所でイラッと来るわ。
0109nobodyさん
2013/01/17(木) 13:18:10.37ID:???管理できないのであれば
0110nobodyさん
2013/01/17(木) 13:20:13.24ID:???0111nobodyさん
2013/01/17(木) 13:35:14.15ID:???翻訳サイトは cakephp.jp じゃなくて、本家 cakephp.org の一部。
なので、閉鎖とかじゃなくて単にページのHTML化の問題。
>>110
とりあえず cakephp.jp のフォーラムに書き込めばいいと思う。
0112nobodyさん
2013/01/17(木) 14:10:39.39ID:???本家のask.cakephp.orgが1.3 と2の間くらいで、確か出来たけど、
あれ完成度悪いと思う。
個人的にも本家が出来たからあれに移行してやっていこうって気持ちにはなれなかった。
そして何故かユーザーは多いはずなのに両方が過疎る残念な状況に。
0113nobodyさん
2013/01/17(木) 14:19:47.41ID:???駄目システムでも流行ることはあるとは言え、やはり大事
0114nobodyさん
2013/01/17(木) 14:41:06.72ID:???おまえがやれとしか言いようが無いわ
0115nobodyさん
2013/01/17(木) 14:44:36.18ID:???「俺はオープンソースに貢献してます」って肩書きに書けるもんな
楽だよな
0116nobodyさん
2013/01/17(木) 14:56:25.96ID:???文句言う筋合いじゃないけどって書いてるでしょ
0117nobodyさん
2013/01/17(木) 14:59:24.33ID:???0118nobodyさん
2013/01/17(木) 15:05:22.17ID:???■ このスレッドは過去ログ倉庫に格納されています