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

【PHP】フレームワーク CakePHP 7ホール目【v1.2】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/09/01(火) 16:12:06ID:XVdxsVut
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです。

※sage推奨
テンプレは>>1-5くらい

■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
the Bakery
http://bakery.cakephp.org/
thechaw
http://thechaw.com/projects
CheatSheet (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf

■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
http://book.cakephp.org/ja
CakeMatsuriTokyo2009
http://matsuri.cakephp.jp/
0697nobodyさん2010/01/11(月) 21:32:04ID:???
山羊だっけ?
0698nobodyさん2010/01/11(月) 22:13:24ID:???
トランザクションって
コミットとかでしょ?

SQLのことだから別に知らなくても問題ない。
cakephpが勝手にやってくれるし。
0699nobodyさん2010/01/11(月) 22:38:11ID:???
http://cakephp.jp/doc/ch06s03.html
0700nobodyさん2010/01/11(月) 23:25:43ID:???
cakephpが勝手にやってくれるし。
0701nobodyさん2010/01/12(火) 22:26:59ID:???
イヤン・・・ハクション
0702nobodyさん2010/01/12(火) 23:06:39ID:???
cakeって頭いいんだな
0703nobodyさん2010/01/12(火) 23:23:26ID:???
自律型フレームワークなんだな
0704nobodyさん2010/01/13(水) 01:14:38ID:???
オレはMS Accessっ子、ブリオクエリっ子で、RDBは線で結ぶ方法しか知らなくて、SQLは
読めも書けもしない。だからCakePHPのfindとか、saveとかメチャ好きなんだけど、
SQL書ける人は、「Cakeのfindとかsaveとか覚えちゃられねーよ。
汎用性のあるSQLで書くのが一番じゃね。」と言う人も多いのかなあ?
それでもヤッパCakeのfindとかsaveとかは、直感的で効率的で便利と評価されるのかなあ?
0705nobodyさん2010/01/13(水) 01:23:13ID:???
普通に入れたり出したりしてる分には楽だけど、集計とかロジックとか入れたい時はむしろ邪魔に感じるな
生SQLをqueryに投げた時、結果の格納のされ方にクセがあってちょっと戸惑った
0706nobodyさん2010/01/13(水) 03:31:13ID:???
>>704
お前の文体嫌いじゃないぜ
SQLについては直感的というか効率&汎用性を考えて使い分けることもあるという程度かな
0707nobodyさん2010/01/13(水) 03:43:15ID:???
SQLとか楽に処理してくれなら
わざわざ覚える必要無いだろ

もう俺SQL構文愛してぺろぺろしたいくらいですって言うなら別だが・・
0708nobodyさん2010/01/13(水) 14:15:50ID:???
union 使ったり、
めんどくさい条件とか使うときは生SQL。

ちょとしたデータの操作はcakeを使ったます。
0709nobodyさん2010/01/13(水) 15:45:03ID:???
質問なのですが、皆さんはテーブルの結合を行いたいとき、プログラム内で随時
JOINをしているのですか?

俺はMySQL側でビューを定義して、そのビュー用のmodelを定義して、それ経由で
データの取得をしてます。

プログラム内でjoinのほうが各段に速いとか、明確な優位性はあるんでしょうか?
0710nobodyさん2010/01/13(水) 22:00:48ID:???
cakePHPでなんか作って配布する場合
appフォルダのみ配布するべきか、cakeも含めたフォルダを配布する
どっち?
0711nobodyさん2010/01/13(水) 23:12:16ID:???
>>710
appとvendorsに何も入っていない時のcake本体をzip圧縮した場合のファイルサイズは約1.6MB
vendorsにも何か入れる場合が多いし、高々cake本体1.6MBだから、cakeも含めたフォルダを
配布するなあ。cakeはhtdocsの下へ配置すればどこでも動くので、この配布の方が安心で手間
いらずだと思う。
0712nobodyさん2010/01/14(木) 00:17:27ID:???
>>711
アザーズ!
landとかいう無料サーバーにCakephpアップしたら時間かかったから
気になったんだよぇ〜
0713nobodyさん2010/01/14(木) 12:15:33ID:???
Cakeはリリースバージョンによって、安定板パッケージでもイロイロエラーを含んでいるので、
丸ごとパッケージにする。

※以前、Authコンポーネントでうまく認証がかからないエラーがあった
0714nobodyさん2010/01/14(木) 16:10:39ID:???
>>713
アザーズ!
0715nobodyさん2010/01/15(金) 18:42:50ID:???
$_POSTの値の文字コードをチェックしたり変換する場合、どこでこの処理書いてる?
0716nobodyさん2010/01/15(金) 18:45:07ID:???
>>715
appコントローラーの beforefilter に一票。
0717nobodyさん2010/01/15(金) 18:48:19ID:???
>>716
なるほど継承してすべてのコントローラに対応できますね
0718nobodyさん2010/01/16(土) 16:49:23ID:???
http://bookuma.com/
ケータイでこのサイト見てたらエラーが表示されたんだけど、ディレクトリ構成がもろにcakephpだった
0719nobodyさん2010/01/17(日) 14:58:10ID:???
CakePHP 1.3.0-beta キタ━━━━━━(゚∀゚)━━━━━━ !!
http://bakery.cakephp.org/articles/view/cakephp-1-3-0-beta-has-landed
0720nobodyさん2010/01/17(日) 16:43:43ID:???
今までのCakePHPと CakePHP1.3は別物ですのでご注意を

というより改名すべき

焦げちゃったPHPとかにね^^;

0721nobodyさん2010/01/17(日) 16:49:52ID:???
クッキーPHPとか?
0722nobodyさん2010/01/17(日) 21:32:18ID:???
http://blog.ecworks.jp/archives/861
この辺を見ると1.3はそれほど変わった感じもないけど
0723nobodyさん2010/01/17(日) 21:34:00ID:???
cakephpのバージョンが上がるたび、覚えにくくなる。
技術の進歩とともに自分の老化が。

バージョンアップに対応しなくていいやって思ったら技術者としてだめだよね。
0724nobodyさん2010/01/17(日) 23:35:23ID:???
>>723
バージョンごとの差異を覚えるのは俺も苦手
まっさらな状態から覚えた方が覚えやすいよ
0725nobodyさん2010/01/18(月) 00:39:57ID:???
>>720
それはcake3の話なのでは?
0726nobodyさん2010/01/18(月) 01:09:24ID:???
新しいJsHelperとやらでJQueryっぽいメソッドチェイン出来るっぽいね
激しく期待。つか標準でscriptaculous以外をサポートしたのって1.3からだよね

$js->get('#foo')->event('click', $eventCode);
0727nobodyさん2010/01/18(月) 01:53:18ID:???
JQuery用ヘルパー作ってたけど無駄になりそうだ。

でもJQueryをCakeのAjaxHelperの書式に合わせようと思ったら結構無理があったから、
標準でこういう書き方できるようになるならいいや。
0728nobodyさん2010/01/18(月) 01:56:16ID:???
JQueryって書くとJavaっぽくなるな
0729nobodyさん2010/01/18(月) 12:20:16ID:???
?
0730nobodyさん2010/01/18(月) 16:10:52ID:???
小文字にしろ、ということだろう
0731nobodyさん2010/01/18(月) 22:17:03ID:???
mootoolsの事も忘れないでください。
0732nobodyさん2010/01/20(水) 19:42:54ID:???
最初のsqlテーブルの組み方が重要だねこれ。
ミスるphpコードが複雑になる。。。
0733nobodyさん2010/01/20(水) 23:25:07ID:???
>>732
フレームワークは規約を守ってナンボよ。
0734nobodyさん2010/01/21(木) 00:44:08ID:???
DBのデザイン間違ってたらどうにもならない
0735nobodyさん2010/01/21(木) 00:46:10ID:???
まあ自己中にはフレームワークはあわんだろうな
0736nobodyさん2010/01/21(木) 18:43:26ID:???
cakeに限った話じゃないけど
function getEmail()

とか

function setApple()
とか

function のあとの、大文字にした方がいい部分ていうのは明確な決まりがあるのかな。
0737nobodyさん2010/01/21(木) 18:47:39ID:???
明確な決まりって言うか、読みにくいでしょ

getemailとか
setapple

---------------


getEmail
setApple
0738nobodyさん2010/01/22(金) 02:16:00ID:fZt9z1/I
基本キャメルケースだけど、別にアンダースコアでもいいと思う
0739nobodyさん2010/01/22(金) 11:25:18ID:???
Pearのコーディング規則を参考にするといいかもね。

http://pear.php.net/manual/ja/standards.naming.php
0740nobodyさん2010/01/22(金) 16:34:06ID:???
cake使ってんなら参考にするのはこっちじゃね?
http://book.cakephp.org/view/509/Coding-Standards
0741nobodyさん2010/01/23(土) 21:19:58ID:???
>>737-740
ありがとう。
0742nobodyさん2010/01/27(水) 00:02:16ID:???
入れてみたけどIDEって何使うのがいいのかな?
Visual stadioでしか開発した事ないのでテキストエディタ
まんまでは違和感が。
0743nobodyさん2010/01/27(水) 02:24:26ID:???
VSからならPDTがいいんじゃね。重いけど
07447422010/01/27(水) 07:23:15ID:???
>>743
Eclipse+PDTですかね。レスサンクス。

PDTとcakeを同じサーバーにインストする方法は簡単だけど、
サーバーと開発環境がリモートだと結構設定が難しそうですね。
調べないと……。
0745nobodyさん2010/01/27(水) 12:10:53ID:???
>>743

おれ、netBeans使ってる。
cakeのメソッド類を入力補完リストに表示させるため方法は、Eclipseの方法がそのまま使えた。
Eclipseより快適です
0746nobodyさん2010/01/27(水) 20:22:02ID:???
リモートデバッガならzend studioなのかな。xdebug?
俺はマカーにスイッチしてからはTextMate一本になった。
cakeのsnippetも本家theChawでgitレポジトリが作られてるし。オススメ。
マカーにスイッチした際は是非。日本語怪しいけど。
0747nobodyさん2010/01/28(木) 14:53:03ID:???
トランザクション用に、select for updateを発行したいのですが、Cakeでどうにか実現できる方法はありますか?
0748nobodyさん2010/02/01(月) 17:10:22ID:???
IDE使ってる人多いのね
自分は普通にviだわ

公式サイトのcompareページはnoindexしてほしい
0749nobodyさん2010/02/02(火) 00:14:38ID:???
ページ毎に表示変えたいんですけどどうすればいいですか?
エレメンとでファイルを呼び出すって感じですか?
0750nobodyさん2010/02/02(火) 06:59:25ID:xXDrlP2U
Cakephpってプロジェクトに
cakephpのファイルを毎回ぶち込んで使うって解釈でOk?

PEARみたいにPHPとかにインストールするんじゃなくて
0751nobodyさん2010/02/02(火) 09:08:23ID:???
どこかを書き換えれば共通に出来る
0752nobodyさん2010/02/02(火) 09:30:11ID:???
>>750
インストールではない(解凍のみで使用可能)
基本的には、webroot/index.phpとwebroot/test.phpの定数を書き換えれば、どこにでも置けるから共通化が可能
プロジェクト名も変更可能

でもオススメはシンボリックリンク使って定数の書き換えをしないようにすることかな
0753nobodyさん2010/02/02(火) 15:16:37ID:zKiQz/op
共通にしちゃうと、特定のプロジェクトのみアップデートしたいときとかに困りそう
0754nobodyさん2010/02/02(火) 15:49:53ID:???
>>753
んなこたーない
0755nobodyさん2010/02/03(水) 00:54:14ID:???
>>753
やっぱCakeは本体は一つで共有で運用するのが基本でしょう。
07567522010/02/03(水) 16:21:18ID:???
なんと!
俺が異端なのかなあ?
ずっと前の勉強会で、ブルーオーシャンだかどこかも、個別にしてるって言っていた気がするんだけど。
「stableで作っても、全然stableじゃなかったりするのでアップデートするときに問題が起こるかも知れないので」
って説明してた気がする。
0757nobodyさん2010/02/03(水) 16:38:47ID:???
俺も個別。
動作確認時からフレームワーク部分が変わってしまうとバリデーションを行うのが大変。
運用後は原則変えないようにしてる。
0758nobodyさん2010/02/03(水) 16:52:12ID:???
>>756

>>752は おいらなんだが・・・
えっと、coreを共通にするって話と、アップデートを個別に行なうって話は別だと思うよ
基本的には最新バージョンにリンク先を向けておいて、必要に応じて旧バージョンに向けることにしてる
07597532010/02/03(水) 17:57:26ID:???
>>756で名乗り間違えました、サーセン
0760nobodyさん2010/02/03(水) 21:28:54ID:???
>>758
Windowsサーバで運用してたので考え付かなかった。
確かにLinuxサーバとかだとそっちのほうがスマートだ。
0761nobodyさん2010/02/04(木) 10:09:41ID:???
Windowsにもジャンクションってあるよ
0762nobodyさん2010/02/04(木) 21:37:40ID:???
Paginatorを使った場合に、sidが上手く引き継げない問題が発生して、
いろいろとググってみたらこんなページを見つけた。

【CakePHP】session.use_trans_sid=1をCakePHPで使う場合の注意 | ECWorks Blog
http://blog.ecworks.jp/archives/525
【CakePHP】namedパラメータのセパレータについて皆さんにお聞きしたいこと | ECWorks Blog
http://blog.ecworks.jp/archives/531
"paginatorのURLをスマートに" フォーラム - CakePHP Users in Japan
http://cakephp.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=1860&forum=3

コロンがURL内に含まれていると外部サイトへのリンクとPHPが誤解してしまうせいで発生する問題らしいんだけど、
セパレータは本当にコロンのまんまでいいの?
RFC1738によればコロンは予約されてるからあんまり良くないらしいんだけど。
ブログの人がチケット投げたらしいんだけど、見つけられなかったので、その後どうなったのかがわからない。

http://www.google.co.jp/search?hl=en&q=inurl:page+2
ぐぐってみると、あんまりコロンでセパレートしてるサイトは無いみたいなんだけど
0763nobodyさん2010/02/05(金) 10:00:55ID:???
>>762
ktalibrary使えば解決するよ
0764nobodyさん2010/02/05(金) 20:36:29ID:???
>>763
一応言っておくか「宣伝乙」

まじめな話、そういう問題じゃないだろ
ケータイに限らず、URLにコロンが含まれていておkなのかという話なのだから
0765nobodyさん2010/02/06(土) 00:18:22ID:???
誘導されてきました
Cakephpのモデルって
元からDBアクセスのためのメソッドが用意されてて
コントロール側でクラスを呼び出して実行すればOK?

モデルクラスは定義で使うのがメインって感じですか?
0766nobodyさん2010/02/06(土) 13:14:46ID:???
>>765
そう。Controllerから
$this->User->find('all');
のように使う

モデルは、バリデーションルール他を書くだけでなく、ビジネスロジックを書くところとして使う
$this->User->originalMethod(); のように使えばよい
0767nobodyさん2010/02/07(日) 11:45:14ID:???
>>3
このCakePHPで高速Webアプリ開発の本って尼で評判悪いな。
0768nobodyさん2010/02/07(日) 12:16:33ID:???
あれは論外。
0769nobodyさん2010/02/07(日) 12:45:51ID:???
>>767-768
2008/1/8発売 日本で始めてのCake本やないか。ゆるしてやれや。
日本初を評価してやれや。(いや世界初のCake単独書籍かもしれん。)
http://www.amazon.co.jp/dp/4774133418
0770nobodyさん2010/02/07(日) 13:23:41ID:???
アレはそういうレベルの話ではないが、まあ、この辺でやめておく。
0771nobodyさん2010/02/07(日) 13:58:35ID:???
CakePHPガイドブックは2007年発売だけどね
単独書籍としては2冊目のはず
0772nobodyさん2010/02/07(日) 14:22:25ID:???
>>769
それでいまつくってるけど
<p><?php echo $form->input('Task/content') ?>
<?php echo $form->submit('タスクを追加') ?></p>

が
$html->inputになってる
古い版みたいだけど
0773nobodyさん2010/02/07(日) 14:24:49ID:???
1.1対応だからしゃーない
1.2対対応のガイドブック、ポケットリファレンス、実践ウェブアプリケーションあたりが良い
0774nobodyさん2010/02/07(日) 15:29:38ID:???
>>772
こことか、いんじゃね。
http://kuri6005.sakura.ne.jp/cake/wiki/index.php?ToDo%A5%A2%A5%D7%A5%EA%281%A1%C15%29%A4%F2%A5%C8%A5%EC%A1%BC%A5%B9%A4%B7%A4%C6%A4%DF%A4%BF
0775nobodyさん2010/02/07(日) 15:40:43ID:???
>>771
ほんまや!CakePHPガイドブックは07/10/25発売や。
これが世界初のCake単独本や。スマソ
http://www.amazon.co.jp/dp/4839924317
0776nobodyさん2010/02/07(日) 15:51:39ID:???
あきやんの本はアレだけどgihyoで連載してCakePHPを世の中に知らしめた功績がある
0777nobodyさん2010/02/07(日) 16:16:01ID:???
>>776
俺もakiyanは偉いと思う クールな情報発信をしてくれてるもんな。
09/5/24
http://www.akiyan.com/blog/archives/2009/05/routesphp-cakephp-12.html
09/10/31
http://www.akiyan.com/blog/archives/2009/11/cakematsuritokyo2009-containable-behavior-lt.html
0778nobodyさん2010/02/07(日) 16:28:41ID:???
akiyanがどうこうとは言っていないよ。
あの本は、構成とか編集がおかしいから論外だと言っているだけ。
0779nobodyさん2010/02/07(日) 20:11:26ID:???
1.2.6のzipはダウンロードできますか?
tgzは落とせるので問題はないのですが・・・。
0780nobodyさん2010/02/07(日) 21:00:40ID:???
>>779
2010/2/7 20:58現在、1.2.6 zipはダウンロード出来ませんでした乙
Windowsでもtgzは解凍すれば使えるのでしょうか?
0781nobodyさん2010/02/07(日) 21:21:04ID:???
ググれカス
07827792010/02/07(日) 22:43:52ID:???
>780
確認していただき、ありがとうございます。

1.2.5のzipしか落としたことがなかったので
詳しいことは分からないですが、
tgzを解凍したファイル構成は異なるものだったので
cakePHPが初めてでなければ問題ないように思います。

1.2.6のzipはURLを直接たたくと落とせます
(リダイレクトで失敗するようです)。
0783nobodyさん2010/02/08(月) 01:03:10ID:???
>>774
参考になるかも
ありがとう

0784nobodyさん2010/02/08(月) 17:14:15ID:???
paginationって
/comments/view/10/page:2
みたいなURLが普通だと思うけど、
今試してみたら
/comments/view/10?page=2
とか
/comments/view/10/?page=2
でも動いちゃったんだけど、これって公式にサポートされてる機能?
0785nobodyさん2010/02/08(月) 17:51:15ID:???
普通が逆だろ
Cakeが独自にルーティングしてるんだよ
07867802010/02/08(月) 20:42:28ID:???
>>782
1.2.6のzipはURLを直接たたくと落とせました。
http://github.com/cakephp/cakephp1x/zipball/1.2.6
助かりました。ありがとうございました。
0787nobodyさん2010/02/08(月) 22:01:02ID:???
>>784
CakePHPのpaginatorの記法は>>784が言うようなのが普通でしょ?
俺も試してみたけど、どうやらcontroller側は>>784でも正しく解釈してくれるみたい
limitとか他のパラメーターもOKでページングも正しく動いた
どうやらnamedされたパラメータがなければGETパラメータを使ってくれるみたい
ただ、helper側はそれに併せてくれるわけではないので$paginator->next()とか使えば
基本のpaginatorの記法になるね
0788nobodyさん2010/02/08(月) 22:01:47ID:???
一行目は>>784じゃなくて>>785だった
0789nobodyさん2010/02/08(月) 22:24:46ID:???
いやWebのURLの大原則として?と&だろパラメタは
それをCakeが勝手に整形してるだけだから
07907842010/02/09(火) 00:33:43ID:???
>>789
スマートURLが基本なのにGETパラメーターでもきちんとpaginatorのパラメータとして扱われるって話だよ?
それとも?controller=commentsとかでも動くって話?
0791nobodyさん2010/02/09(火) 01:47:50ID:???
いやだからCakePHPだって普通のWebあぷりけーしょんなんだからさ
0792nobodyさん2010/02/09(火) 03:18:32ID:???
つうか、":"を使ったnamedパラメータの値に"?"を渡すとそこでリクエストパラメータが豚切れるのが気になる
2重3重にURLエンコードしても同じ。
?xxx=yyyがnamedパラメータとして使えるんなら、今度からそっちを使うようにする
0793nobodyさん2010/02/09(火) 03:50:25ID:???
>>775
この本かったら序盤にDOS窓使ってBakeしろってかいてあったけど
Bakeってネットにアップするときとかにつかうわけ?
0794nobodyさん2010/02/09(火) 04:09:21ID:???
$this->dataとかの
$thisって何をさしてるんですか?

ビューから送られてきた値?
コントローラーのこと?
0795nobodyさん2010/02/09(火) 07:28:51ID:???
>>794
PHPのクラスについて勉強してください。
Cakeのお話ではありません。
0796nobodyさん2010/02/09(火) 08:22:32ID:???
>>793
> Bakeってネットにアップするときとかにつかうわけ?
ちがうよ。グダグダ言ってないで動かしてみればすぐわかるじゃん。
動かしてみろよ。

>>775
> この本かったら序盤にDOS窓使ってBakeしろってかいてあったけど
てか、この本って「古典」だよ。古代のCakeについての歴史を勉強したいなら
とやかく言わないけど、現代はCakePHP1.2がstableだよ。
■ このスレッドは過去ログ倉庫に格納されています