【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
0002nobodyさん
2010/07/23(金) 09:13:53ID:???CakePHP1.3系のダウンロード
http://github.com/cakephp/cakephp1x/archives/1.3
CakePHP 1.3.x API
http://api13.cakephp.org/
1.2から1.3への移行ガイド
http://book.cakephp.org/ja/view/1561/
CakePHP 1.3の新機能
http://book.cakephp.org/ja/view/1572/
■1.2系
CakePHP1.2系のダウンロード
http://github.com/cakephp/cakephp1x/archives/1.2
CakePHP 1.2.x API
http://api12.cakephp.org/
■Lithium(li3) PHP5.3+
http://rad-dev.org/lithium/
0003nobodyさん
2010/07/23(金) 09:14:23ID:???【PHP】フレームワーク CakePHP 8ホール目【1.3】
http://pc11.2ch.net/test/read.cgi/php/1268874059/
【PHP】フレームワーク CakePHP 7ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1251789126/
【PHP】フレームワーク CakePHP 6ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1236563737/
【PHP】フレームワーク CakePHP 5ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1229669539/
【PHP】フレームワーク CakePHP 4ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1213892680/
【PHP】フレームワーク CakePHP 3ホール目【本命】
http://pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】フレームワーク CakePHP 2ホール目
http://pc11.2ch.net/test/read.cgi/php/1194976228/
【PHP】フレームワーク CakePHP
http://pc11.2ch.net/test/read.cgi/php/1163850802/
0004nobodyさん
2010/07/23(金) 09:14:51ID:???【PHP】PHPフレームワーク総合スレ14
http://pc11.2ch.net/test/read.cgi/php/1253912143/
【PHP】下らねぇ質問はID出して書き込みやがれ 97
http://pc11.2ch.net/test/read.cgi/php/1279833891/
Zend Framework Part4
http://pc11.2ch.net/test/read.cgi/php/1265721684/
symfony PHPフレームワークpart2
http://pc11.2ch.net/test/read.cgi/php/1268753684/
[PHP][フレームワーク]CodeIgniterスレ
http://pc11.2ch.net/test/read.cgi/php/1177683436/
【PHP】Ethna part.2【国産フレームワーク】
http://pc11.2ch.net/test/read.cgi/php/1186096518/
【PHP】フレームワークMapleに舌鼓
http://pc11.2ch.net/test/read.cgi/php/1122105465/
0005nobodyさん
2010/07/23(金) 09:15:00ID:???PhpMatsuri2010(予定)
(10月2-3日)
CakeFest 2010 (Chicago, llinois, USA)
http://cakefest.org/
CakeMatsuriTokyo2009
http://matsuri.cakephp.jp/
CakePHPカンファレンス東京(2008)
http://conference.cakephp.jp/
連載:CakePHPで高速Webアプリ開発|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/cakephp
CakePHP 規約ワードメーカー WordMaker for CakePHP Conventions
ttp://www.cpa-lab.com/tech2/inflects/
Free CakePHP Book (Matt Curry and Mark Story)
http://www.pseudocoder.com/free-cakephp-book/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
CakePHP Note
http://www.garacter.com/notes/CakePHP+Note/ni:5
CakePHPを使ったMVC設計のベストプラクティス - Sooey
ttp://www.sooey.com/journal/2008/03/26/717/
Qdmail(日本語メールコンポーネントとして利用可能なライブラリ)
ttp://hal456.net/qdmail/
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
■ver1.1用
CakePHP プログラマーズ リファレンスガイド
http://cakephp.jp/doc/
CakePHPフレームワークによる快速WEB開発 |codezine
http://codezine.jp/a/article/aid/670.aspx
0006nobodyさん
2010/07/23(金) 09:15:34ID:???・ver1.3系
CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用
http://www.amazon.co.jp/dp/4798026646/
CakePHP 1.3 (独語らしい)
http://www.amazon.co.jp/dp/3827327709/
・ver1.2系
CakePHP1.2ガイドブック
http://www.amazon.co.jp/dp/4839932468/
CakePHPによる実践Webアプリケーション開発
http://www.amazon.co.jp/dp/4839930651/
オープンソース徹底活用 CakePHPによるWebアプリケーション開発
http://www.amazon.co.jp/dp/4798022225/
CakePHP ポケットリファレンス※ver1.2beta
http://www.amazon.co.jp/dp/4774135038
CakePHP徹底入門
http://www.amazon.co.jp/dp/479811717X
PHPで作る携帯サイトデベロッパーズガイド
http://www.amazon.co.jp/dp/4798024767/
・ver1.1系
CakePHPガイドブック
http://www.amazon.co.jp/dp/4839924317
Fast CakePHP
http://www.amazon.co.jp/dp/4774133418
0007nobodyさん
2010/07/23(金) 09:16:23ID:???補足があればどうぞ
Have a Nice Cooking !
> cake bake all User
0008nobodyさん
2010/07/23(金) 14:23:29ID:???バリデート後にコントローラー内で
$this->data[モデル] = $this->モデル->data;
ってやってたんですが、
これだとモデル毎にコントローラー内に書かないといけないので
もっと簡単にする方法はないでしょうか
0009nobodyさん
2010/07/23(金) 14:30:58ID:???基本的にbeforeValidateはsave用のデータを変更するときに使用するから
コントローラーのdataに戻さない使い方が基本よ
で、saveに失敗したら戻したいとかなら、データ加工のメソッドをモデルに別で作って、setの前とかで呼んであげたほうが良いと思う
$this->data = $this->User->changeStatus();
みたいに
0010nobodyさん
2010/07/23(金) 14:31:19ID:???class BbsController extends AppController {
var $name = 'Bbs';
var $title = "BBS";
とやったんですが、「bbテーブルがない」とエラーになります。
sで終わる単語は使うとまずいんでしょうか?
0011nobodyさん
2010/07/23(金) 14:33:22ID:???あ、その例だとデータ渡ってないな
$this->data = $this->User->changeStatus($this->data);
こうか?
0012nobodyさん
2010/07/23(金) 14:35:33ID:???sで終わる略語はInflectorに設定しなくてはだめ
可能ならtable名をboardsとかにしたほうが良い
0013nobodyさん
2010/07/23(金) 15:28:37ID:???コントローラで
var $uses = array('Bbs');
bbsモデルで
var $useTable = 'bbs';
って明示的に指定してやればうまくいきそうだけど。
0014nobodyさん
2010/07/23(金) 15:51:54ID:???テーブル名は自由に付けたい
0015nobodyさん
2010/07/23(金) 20:53:02ID:???BBSコントローラーだといまいち何をするものかわからん気がする
掲示板システム全部を請け負うと肥大化しそうだし、boards,threads,responsesとかで分けた方がいいんじゃね?
0016nobodyさん
2010/07/23(金) 23:15:07ID:???てか、掲示板は英語でforumって書くのが一般的だと思うが
0017nobodyさん
2010/07/23(金) 23:30:08ID:???0018nobodyさん
2010/07/23(金) 23:42:12ID:???標準ページングのURLが気持ち悪くて、/hogeとか/hoge?page=2にしてみて、
/hogeをキャッシュしようと思ったら/hoge?page=2も同じページと見なされちゃうっぽいんだけど
0019nobodyさん
2010/07/24(土) 00:57:52ID:???そこなんだよね。
cakeのpage:2 形式だとクエリストリングにスラッシュとか入った時におかしくなるし、
?page=2にしたらキャッシュしてくんないし。俺はキャッシュの方をあきらめたけど。
0020nobodyさん
2010/07/24(土) 01:38:30ID:???にかえるのでよければ簡単にできる。
あとキャッシュは自前でクラス使うのもそれほど苦じゃないかと
0021nobodyさん
2010/07/24(土) 04:31:49ID:???キャッシュの恩恵が受けられるサイトの場合、鯖で対策するだろうし。
0022nobodyさん
2010/07/24(土) 14:37:15ID:???0023nobodyさん
2010/07/24(土) 20:02:03ID:???それで気持ち悪いと思わないの?
0024nobodyさん
2010/07/24(土) 20:07:02ID:???0026nobodyさん
2010/07/24(土) 22:56:15ID:???0027nobodyさん
2010/07/24(土) 23:00:45ID:???0028nobodyさん
2010/07/24(土) 23:03:23ID:???気持ち悪いと思わないの?
気持ち悪いのであれば何故使ってるの?
>>26
なぜバージョンが気にならないの?
今時PHP4の書き方なんかに戻れないんだけど。
0029nobodyさん
2010/07/24(土) 23:17:59ID:???PHP5でしかつかわないんならPHP5で書けばいいだけだと思うんだけど
PHP4を強要される場面があるなら教えてくれないか?
0030nobodyさん
2010/07/24(土) 23:26:33ID:???0031nobodyさん
2010/07/24(土) 23:36:03ID:???「気持ち悪いと思わないの?」なんて聞かれるのは気持ち悪い
PHP4の書き方が気持ち悪いかどうかで言ったら別に気持ち悪くはないし
だから
PHP4の書き方強要されるのが嫌だ もっとうまい具合に解決してほしい
とストレートに言ってくれたほうがいいな
0032nobodyさん
2010/07/25(日) 00:37:10ID:???0033nobodyさん
2010/07/25(日) 03:13:37ID:???相手にしても会話にならない
0034nobodyさん
2010/07/25(日) 03:34:31ID:???むしろ批判こそいろいろ見えてきていいと思うけどな。
批判してた人も、え?そうなの!?になるかもしれないじゃん。
0035nobodyさん
2010/07/25(日) 04:37:05ID:???/contoroller/action/1 や /contoroller/action/id:1
みたいな形はSEO的に良いかもしれないけど、少しわかりづらい。
従来のように
/contoroller/action/?id=1 とか /contoroller/action?id=1
でも良いと思う。
0036nobodyさん
2010/07/25(日) 05:36:41ID:???OAuth認証のsignatureが合わなくて苦労した
0037nobodyさん
2010/07/25(日) 13:46:57ID:???スタティックなページだと、smart URLの方がいいと思うんだけど、
ページングとかのダイナミックなページは従来のURLの方がいいと思う
× /archive?id=1
○ /archive/id:1
○ /archive?page=2
× /archive/page:2
というわけで俺も両方使えた方がいいと思うけど、
従来のURLを切り捨てて実装している機能が多いから無理だろうなあ
前スレに出ていたキャッシュとかもそうだけど。
0038nobodyさん
2010/07/25(日) 16:16:20ID:???Cake標準のページネーション使うと、
named使わなきゃならないんだよね。
検索フォーム作るとき、
POSTのときと、namedのときで処理を変えなきゃいけないのが面倒・・・
Paginatorヘルパー拡張して、page=1みたいなURL吐くようにすればいいのかな?
0039nobodyさん
2010/07/25(日) 16:33:37ID:???おれはいっそのこと、$_POSTとか$_GETとかそのまま受け取るようにしてるよ。
namedから呼び出していたら使い勝手悪いし。
0041nobodyさん
2010/07/25(日) 20:49:24ID:???if ($_GET["page" > 1]) {
$page = $_GET["page"];
} else {
$page = 1;
}
こんな感じでページネーションに渡せば良くないか?
0042nobodyさん
2010/07/25(日) 20:50:32ID:???if ($_GET["page"] > 1) {
ま、整数のみ許可するとかもう少し処理入れるべきだろうが。
0043nobodyさん
2010/07/25(日) 21:03:34ID:???0044nobodyさん
2010/07/25(日) 21:04:58ID:???0045nobodyさん
2010/07/25(日) 21:05:59ID:???0046nobodyさん
2010/07/25(日) 21:33:12ID:???0048nobodyさん
2010/07/25(日) 23:54:46ID:???0049nobodyさん
2010/07/26(月) 01:51:25ID:REeMHXov/home/test/public_html // CakePHP以外のHTMLファイルなどがある
/home/test/public_html/system // CakePHPの公開ディレクトリ
ベースURLはhttp://localhost/test/だとし、
システム用の(Cake用)の場合は、http://localhost/test/system/になるとします。
ビューの中で<?php include("../include/header.php")?>
と相対指定すれば
/home/test/public_html/include/header.php
のファイルを読み込む事が出来るのですが、
ページネーションなどでURLが階層化されるとinclude出来ません。
通常は、views/elementにビューの共通ファイルを入れると思うのですが、
/home/test/public_html/include/header.phpにあるファイルをコピーするので
同じファイルが2つ存在する事になり、効率が良くないです。
上記のように「Cakeを使う箇所・使わない箇所」で分けている時、
共通化するファイルはどうするべきでしょうか?
やはりviewsに入れて分けるしかないのでしょうか?
0050nobodyさん
2010/07/26(月) 02:21:11ID:???>ビューの中で<?php include("../include/header.php")?>
>と相対指定すれば
あたりまえだろ
絶対指定しろ
>上記のように「Cakeを使う箇所・使わない箇所」で分けている時、
>共通化するファイルはどうするべきでしょうか?
>やはりviewsに入れて分けるしかないのでしょうか?
絶対指定した上で自分でどちらが扱いやすいか判断しろ
0051nobodyさん
2010/07/26(月) 02:27:28ID:???0052nobodyさん
2010/07/26(月) 02:51:26ID:???しかも聞くだけ聞いてまたのこのこあらわれる
0053nobodyさん
2010/07/26(月) 10:10:02ID:???0054nobodyさん
2010/07/27(火) 11:03:38ID:???こんな感じでモデルに記述してOKでしょうか
function rollback()
{
parent::rollback();
$this->afterRollback();
}
function afterRollback()
{
//処理
}
0055nobodyさん
2010/07/27(火) 11:50:14ID:???なんだよモデルってAppModel? 特定のモデル?modelClass?
あとOKでしょうか?ってエラー出なきゃなんでもOkっちゃOKだよ
0056nobodyさん
2010/07/27(火) 13:08:06ID:???0057nobodyさん
2010/07/27(火) 13:14:07ID:???0058nobodyさん
2010/07/27(火) 13:28:33ID:???0059nobodyさん
2010/07/27(火) 14:33:44ID:???insertしたら責任を取れ!
0061nobodyさん
2010/07/27(火) 14:44:16ID:???0062nobodyさん
2010/07/27(火) 14:51:29ID:???0063nobodyさん
2010/07/27(火) 15:47:46ID:???0064nobodyさん
2010/07/27(火) 15:53:51ID:???とすると、
$dataにはArrayデータが格納されます。
このArrayの中に「value」というカラムのデータがあるのですが、このvalueの値を1行で取得したいのです。
$value = $this->TestModel->findById(1)['TestModel']['value'];
はだめでした。
文法的にどのように書くのが正しいのでしょいか?
0065nobodyさん
2010/07/27(火) 15:57:55ID:???そんな風に考えていた時期が僕にもありました。
今考えると赤面ものです。
0068nobodyさん
2010/07/27(火) 16:03:05ID:???1.findのfieldsで取得したいfieldを指定できる。
2.配列の値がひとつならcurrentで下がっていけばいい。
これでできるんじゃないか
読みづらくてあほだけど。
0069nobodyさん
2010/07/27(火) 16:09:35ID:???perlでは
{$this->TestModel->findById(1)}['TestModel']['value'];
こんな感じにできた気がするなぁPHPは無理なんじゃない?てか知らない。
0070nobodyさん
2010/07/27(火) 16:39:06ID:???0071nobodyさん
2010/07/27(火) 18:37:46ID:???これじゃだめなん?
$data = $this->TestModel->field('value', array('id' => 1));
0072nobodyさん
2010/07/27(火) 19:43:06ID:???0073nobodyさん
2010/07/27(火) 19:45:19ID:???0074nobodyさん
2010/07/27(火) 19:45:57ID:???007564
2010/07/27(火) 21:01:45ID:???ありがとうございました。
modelに処理を書くにしてもシンプルに書きたいので、まさに理想です。
このやり方、しっかり心に刻みます。
みな調子いいなぁ・・・w
0076nobodyさん
2010/07/27(火) 21:43:58ID:???0077nobodyさん
2010/07/29(木) 03:48:26ID:8543E4o9http://japan.zdnet.com/video/screencast/story/0,3800079413,20354695,00.htm
http://www.asahi.com/ai/cp27863.edgefcs.net/screencasts/toytter.zip
http://japan.zdnet.com/blog/yoshimi/2007/10/01/entry_27016431/
http://japan.zdnet.com/blog/yoshimi/2007/10/10/entry_27016432/
http://japan.zdnet.com/blog/yoshimi/2007/10/12/entry_27016433/
http://japan.zdnet.com/blog/yoshimi/2007/10/22/entry_27016434/
http://japan.zdnet.com/blog/yoshimi/2007/11/14/entry_27016435/
http://japan.zdnet.com/blog/yoshimi/2007/11/17/entry_27016436/
http://japan.zdnet.com/blog/yoshimi/2007/11/22/entry_27016437/
http://japan.zdnet.com/blog/yoshimi/2007/11/29/entry_27016438/
http://japan.zdnet.com/blog/yoshimi/2007/12/08/entry_27016439/
toytter-2.0
http://japan.zdnet.com/blog/yoshimi/2008/02/05/entry_27016446/
TwitterAPIをActiveResourceで
http://japan.zdnet.com/blog/yoshimi/2008/02/18/entry_27016448/
script/consoleから
> Twitter::Status.post(:update, :status => "activeresource test")
ってやるだけで、Twitterに投稿できる。
これでtoytter内で発言すると、twitterにも同じ内容が投稿されるようになりました。
0078nobodyさん
2010/07/29(木) 15:34:05ID:???findしたデータを1次元の配列に変換しないといけないのですが
これができる関数ってあるのでしょうか。
array_mapするのが定石でしょうか。
$result=$this->Model1->find('all', array('fields'=>'Model1.id'));
$array=hoge_function($result);
$conditions=>array('Model2.hoge_id'=>$array);
$this->Model2->find('all', array('conditions'=>$conditions));
上記の例の場合のhoge_functionのような処理を簡単にしたいです。
0079nobodyさん
2010/07/29(木) 15:43:01ID:???その例ならアソシエーション使わない理由が分からない
例を無視して応えるならfind('list')で取得してarray_keysかな?
只今オープン価格中
http://gekiyasu.issekinicho.com
0081nobodyさん
2010/07/30(金) 09:29:57ID:???Set::extractかな
http://book.cakephp.org/ja/view/1501/extract
CakePHPはサブクエリが思うように使えないから、俺もよくやる
■ このスレッドは過去ログ倉庫に格納されています