トップページphp
1001コメント304KB

【PHP】フレームワーク CakePHP 9ホール目【v1.3】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/07/23(金) 09:13:26ID:v3m09M9u
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生した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:???
■1.3系
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:???
テンプレらしきものは以上(>>1-6 ひとつ増えちゃった)
補足があればどうぞ

Have a Nice Cooking !
> cake bake all User
0008nobodyさん2010/07/23(金) 14:23:29ID:???
beforeValidateで加工編集した$this->dataをビューに渡すには
バリデート後にコントローラー内で

$this->data[モデル] = $this->モデル->data;

ってやってたんですが、
これだとモデル毎にコントローラー内に書かないといけないので
もっと簡単にする方法はないでしょうか
0009nobodyさん2010/07/23(金) 14:30:58ID:???
>>8
基本的にbeforeValidateはsave用のデータを変更するときに使用するから
コントローラーのdataに戻さない使い方が基本よ

で、saveに失敗したら戻したいとかなら、データ加工のメソッドをモデルに別で作って、setの前とかで呼んであげたほうが良いと思う
$this->data = $this->User->changeStatus();
みたいに
0010nobodyさん2010/07/23(金) 14:31:19ID:???
BBS用のコントローラを作って
class BbsController extends AppController {
  var $name = 'Bbs';
  var $title = "BBS";

とやったんですが、「bbテーブルがない」とエラーになります。
sで終わる単語は使うとまずいんでしょうか?
0011nobodyさん2010/07/23(金) 14:33:22ID:???
>>9
あ、その例だとデータ渡ってないな
$this->data = $this->User->changeStatus($this->data);
こうか?
0012nobodyさん2010/07/23(金) 14:35:33ID:???
>>10
sで終わる略語はInflectorに設定しなくてはだめ

可能ならtable名をboardsとかにしたほうが良い
0013nobodyさん2010/07/23(金) 15:28:37ID:???
>>10
コントローラで
var $uses = array('Bbs');

bbsモデルで
var $useTable = 'bbs';

って明示的に指定してやればうまくいきそうだけど。
0014nobodyさん2010/07/23(金) 15:51:54ID:???
俺もいつもそうしてるな。
テーブル名は自由に付けたい
0015nobodyさん2010/07/23(金) 20:53:02ID:???
俺ならboardsにするな
BBSコントローラーだといまいち何をするものかわからん気がする
掲示板システム全部を請け負うと肥大化しそうだし、boards,threads,responsesとかで分けた方がいいんじゃね?
0016nobodyさん2010/07/23(金) 23:15:07ID:???
BBSの複数形はBBSes
てか、掲示板は英語でforumって書くのが一般的だと思うが
0017nobodyさん2010/07/23(金) 23:30:08ID:???
topicsは?
0018nobodyさん2010/07/23(金) 23:42:12ID:???
cakephpって普通にgetパラメーター使うのって非推奨?
標準ページングのURLが気持ち悪くて、/hogeとか/hoge?page=2にしてみて、
/hogeをキャッシュしようと思ったら/hoge?page=2も同じページと見なされちゃうっぽいんだけど
0019nobodyさん2010/07/24(土) 00:57:52ID:???
>>18
そこなんだよね。
cakeのpage:2 形式だとクエリストリングにスラッシュとか入った時におかしくなるし、
?page=2にしたらキャッシュしてくんないし。俺はキャッシュの方をあきらめたけど。
0020nobodyさん2010/07/24(土) 01:38:30ID:???
/key=val/key2=val2/
にかえるのでよければ簡単にできる。

あとキャッシュは自前でクラス使うのもそれほど苦じゃないかと
0021nobodyさん2010/07/24(土) 04:31:49ID:???
ま、素のPHPで書けばそもそもキャッシュ無いしな。
キャッシュの恩恵が受けられるサイトの場合、鯖で対策するだろうし。
0022nobodyさん2010/07/24(土) 14:37:15ID:???
beforFilter内でrenderができないのだけどエラーを出す時にはどうすればよいのでしょうか
0023nobodyさん2010/07/24(土) 20:02:03ID:???
CakePHPってPHP4の書き方を強要されるわけだが
それで気持ち悪いと思わないの?
0024nobodyさん2010/07/24(土) 20:07:02ID:???
気持ち悪いと思うかどうかが聞きたいの?
0025nobodyさん2010/07/24(土) 22:28:17ID:???
>>23
そうだね。じゃ、バイバイ
0026nobodyさん2010/07/24(土) 22:56:15ID:???
PHPのバージョンはそんなに気にならないが、連想配列地獄はかなり気になる
0027nobodyさん2010/07/24(土) 23:00:45ID:???
他に拡張性のあるfunctionの書き方ってどんなのがあるの?
0028nobodyさん2010/07/24(土) 23:03:23ID:???
>>24
気持ち悪いと思わないの?
気持ち悪いのであれば何故使ってるの?

>>26
なぜバージョンが気にならないの?
今時PHP4の書き方なんかに戻れないんだけど。
0029nobodyさん2010/07/24(土) 23:17:59ID:???
>>28
PHP5でしかつかわないんならPHP5で書けばいいだけだと思うんだけど
PHP4を強要される場面があるなら教えてくれないか?
0030nobodyさん2010/07/24(土) 23:26:33ID:???
Lithiumに期待
0031nobodyさん2010/07/24(土) 23:36:03ID:???
何の手続きか知らないけど
「気持ち悪いと思わないの?」なんて聞かれるのは気持ち悪い

PHP4の書き方が気持ち悪いかどうかで言ったら別に気持ち悪くはないし

だから
PHP4の書き方強要されるのが嫌だ もっとうまい具合に解決してほしい
とストレートに言ってくれたほうがいいな
0032nobodyさん2010/07/25(日) 00:37:10ID:???
var $name = なんて書かないぜ!
0033nobodyさん2010/07/25(日) 03:13:37ID:???
CakePHPに言いがかりをつけたいだけだから
相手にしても会話にならない
0034nobodyさん2010/07/25(日) 03:34:31ID:???
まぁそう言わずに
むしろ批判こそいろいろ見えてきていいと思うけどな。
批判してた人も、え?そうなの!?になるかもしれないじゃん。
0035nobodyさん2010/07/25(日) 04:37:05ID:???
批判というか意見だけど、URLパラメーターの切替が出来たらいいな。
/contoroller/action/1 や /contoroller/action/id:1
みたいな形はSEO的に良いかもしれないけど、少しわかりづらい。
従来のように
/contoroller/action/?id=1 とか /contoroller/action?id=1
でも良いと思う。
0036nobodyさん2010/07/25(日) 05:36:41ID:???
mod_rewriteのせいで、リクエスト側と受け取るURLが変わるから
OAuth認証のsignatureが合わなくて苦労した
0037nobodyさん2010/07/25(日) 13:46:57ID:???
>>35
スタティックなページだと、smart URLの方がいいと思うんだけど、
ページングとかのダイナミックなページは従来のURLの方がいいと思う

× /archive?id=1
○ /archive/id:1
○ /archive?page=2
× /archive/page:2

というわけで俺も両方使えた方がいいと思うけど、
従来のURLを切り捨てて実装している機能が多いから無理だろうなあ
前スレに出ていたキャッシュとかもそうだけど。
0038nobodyさん2010/07/25(日) 16:16:20ID:???
named使いにくいと思ってたの、俺だけじゃなかったんだ

Cake標準のページネーション使うと、
named使わなきゃならないんだよね。

検索フォーム作るとき、
POSTのときと、namedのときで処理を変えなきゃいけないのが面倒・・・

Paginatorヘルパー拡張して、page=1みたいなURL吐くようにすればいいのかな?
0039nobodyさん2010/07/25(日) 16:33:37ID:???
>>38
おれはいっそのこと、$_POSTとか$_GETとかそのまま受け取るようにしてるよ。
namedから呼び出していたら使い勝手悪いし。
0040nobodyさん2010/07/25(日) 20:37:53ID:???
>>39
2ページ目以降はどうするの?
0041nobodyさん2010/07/25(日) 20:49:24ID:???
>>40
if ($_GET["page" > 1]) {
$page = $_GET["page"];
} else {
$page = 1;
}

こんな感じでページネーションに渡せば良くないか?
0042nobodyさん2010/07/25(日) 20:50:32ID:???
1行目が変だった・・・
if ($_GET["page"] > 1) {

ま、整数のみ許可するとかもう少し処理入れるべきだろうが。
0043nobodyさん2010/07/25(日) 21:03:34ID:???
なにそのうんこソース
0044nobodyさん2010/07/25(日) 21:04:58ID:???
$page = empty($_GET['page']) ? 1 : $_GET['page'];
0045nobodyさん2010/07/25(日) 21:05:59ID:???
えーーくせれんっ!!
0046nobodyさん2010/07/25(日) 21:33:12ID:???
namedで来るのはそのまま使って後ろに ?query=eroero とか付ければいいだけじゃ。
■ このスレッドは過去ログ倉庫に格納されています