【PHP】フレームワーク CakePHP
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2006/11/18(土) 20:53:22ID:???本家
http://www.cakephp.org/
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
マニュアル日本語化
http://www.cakephp.jp/doc/
日本語フォーラム
http://cakephp.jp/modules/newbb/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
0883nobodyさん
2007/10/21(日) 17:33:03ID:???0884nobodyさん
2007/10/21(日) 21:00:01ID:???Cakeの勉強続ける意味ってあるのかな。
Railsと併用とか戻ったとかいう人いる?
もちろん、Rails使えない環境ではCake使えるけどRails知ってて敢えてCake使ってるっていう人。
0885nobodyさん
2007/10/21(日) 21:06:47ID:???(;゚ Д゚) 両方使えて損は無いだろ?時間が問題になるだけで。
0886nobodyさん
2007/10/21(日) 21:27:02ID:???0887nobodyさん
2007/10/22(月) 12:31:50ID:???どうすればいいんでしょうか?
後プログラマに依存しないで静的ページを追加していく方法とかありますか?
0888nobodyさん
2007/10/22(月) 12:53:18ID:???適当なディレクトリにインストールすれ
静的ページの定義がわからんが、単にファイルとして設置もできるしCake通った場合もおk
0889nobodyさん
2007/10/22(月) 20:39:14ID:???0890nobodyさん
2007/10/22(月) 20:53:25ID:???0891nobodyさん
2007/10/22(月) 23:22:05ID:???0892nobodyさん
2007/10/23(火) 16:42:02ID:???0893nobodyさん
2007/10/23(火) 22:15:53ID:???でもこれが組み込まれていないorz
afterFind not called on associated Model Behaviours - diff attached
https://trac.cakephp.org/ticket/2056
バグだろ? 早く公式で組み込まれないかな・・・
0895nobodyさん
2007/10/25(木) 00:35:51ID:???0896nobodyさん
2007/10/25(木) 01:04:02ID:???わかっていたことだけど、alpha版に手を出すと面倒だねw
>857のメールの件だが、動かしてはいないんだがソース見た限りではちゃんと直っているようだ。
コントローラーのnamedArgsがなくなってpassedArgsだけになっていた。ほとんど同じようなものなので、簡単に修正。
namedArgsはもともと使ってはいけないものだったのだろうか?
なんていうんだっけ、名前つきURL? paginationとかで使われている/controller/action/name:value の「:」という区切り記号。
以前はコントローラの、$argSeparatorで指定できたのが、Routeの仕事になっている。まあ意味を考えれば妥当な変更だね。
設定するにはconnectNamedを使う。でいいのだろうか? この関数が何のためにあるのかよくわからない。
とりあえず/app/config/routes.phpにRoute::connectNamed(array(),array('argSeparator'=>'区切り記号'));を追加して設定できた。
これでいいのかわからんが、コードを見る限り区切り記号変更以外に副作用はないようだ。
/app/config/core.phpがことごとく変えられているw
といってもdefine('〜〜〜',〜〜) が Configure::write に変わっただけなんだが。
おかげで、DEBUG定数を見ているコードを修正する必要がある。
Configure::read('debug')に変えるだけだけど。
テストのページ(simpletestを起動するためのtest.phpのところ)の
charasetがUTF-8に修正された。うんよかった。
Single Table Inheritanceなるものをつかっているのだが、動かなくなった。
(詳細 http://cakephp.seesaa.net/article/23101637.html)
(大元 http://www.ifisgeek.com/tutorials/implementing_single_table_inheritance_in_cakephp)
自分はいろいろ変更しているのでそのままあてはまらないかもしれないが、
大元のコードSnippet #3: Complete definition for the Current Model.の $table = $this->__table;の次の行に
$this->useTable = $table;を追加したら動いた。まあこれは大元が悪い気がするが。
とりあえず、俺にとって問題が出た修正点はこんなところかな?
0897nobodyさん
2007/10/25(木) 12:48:02ID:???cakeコマンドの検索パスから、
/app/vendors/shells が無くなった?
/venders/shellsに変えればいいだけなんだが、
1.2.0.5875pre-betaでもパスは残っているしこれはバグだろうか?
0898897
2007/10/25(木) 13:06:00ID:???今までは、/cake/consoleに移動して、cakeコマンドを実行していたのだが、
それでは/app/venders/shells/を見てくれなくなって
/app で実行したら見てくれた。
これは、デフォルトの動作で、-app 引数で見るパスは変更可能。
0899nobodyさん
2007/10/25(木) 15:21:22ID:QUb8umf5わかっていたことだけど、alpha版に手を出すと面倒だねw
同感。ちなみに、まだ本屋いってないけど本でたかな。
cakephpの新しい本。早く読みたい。
0900nobodyさん
2007/10/25(木) 16:10:51ID:???0902nobodyさん
2007/10/25(木) 20:40:27ID:???面倒は面倒だが、書いてある文章よりかは面倒じゃないぞw
比較的マイナーなことをしているからそうなるわけで、
ほとんどの人はすんなり移行できるんじゃないかな?
>>900
> 1.1でつくってて本当によかった
それはそれで、1.2へ移行するときに面倒なことが・・・
結構かわっているしね。formヘルパーとかPaginationとか。
俺は、EmailComponentとユーザー関数によるValidationと
Behaviorと名前つきURLパラメータとか使っているから
1.2じゃないともう無理。
0903901
2007/10/26(金) 00:12:57ID:???俺もEmailComponent、Validationの二つが決定的で1.2を使ってる。
1.1からだとhtmlとformヘルパー周りの変更は確かにめんどくさそうだね。
0905nobodyさん
2007/10/26(金) 11:30:28ID:???0906nobodyさん
2007/10/26(金) 11:31:00ID:???Modelname/columnnameなどの文字列をモデル名とカラム名の配列に
変換してくれる(または、その逆をしてくれる)関数はありませんか?
0907nobodyさん
2007/10/26(金) 11:37:40ID:???1.2.0.5427alphaで、admin routingを使ったときの
/admin/controllers/indexにアクセスしたときの
action名(コントローラ->actionおよびコントローラ->params['action'])って
indexじゃなかったっけ?
1.2.0.5875pre-beta の場合、admin_index になっているような・・・。
仕様変更? それともなんか設定不足かなにかかな?
0908907
2007/10/26(金) 12:02:50ID:???https://trac.cakephp.org/ticket/3440
これの修正を適用したら直った。
あっ。直ったと言うのは正確にはソートの部分ね。
>>907の直接の問題は、paginationを使ったときテーブルのヘッダ部分が
/admin/controllers/admin_index/page=1/sort=type/direction=asc と
admin_indexが追加されてしまっていること。
パッチを適用したらちゃんと直った。
actionが以前、admin_indexだったかどうかは忘れたが
これからはこれなのだろう。
0909907
2007/10/26(金) 12:15:32ID:???これでアクセスしたときは、
function admin_index($value) {
の$valueにabcが入るのに、
/admin/controllers/index/named:1/abc
これでアクセスしたときは、
function admin_index($value) {
の$valueが、なんで1なんだよ?
/admin/controllers/index/abc/named:1
のときはちゃんとabcが入るくせに
(゚Д゚)ハァ? (゚Д゚)ハァ?
1.2.0.5875pre-beta は
こまかいバグがおおいなぁ。
0911nobodyさん
2007/10/26(金) 19:16:41ID:???array('checked'=>($data['Pic_resize']?'checked':null),'value'=>1)
とかにしてパラメータ渡さんとだめなん?
0912nobodyさん
2007/10/27(土) 00:05:03ID:???0913nobodyさん
2007/10/27(土) 21:04:01ID:euGofwdi0914nobodyさん
2007/10/28(日) 00:56:30ID:agDkXCq31つのアプリにまとめると、コントローラ名なんかがかぶるから長い名前になってしまう…
0915nobodyさん
2007/10/28(日) 12:02:53ID:???0916nobodyさん
2007/10/28(日) 12:36:40ID:???それはいいとして、GDの命令自体は同じ。
GDを含んでいるアプリ全体は簡単に書ける。
フレームワークとはそういうもん。
0917nobodyさん
2007/10/28(日) 13:52:19ID:???そんなにコントローラー名かぶらないと思うけどなあ…
このへん参考にしたら?
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=786&forum=3&post_id=1464
http://program.alphabrend.com/modules/pukiwiki/42.html
俺は↑という感じでサブドメイン運用しているんだが、
それでもサブドメインが変わると、セッションが切れてしまう。
firefoxでセッションの情報を見ると、対象ドメインは.hoge.jpに
なっているので、hoge.jpでもfuga.hoge.jpでもOKのはずだよね?
0918nobodyさん
2007/10/28(日) 14:24:34ID:???ありがとう
やっぱりセッション周りいじるのが一番簡単なのかな
コントローラ名がかぶるのはCakePHPの規約に合わせてつくってるから…
(モデルごとにコントローラ作るから)
規約に合わせないで、1つのコントローラでいくつかのモデルをまとめて扱えばいいのかな
今、気づいた orz
0919nobodyさん
2007/10/28(日) 15:09:09ID:???自分もpre-betaに移行してみたよ。
修正が必要だったのは
>おかげで、DEBUG定数を見ているコードを修正する必要がある。
ここだけ。
defineはconfig.phpと関係ない定数だけで使うようにってことなのかね。
0920nobodyさん
2007/10/28(日) 15:16:07ID:???よく知らないんだが規約ではモデルごとにコントローラーを作るのを求められてるの?
コントローラーは、ユーザーが何かしらの行動をしたときに動作を振り分けるものだから、
たとえばアクセスログをDBに記録する場合には、モデルだけ必要でコントローラーは
必要ないと思うんだが。
0921nobodyさん
2007/10/28(日) 15:18:18ID:???0922nobodyさん
2007/10/28(日) 15:26:23ID:???あれ、別に作らなくてもいいんだっけ?
一応、規約だとモデル・コントローラ・ビュー全て一式そろえないといけないことになってたかと思った
(もちろん、$Useとか$UseTableとかで変えられるけど)
掲示板とかのカテゴリ用のテーブル作って、CategoryControllerも作ってたんだけど、
さすがになんか変だなあ、と思って、
別にコントローラのないモデルもあるよなあと気づいた…。
小物は規約に従っててもいいけど、少し変わったもの作るとなると自分で調整したほうがいいみたいね
0923nobodyさん
2007/10/28(日) 15:27:08ID:???趣味でやってるけど書き直そうとしてる
でもDB使ってないサイトなので、あんまり意味ないかもw
楽だなあ、とは思った
0924nobodyさん
2007/10/28(日) 15:29:53ID:???0925nobodyさん
2007/10/28(日) 15:30:43ID:???0926nobodyさん
2007/10/28(日) 16:01:28ID:???0928nobodyさん
2007/10/28(日) 16:54:10ID:???http://www.google.com/search?num=50&hl=ja&q=%22*+queries+took+*+ms%22&lr=lang_ja
これ既出?
0930nobodyさん
2007/10/28(日) 22:46:21ID:???0931nobodyさん
2007/10/28(日) 22:49:07ID:???ピンポーン
0933nobodyさん
2007/10/28(日) 23:09:53ID:???1.2 pre-betaにしてからbake.phpの場所が変わっていたので cake/console/libs で php bake.phpをしても何も表示されません。
ほかに何か変更になったんでしょうか?
0934nobodyさん
2007/10/29(月) 02:13:31ID:???cakeコマンド自体は、/cake/consoleにあるが、
実行する場所は、/app にいることが想定されていると思う。
なぜなら、なんのオプションもつけずに、/app/venders/shells/に作った
独自のスクリプトを読むためにはここにいなければいけないから。
だから、俺は環境設定のPATHに、/cake/consoleを追加している。
0935nobodyさん
2007/10/29(月) 14:18:29ID:???なぜか知らんが、$this->params['controller']があると、
それを優先的にモデルに設定してしまう。
https://trac.cakephp.org/browser/trunk/cake/1.2.x.x/cake/libs/view/helpers/form.php?rev=5811#L160
/post/view/1を表示しているときに/comment/addとかにactionが
設定できなくなった。
0936nobodyさん
2007/10/29(月) 14:53:23ID:???'url' => array('controller'=>'comment', 'action'=>'add')
とかoptionsに入れればいいんじゃないの?
それでダメと言う話?
0937nobodyさん
2007/10/29(月) 16:33:09ID:???あー、optionsをそう書くのか。
前は
$form->create('Comment', array('action'=>'add'))
でいけてたはずなんだけど。
0939nobodyさん
2007/10/30(火) 00:46:08ID:???0940nobodyさん
2007/10/31(水) 00:16:45ID:???pre-betaも出たし、なんかタイミング悪い。
これなら前に出たPHPフレームワーク本の方がいいかも。
購入は1.2に改訂されるまで待ちかな。
0941nobodyさん
2007/10/31(水) 02:13:47ID:???0942nobodyさん
2007/10/31(水) 16:03:44ID:???0943nobodyさん
2007/10/31(水) 17:07:27ID:y/Xrur+hcakephp1.1で作ってるので個人的には今まで出た本の中では良いと思う。
なにせcakephp1.1使ってますから。
ただ、文字が多すぎ。カラーで出してくれたら嬉しかったなと思う。
0944nobodyさん
2007/10/31(水) 17:35:10ID:???0945nobodyさん
2007/10/31(水) 17:38:10ID:???0946nobodyさん
2007/10/31(水) 22:44:43ID:???半分くらいはまとめただけって感じなのが…
もうちょい実践で使えるノウハウがほしいなあ
入門書としては悪くないと思う
0947nobodyさん
2007/10/31(水) 22:47:25ID:???0948nobodyさん
2007/11/01(木) 00:36:06ID:???0949nobodyさん
2007/11/01(木) 01:32:04ID:???0950nobodyさん
2007/11/01(木) 03:19:40ID:???0951nobodyさん
2007/11/01(木) 11:57:40ID:???もちろん専用サーバーならなんでもありだけど、
それならJavaでいいんじゃね?という感じだし。
0952nobodyさん
2007/11/01(木) 12:52:33ID:???PHPしか需要がねーよ orz
0953nobodyさん
2007/11/01(木) 17:14:54ID:???これってSessionとか使って記憶しておく事とかできませんか?
0954nobodyさん
2007/11/01(木) 20:53:29ID:40qfpM4a別の作って見たらちゃんとRedirect後もエラー表示されてる。
「リダイレクトするとtagErrorMsgの表示が見えなくなったんですが、
どなたか原因わかりませんか? 」
に質問を買えます。
お願いします。
0955nobodyさん
2007/11/01(木) 21:27:48ID:???エラーの後のリダイレクトは駄目なんですね
質問取り下げます。失礼しました。
0956nobodyさん
2007/11/03(土) 15:26:30ID:???メール返して本人確認するみたいな・・
0957nobodyさん
2007/11/03(土) 17:59:33ID:???前に探したけど、特になかった気がするなあ。
Postされる情報の中にidが含まれていると任意のidが
設定できちゃうのね。
いちいちnullを入れるのがめんどくさい&不安なんだけど
みんなどうやって解決してる?
0958nobodyさん
2007/11/04(日) 00:16:12ID:???0959nobodyさん
2007/11/04(日) 01:40:38ID:???nullもいらないじゃんw
0960nobodyさん
2007/11/05(月) 04:20:02ID:bzvMK5G5僕はとりあえず全部DOCUMENTO ROOT直下にそのまま配置して、cakeとかappとかには直接アクセスできないように.htaccessで設定してるんですがそれで十分なのか不安なんですが。
(あとweb_rootが下の階層にあるのがデザイナーさんに気持ち悪がられる)
0961nobodyさん
2007/11/05(月) 04:27:55ID:???0962nobodyさん
2007/11/05(月) 16:55:08ID:???http://massat.jp/2007/01/08/110
この辺参考にしたら?
dorument_root/
にwebroot突っ込んで
document_root/cake
にコアを入れて
で、cakeディレクトリはアクセス制限。
って感じで
0963nobodyさん
2007/11/07(水) 16:56:26ID:???んー、例えばSNSの日記とかで/diaries/read/$idみたいなURLの場合。
悪意のあるだれかが日記を投稿するときにidをPostに含めて投稿した場合、
オートインクリメントが無効になって、いきなりidが飛んじゃう。
0964nobodyさん
2007/11/07(水) 20:37:33ID:???0967nobodyさん
2007/11/08(木) 04:05:21ID:???app_controllerにそれ用の関数書いとくというのはありですか?
0968名無しさん@Vim%Chalice
2007/11/08(木) 14:05:02ID:???プラン1
app_modelでsave()をオーバーライドして
idを指定してきてたらidがデータベース上に存在するかチェックする
プラン2
controllerごとに$whitelistの配列を定義。
app_controllerのコンストラクタで$this->actionを見て、
editだったら$whitelistにこっそりidを付加
プラン3
save()で統一するメリットなんてたかが知れてるんだから
もういっそadd()とかedit()とかのラッパーを作ってmodel側で完結
プラン4
ママに頼む
0970nobodyさん
2007/11/08(木) 14:44:38ID:???推測されやすいし、ポストされるとまずいよね。
その辺を考えると>>968のプラン2が一番いいのかなあ。
この問題について言及しているブログとか見つからないんだけど、
みんなどうやって解決しているのかね。
もしかして普通にセキュリティホールになってたりするのか?
0971nobodyさん
2007/11/08(木) 15:50:07ID:???単に、createdとmodifiedが編集可能フィールドになるってだけで。
0972nobodyさん
2007/11/08(木) 16:44:49ID:???「情報を保存する」オプションを有効にする(CakePHP修行 #34) | IDEA*IDEA
http://www.ideaxidea.com/archives/2007/07/cakephp_34.html
これを見ると、
usersテーブルに、ユーザーごとのhashを保存
↓
ログイン時に「保持する」にチェックが入っていたら、hash値をcookie発行
↓
ログインチェック時にcookieを見てhash値があったら、それでログイン。
って感じの処理をやっているんだけど。
なんでこんなことをやっているのかわからない。
sidをcookie発行しちゃだめなの?
0973nobodyさん
2007/11/08(木) 17:05:29ID:???でぐぐる
0974nobodyさん
2007/11/08(木) 21:38:53ID:???CakeってSession Fixation対策はある程度されているような。
少なくとも?CAKEPHP=1234みたいなのは効かないと思うんだけど。
0975nobodyさん
2007/11/08(木) 21:57:56ID:???↓
セッション固定化しないようにした
↓
そんなsidをcookieに保存しておくのか?
0976nobodyさん
2007/11/09(金) 03:59:48ID:???delアクションって最悪だな。
アドレスにアクセス(GET)しただけで削除される。
普通こういうのはPOSTを使って削除するもんだろ。
0977nobodyさん
2007/11/09(金) 14:17:29ID:???普通に書けばいいんじゃね?
0978nobodyさん
2007/11/09(金) 17:07:22ID:???sidをcookieで保存しておくとどういう攻撃が想定されるかわからないんだけど、
すまんが攻撃名だけでも教えて貰えないか。
0979名無しさん@Vim%Chalice
2007/11/09(金) 17:07:32ID:???0980名無しさん@Vim%Chalice
2007/11/09(金) 17:13:33ID:???誤)prebata
正)predator
0981nobodyさん
2007/11/10(土) 02:09:58ID:???次回アクセスされたときにcookieから取り出したsidが
有効である保障はないだろう?
レス数が950を超えています。1000を超えると書き込みができなくなります。