トップページ⇒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/
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:???
とりあえず自分がコード書くとこに関わるAPIはそこそこ把握してるけど、
中で何してるかまではしらない。
こう投げたらこう返ってくるが分かってればとりあえず使えるからね。
とはいえ、たまには中を読まないと解決できないはまりもあるけどな。
0057nobodyさん2013/01/05(土) 22:25:20.31ID:???
54だけど、まさに56の言う通り。
マニュアル読んで、最近話題の実践何とかっていう本も読んでサイトも作って公開した。
途中思うように行かないところ多数あったけど、とにかく公開を有線させたかったんで、
できないところは端折ったりしてなんとか公開にこぎつけた。

過去にフルスクラッチで書いていた頃に比べると
圧倒的に短時間でサイトができた。

ただ、なにか問題が起こった場合、ブラックボックスだらけなんでめちゃ不安。

そこらへん、みんなは中の挙動を全て把握できてるのかなと思って。
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:???
あと、設定ファイルに書いた情報も、どのタイミングで取得されてるのかとか
そんなことみんな当然分かってやってるのか、逆にそんなことは全く知る必要がないと思ってるのか、
あるいは必要に応じて調べてるのか、その辺りどうなのかなというのが疑問です。
0060nobodyさん2013/01/05(土) 22:36:06.23ID:???
>>56 さんは、必要ならその時調べるってスタンスでやってるのですね?
どうもありがとう。
0061nobodyさん2013/01/05(土) 22:37:33.39ID:???
そんな事言い出したら何も使えなくなっちゃうよw
jQueryなんか中身ちゃんと解ってない人ばかりじゃない?
0062nobodyさん2013/01/05(土) 22:40:57.73ID:???
>>61
たしかにそうかも知れませんね。
ただ、自分は jQuery は昔のバージョンですがひと通り目を通しましたよ。
そんなに複雑なことはしてないので一日あれば大体わかります。
ただ、派生ライブラリは全然分からずに使ってますね〜、ちょっと気味悪いと感じながらも。
0063nobodyさん2013/01/05(土) 22:44:03.40ID:???
それ言うならOSも中身わかってないと気持ち悪いのか?
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:???
2人以上で開発するなら、自分で作ったコンパクトなフレームワークも、
他の人にとってはブラックボックスだったりね。
0070nobodyさん2013/01/06(日) 20:15:59.40ID:???
2人以上で開発するケースって殆ど無いよね
大手とかそれなりの人数が揃った開発チームで、
ってのならわかるけど。
0071nobodyさん2013/01/07(月) 00:14:17.75ID:???
え?
0072nobodyさん2013/01/07(月) 00:20:51.78ID:???
え?
0073nobodyさん2013/01/07(月) 00:59:35.07ID:9jm4x9DA
>>70
0074nobodyさん2013/01/07(月) 03:26:08.50ID:1/OpG9mz
  ●●●ケネディ大統領は何故、死なねばならなかったのか?●●●
  http://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
    メール  [email protected]

  ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
0075nobodyさん2013/01/08(火) 12:34:30.70ID:???
そしてスレはひっそりと止まった
0076nobodyさん2013/01/08(火) 12:41:28.97ID:???
Cakeで作るようなものは小規模だから1人で開発するでしょ
って言いたかったのかな
0077nobodyさん2013/01/08(火) 16:50:25.93ID:???
ORM以外なんとか全容が掴めてきた

イベント周りに手こずったわ
0078nobodyさん2013/01/08(火) 16:53:42.12ID:???
大規模ってどのくらいですか?テーブル100以上ですか?
0079nobodyさん2013/01/08(火) 16:57:43.92ID:wT0DGdoq
大規模の定義なんてあるのか?
0080nobodyさん2013/01/08(火) 16:58:37.29ID:???
あった気がする
0081nobodyさん2013/01/09(水) 14:58:19.50ID:FsynrIWD
cakephp1.3で教えて頂きたいんですけど、
routes.phpで、携帯サイトのみ以下の一文を付けたいのですが、
routesではhelperも使えないので判別に困っています。
helperが使えたらktaiライブラリを使っているので一発なのですが…
なにかいい手はないでしょうか? お願いします。

Router::connectNamed(true, array('argSeparator' => '~'));
0082nobodyさん2013/01/09(水) 15:20:28.91ID:???
>>81
routes.phpにユーザーエージェントを判別するコード書いて
PC以外のアクセスにはconnectNamed指定したら良いんじゃないか?
0083nobodyさん2013/01/10(木) 06:18:15.98ID:???
1.3.15を使っています。
アソシエーションでconditionsを使う場合と使わない場合があります。
(例えば、非公開の投稿件数を表示する・しない 場合など)

今はコントローラーで、
一旦unbindModelをしてbindModelで再定義しているのですが、
モデル内で分岐させる方法はないでしょうか?
0084nobodyさん2013/01/10(木) 12:08:13.10ID:???
別名でもいっこアソシエーションセットすればいい
んで、いるアソシエーションのみcontainで指定して引っ張る
0085nobodyさん2013/01/10(木) 23:33:47.63ID:???
アソシエーションのとこのconditions書いたこと無いんだけど、
それfind()に渡すパラメーターで表現できないの?
0086nobodyさん2013/01/11(金) 00:55:23.76ID:???
自動で関連モデル引っ張って来てくれる時に条件付与してくれるってだけだと俺は思ってるけど
それでも便利じゃん
0087nobodyさん2013/01/11(金) 03:58:11.98ID:???
>>86
それだけかぁ。
なら別名同一モデルよりはcontainに書きたいな。
0088nobodyさん2013/01/11(金) 05:59:02.49ID:???
その場限りの条件なのか、モデル定義の根幹に関わる条件なのか。
それだけじゃないの?
0089832013/01/11(金) 11:42:41.15ID:???
>>84
それすると書く量や修正箇所が増えるんですよね・・。

>>85
自分はバーチャルフィールドにしているので、
find側でアソシエーションの条件は決められないっぽいです。
それができるとかなり便利なんですけどね。

>>88
どちらかというとその場限りですね。
「非公開の投稿件数を表示」って、管理画面で確認する程度ですし。
0090nobodyさん2013/01/11(金) 12:39:05.49ID:???
>>89
バーチャルフィールドって、なんか敬遠したい雰囲気だったから使ったこと無いけど、
調べたらconditionsには使えるみたいだから
contains => array(Model => array(conditions))にも使えるんじゃないの?ダメなの?
0091832013/01/11(金) 17:40:54.59ID:???
>>90
やってみたけど駄目だした
0092832013/01/11(金) 17:49:51.59ID:???
>>90
できました!コードが間違っていたようです。
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:???
>>92
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:???
最新の日本語のマニュアルがないからcakephpの勉強をあきらめていたんだが
本家のほうにあったなんて
検索で1番上に表示されるcakephp.jpは害
0095nobodyさん2013/01/16(水) 11:59:19.66ID:???
>>94
メンテナンスできないなら作るな、っていう感じ
0096nobodyさん2013/01/16(水) 12:05:59.61ID:???
やっぱりメンテナンスされてなかたったんだ
今日からcakephpの勉強をしたいと思います
0097nobodyさん2013/01/16(水) 12:55:44.13ID:???
Cakeろくに管理されてないから終わっとるな
英語の公式以外で入手できる情報は基本ないと思ったほうが良い
ぐぐっても出てくるのは古いゴミみたいな情報ばかり

日本語なら、なるべく新しい本を買えばまだましなのかな、多分2冊ぐらいしかないはず
0098nobodyさん2013/01/16(水) 13:48:36.02ID:???
本なんかより
英語のマニュアルと、つまったらソース読むのが一番速い上に勉強になる
0099nobodyさん2013/01/16(水) 14:37:13.70ID:???
Cakeって公式のforumないの?
Unofficialてのがあるけど、質問してもレスつかんかった
0100nobodyさん2013/01/16(水) 14:45:29.67ID:???
>cakephp.jpは害

激しく同意

あそこは潰したほうが CakePHP のためになる
0101nobodyさん2013/01/16(水) 14:49:37.64ID:???
あと、ドキュメントの翻訳を反映させるのが地獄。
自分用に何ページも翻訳あるんでよかったら使ってもらおうと思ったんだけど
糞めんどうくさいんでやめた。
そんな人結構たくさんいると思う。

チェック機構すら無い簡単過ぎる更新もどうかと思うけど、
今みたいな sphinx 形式に整形して github で pull request するなんて、
ほんの一握りのマニアしかやりたいとは思わないよ。
0102nobodyさん2013/01/16(水) 14:53:30.56ID:???
>>99
一応こちらが公式のQ&Aサイト。

http://ask.cakephp.org/

ただし、日本語で質問しても反応は絶望的だと思う。

もはやプログラマのスキルとして、つねに英語力が
プログラミング能力より先立つんじゃないかとおもうわ。
0103nobodyさん2013/01/16(水) 14:59:29.18ID:???
>>102
�dクス
過疎ってるしめちゃめちゃ重いな、やっぱCake運営っていろいろ駄目だな…
0104nobodyさん2013/01/16(水) 16:14:04.46ID:???
Cookbookの翻訳はしてる人たちは居るけど、人手不足やね。
あとベースとなる英語も、ユーザーベースで書いてるから、追従は大変。
翻訳する意欲のある人は、翻訳をすることで英語力が身につき、
もう英語読めばよくね?となってしまうとか聞いた。
0105nobodyさん2013/01/16(水) 16:40:43.25ID:???
SOHOのWeb屋やってるけどさっぱり仕事がないから
お金くれれば俺が翻訳やってやるのにな
ただではやらん
0106nobodyさん2013/01/16(水) 16:46:02.84ID:???
>>105
マニュアル本の自費出版でもしたら良いんでない?
0107nobodyさん2013/01/16(水) 16:54:17.30ID:???
そこで今はAmazonで電子書籍出版ですよ
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:???
>>109
翻訳サイトは cakephp.jp じゃなくて、本家 cakephp.org の一部。
なので、閉鎖とかじゃなくて単にページのHTML化の問題。

>>110
とりあえず cakephp.jp のフォーラムに書き込めばいいと思う。
0112nobodyさん2013/01/17(木) 14:10:39.39ID:???
1系の頃はcakephp.jpも役に立ってたんだけどね。
本家のask.cakephp.orgが1.3 と2の間くらいで、確か出来たけど、
あれ完成度悪いと思う。
個人的にも本家が出来たからあれに移行してやっていこうって気持ちにはなれなかった。
そして何故かユーザーは多いはずなのに両方が過疎る残念な状況に。
0113nobodyさん2013/01/17(木) 14:19:47.41ID:???
やはりシステムの出来って大事なんだね
駄目システムでも流行ることはあるとは言え、やはり大事
0114nobodyさん2013/01/17(木) 14:41:06.72ID:???
で、でた〜〜wwwOSSの有志運営のサイトにケチ付け奴〜〜〜〜wwww

おまえがやれとしか言いようが無いわ
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:???
「貢献しました」「したことがあります」みたいな過去形なら可能か
0119nobodyさん2013/01/17(木) 15:55:31.40ID:???
中途半端な貢献は混乱をきたすだけだ
0120nobodyさん2013/01/17(木) 15:59:23.96ID:???
1系の頃はかなり役に立ってたけどな。
誰が運営してるのか良く分からんけど、たぶんもうCakePHPやってないんかね。
想像だけど、CakePHPから離れちゃって、
でもまるっと消しちゃうには、過去ログも溜まってるから、放置状態なんかね。
0121nobodyさん2013/01/17(木) 16:12:52.88ID:???
Cake使っている人間は多いと思うけど、まとめるのが面倒なんだと思う。
Cake以外の言語・ツールの説明サイトが少なくなった印象
0122nobodyさん2013/01/17(木) 19:02:35.58ID:???
>>121
英語のマニュアルが一番まとまってるという。。。
0123nobodyさん2013/01/17(木) 19:18:07.19ID:???
日本語でググって自分の書き込みが引っかかる率の高さ
0124nobodyさん2013/01/17(木) 19:21:42.24ID:???
あるある
自分の質問しか引っかからない時の絶望感
0125nobodyさん2013/01/17(木) 21:14:29.88ID:???
やっと引っ掛かったと思ったら誰も答えてない虚無感
0126nobodyさん2013/01/17(木) 21:29:29.93ID:???
引っかかったのが知恵袋でベストアンサーが関係ない回答のとき
0127nobodyさん2013/01/18(金) 08:59:44.64ID:???
なんだかんだでここが一番役に立つ。
0128nobodyさん2013/01/18(金) 10:03:12.31ID:???
勃たねえよ
0129nobodyさん2013/01/18(金) 12:44:04.80ID:???
>>128
愚痴りながらも答えてくれるじゃん
0130nobodyさん2013/01/18(金) 12:44:57.61ID:???
俺は答えてもらえなかった
0131nobodyさん2013/01/18(金) 13:38:03.04ID:???
CakePHPってよくブラウザーゲームで見かけるんだけどそんなに王道なの?
0132nobodyさん2013/01/18(金) 14:17:52.25ID:???
例えば?
0133nobodyさん2013/01/18(金) 15:57:43.37ID:???
よく見かけないけど、スライドショーのテーマで使われているのは見る
0134nobodyさん2013/01/19(土) 00:43:10.36ID:???
王道って程じゃないけど利用は多いだろうね。
なんだかんだ言ってもphpはweb系なら使われてる言語で、
そのphpのメジャーなフレームワークなんだし。
0135nobodyさん2013/01/19(土) 19:57:46.56ID:???
スライドショーのテーマ
が
なんとなくステマに認識された
0136nobodyさん2013/01/20(日) 14:00:47.28ID:???
Cakeみたいなすっトロい上にダサいFWは
無くなっていいよ。
なんだあのキモいActiveRecordもどきはw
0137nobodyさん2013/01/20(日) 14:13:40.58ID:???
わざわざこのスレ探して悪口書きに来たの?ダッサいなw
0138nobodyさん2013/01/20(日) 16:52:16.21ID:???
日本公式はつぶしてgoogleのフォーラム1本でいいじゃん
0139nobodyさん2013/01/20(日) 19:53:37.64ID:???
登録しないと書き込めない掲示板て嫌だよね
0140nobodyさん2013/01/20(日) 20:36:10.12ID:???
登録もせず何でも逃げれる体制でしか書き込みできない人も嫌だよね
0141nobodyさん2013/01/21(月) 00:18:04.57ID:???
登録する=手間がかかる=情報がそれなりに信頼出来る

って解釈もできるけど、だいたい登録制の掲示板って
常連しか集まらなくなって、新参が寄り付きにくいんだよね。
0142nobodyさん2013/01/21(月) 03:13:12.94ID:???
そんなことよりFuelPHPしよーぜ
0143nobodyさん2013/01/21(月) 04:53:21.31ID:???
登録とかめんどくせーよ。パスワード忘れるし
管理者が荒らし減らしたいだけのうんこシステム
0144nobodyさん2013/01/21(月) 10:23:14.60ID:???
twitterとかfacebookのアカウント(オープンIDだっけか?)で
ログイン出来るところもあるけど、
だいたいはログインした後に会員登録するという
二重にめんどくさい仕様になってるんだよな
0145nobodyさん2013/01/21(月) 13:22:07.22ID:???
何でCakeってfindの戻り値が只の配列なんですかぁ?
モデルのオブジェクト(の配列)返さなきゃ駄目だろ。
これ作った奴は全くもってオブジェクト指向ってものを理解してねぇんだな。
クソだクソ!
0146nobodyさん2013/01/21(月) 13:33:29.21ID:???
自分でそのように書き換えたら?
0147nobodyさん2013/01/21(月) 13:53:46.54ID:???
誰かそういうプラグイン作ってる人いなかったっけ
まったくうろ覚えだが
0148nobodyさん2013/01/21(月) 14:01:12.72ID:???
ムリにCakePHP使わないで他の使えよ
0149nobodyさん2013/01/21(月) 14:19:09.21ID:???
>>145
もう既に議論されまくってるよハゲ。
PHPのソース解析して実際にパフォーマンス計測した結果
配列にしておくべきと結論したんだよクズ。
CakePHP3になればデフォルトで選択可能になるみたいだがなクソムシ。
今はオブジェクト化ラッパーのプラグイン使えやウンコ。
0150nobodyさん2013/01/21(月) 18:43:32.93ID:???
>>149
その議論追ってみたいんだけど、URLとかある?
もしあったら貼ってくれまいか?
0151nobodyさん2013/01/21(月) 21:52:08.56ID:???
その議論は知らんが、単純に配列の方が、オブジェクトのプロパティより速い。
自分で試せるよ。データベースの返り値を模した配列とオブジェクトで試してみ。
0152nobodyさん2013/01/21(月) 22:54:41.50ID:???
>>151
配列の方がコスト低いのは分かるけどさ。
PHPのほかのフレームワークだと、オブジェクトにしてるのもあるから、
選択肢としてまったく無しじゃないと思うんだ。
そのなか、何で配列で行くことにしたのかなと思ってん。
■ このスレッドは過去ログ倉庫に格納されています