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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/06/20(金) 01:24:40ID:???
http://www.cakephp.org/

10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/

マニュアル日本語化
http://www.cakephp.jp/doc/

Cookbook :: 1.2 Collection :: マニュアル
http://book.cakephp.org/ja

日本語フォーラム
http://cakephp.jp/modules/newbb/

あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/

CakePHP入門リンク集
ttp://pub.studio15.jp/2007/11/13/cakephp-links/

【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/
0157nobodyさん2008/07/19(土) 18:19:45ID:jBy/EgFS
>>156
その方法で出来るのなら、ちょっと試してみます
0158nobodyさん2008/07/19(土) 18:24:34ID:jBy/EgFS
>>153
App::Importよりも、Controller::loadModel()の方がよくね

理由は何でしょうか?
どう違うのですか?
0159nobodyさん2008/07/19(土) 18:36:14ID:???
>>158
$usesの代わりと考えるのならば、
$usesで指定したのと同じ状態になるのが良い。

App::Importは単にクラスを読み込むだけ。
$this->Model にインスタンスを生成したりしない。

コードをざっと見ただけの意見だが、
コントローラの初期化処理で、$usersを見て値が入っていれば、
Controller::loadModelを呼び出してモデルを生成している。

loadModelはクラス生成以外にもなんかやってる。

だからloadModelを使ったほうがトラブルが少なくなりそうだと思った。
でも使ったことは無い。loadModelは外部から使うべきものじゃないかのうせいもある。
(普通は使うべきじゃないのなら _loadModelになっているはずだとは思うが)
0160nobodyさん2008/07/19(土) 18:47:19ID:???
>>140
・・・ごめん。セッションキー埋め込みだった。
0161nobodyさん2008/07/19(土) 19:07:40ID:jBy/EgFS
>>159
なるほど、よくわりました。
_loadModelてのは何ですか?
0162nobodyさん2008/07/19(土) 20:12:00ID:???
メソッド名の先頭に _ をつけると、外部からの使用を推奨していないということ

loadModel()に、_が付いていない以上、普通に呼び出して良い(ことが窺い知れる)
http://api.cakephp.org/class_controller.html
01631622008/07/19(土) 20:14:27ID:???
といっても、これ、知らなかった。loadModel()
特定のactionでしか使わないModelなんかは、これで動的に呼んだ方が良さそうだね。
修正しよっと
0164nobodyさん2008/07/19(土) 23:06:40ID:jBy/EgFS
バリデーションをビヘイビアを利用してyaml化にして
コントローラ内でattach関数を使って読む込むyamlファイルを動的に選択させることで
モデルを増やさずにバリデーションyamlファイルだけ増加させることで解決できた
0165nobodyさん2008/07/19(土) 23:10:53ID:jBy/EgFS
これでバリデーションが必要な画面数に比例してyamlファイルが増加していく
0166nobodyさん2008/07/20(日) 07:59:18ID:???
1.2からずいぶんと実践的になったよね。

フレームワークを使っている人が作っている感がでてる。
0167nobodyさん2008/07/23(水) 16:23:08ID:???
ローカルで開発してるんだけど、1.2RC2は1.1よりも動作が遅いな。
0168nobodyさん2008/07/23(水) 20:47:49ID:???
1.2になってsymfonyよりも遅くなったみたいだね。
しかもsymfonyの遅い原因だったPropelも今度のバージョンで速くなったし
なんだかなー。
0169nobodyさん2008/07/23(水) 21:18:09ID:???
>>167 168
まじっすか。痛いっすね。
ただでさえ重いのに。。。
0170nobodyさん2008/07/23(水) 22:31:35ID:bVhJ1Ly7
どんだけ遅いマシン使ってるんだよwwwwwwww
0171nobodyさん2008/07/23(水) 22:32:47ID:pE/1LCdw
かといって、今後のメンテを考えると、1.1系で行くわけにもいくまい。
チューンナップが進むのを期待するだな。
0172nobodyさん2008/07/23(水) 22:39:51ID:???
いや、マジで遅いよ。
モッサリという感じ。
1.1はサクサクだったのに残念。
0173nobodyさん2008/07/24(木) 01:13:17ID:v8PYU5tT
キャッシュ利かせればモッサリとかねーと思うんだが
デバッグモード解除してもモッサリするようなら
SQLがらみ、bindmodelで上手にやれば問題なし
0174nobodyさん2008/07/24(木) 02:22:41ID:???
そういえばデバッグモードが重いって話じゃなくて?
0175nobodyさん2008/07/24(木) 13:44:45ID:???
この流れは、そろそろAkelos考えてみっかになるんだろうな・・・
0176nobodyさん2008/07/24(木) 13:56:02ID:YLl3rq+t
>>175
ttp://pc11.2ch.net/test/read.cgi/php/1187333485/86
0177nobodyさん2008/07/24(木) 18:43:29ID:???
デバッグモードが遅いってだけの話じゃね?

1.2のbetaの時にくらべ、デバッグ情報の量が
かなり増えているから。
0178nobodyさん2008/07/24(木) 19:04:07ID:???
いくらCakeに不満があっても、Cakeしか使えない・・・

Cakeが初めてのフレームワークでも、すんなり移れるフレームワークってないですか??
symfonyとかサッパリ;;
0179nobodyさん2008/07/24(木) 19:13:11ID:???
つ ちいたん
0180nobodyさん2008/07/24(木) 19:43:19ID:???
>>137-142らへんの話に便乗するけど、
URLにセッションIDを埋める場合って
session.php内のuse_trans_sidを1にしないと使えないの?

PCサイトとプロジェクトが共通だから、なるべく共通的なところは
いじらずにやりたいと思うのだけど。
01811782008/07/24(木) 20:16:32ID:???
>>179
さすがにライトすぎるというか;
使ってもみないで言うのもなんですが・・・

CIとかも流行ってきてますね。ちょっと気になる。。
0182nobodyさん2008/07/24(木) 21:26:03ID:???
>>181
そんなスレ違いなあなたにはここをオススメっ

【PHP】フレームワークについて語るスレ10【総合】
http://pc11.2ch.net/test/read.cgi/php/1202521438/
0183nobodyさん2008/07/24(木) 23:50:55ID:???
1.2は何回かリロードすると謎のwaitが発生する
0184nobodyさん2008/07/25(金) 18:19:46ID:???
単にキャッシュが有効な期間は速くて、有効期限が切れたら
読み直し(=WAIT)が発生しているだけだろ?
謎でもなんでもない。
0185nobodyさん2008/07/26(土) 16:44:09ID:???
back from vacation time to start working towards cakephp RC3

オイオイ、いつまでRCだすんだよ;
0186nobodyさん2008/07/27(日) 10:13:15ID:???
RC3 => stable となることを願うばかりだな
0187nobodyさん2008/07/27(日) 21:27:08ID:???
う〜ん。1.2のcakeコマンドが分からん。
$ ./cake bake all
で、全部のテーブルの基本的な画面を一気に作ってくれんの?
順番に数字を指定するのが面倒・・・
MCVを対話式で一つ一つ作るよりはマシになってるけど。
テーブルの数が多いと、大変。しかも、いちいちtestのを
作るか?とか聞かないで欲しい。
0188nobodyさん2008/07/29(火) 02:42:26ID:ab6DF8xC
CakePHPの案件たくさんありますので
長くお付き合いできる方募集します。

https://hp.submit.ne.jp/i/13283/
0189nobodyさん2008/07/29(火) 09:13:12ID:???
>>188
>最も重要視するポイント クオリティ
VIPクオリティでもいいですか?
0190nobodyさん2008/07/29(火) 19:27:35ID:???
CakePHPのサイトに繋がらないのは俺だけ?
www.cakephp.orgもbook.cakephp.orgもダメだ…orz
0191nobodyさん2008/07/29(火) 20:10:31ID:2mZftY9A
きみだけだ
0192nobodyさん2008/07/29(火) 20:24:56ID:???
繋がったyo
0193nobodyさん2008/07/30(水) 19:42:29ID:g+nhVb89
この記事おもしろくね?
Database design and CakePHP
http://bakery.cakephp.org/articles/view/database-design-and-cakephp
0194nobodyさん2008/07/30(水) 21:17:11ID:???
どこの部分が?
0195nobodyさん2008/07/30(水) 23:23:13ID:???
「投稿(Post/posts)」と「タグ(Tag/tags)」がHABTM(posts_tags)で関連づけられている構造で
「あるタグが含まれる投稿の一覧」を得るにはどうすればいいですか?
投稿だけじゃなくて付帯するタグのデータも引っ張ってきて欲しいんですが

・投稿のMemoタグをクリック
→Memoタグが付けられたPostの全情報を一覧表示

 Title: メモその1 / Body: けーき始めました / Date:2008-07-28
  Tag: CakePHP Memo PHP

 Title: メモその2 / Body: けーきのためにPHP勉強中 / Date:2008-07-29
  Tag: Memo Ruby

 Title: らしくないメモ / Body: 内容は何でもイイんだけど / Date:2008-07-30
  Tag: C++ Dlang Memo

↑こんな風に表示できるようにデータが欲しい
今はqueryを二回に分けて直発行でやってるんですが、もうちょいマシな方法はないものかと
0196nobodyさん2008/07/31(木) 13:23:35ID:???
vendors/commons.php内に共通関数を書いているんですが、
commons.php内の関数から同じcommons.php内の関数を呼ぶにはどのように記述すればいいのでしょうか?
$this->関数名だと
Using $this when not in object context とエラーが出てしまうので・・・。
0197nobodyさん2008/07/31(木) 15:17:33ID:???
>>196
クラスにしてないなら$this->はいらないでしょ。普通になんも付けずに呼べばいいだけだけど。
01981962008/07/31(木) 15:54:35ID:???
>>197レスありがごとうございます。
自己解決しました。
Commons::関数名で呼び出すことができました。
(なにもつけなかった場合はundefined functionが出ました)
0199nobodyさん2008/08/01(金) 00:59:56ID:CpiiU14k
ん? >>196 >>198 に追加で質問なんだけど、Commonsクラスをcommons.phpに記述している、
って認識でOK?
02001962008/08/01(金) 11:40:22ID:???
>>199
OKです。
Commonsクラスの中に書いた2つの関数を、片方から片方を呼ぶ
という感じです。
0201nobodyさん2008/08/01(金) 16:36:12ID:???
テーブル名やカラム名に日本語使うとうまく動かんとこがあるね
0202nobodyさん2008/08/01(金) 17:12:36ID:???
そもそも、そんな発想がなかった
0203nobodyさん2008/08/02(土) 11:01:20ID:???
テーブル名、カラム名に日本語使うと・・・

foreach ($部署['社員'] as $社員) {
echo $社員['氏名'];
echo $社員['性別']['性別'];
...
}

こんな感じになるの??
0204nobodyさん2008/08/02(土) 11:52:56ID:???
社員s_controller.php
社員.php
http://example.com/社員/view/1
とか?
0205nobodyさん2008/08/02(土) 12:07:43ID:aQY+T7Eo
↑どこまでがマジ話なんだ
0206nobodyさん2008/08/02(土) 14:11:43ID:???
普通に笑ってしまった!
0207nobodyさん2008/08/02(土) 22:07:43ID:???
>>203,204
そういうのはuseTable使ってアルファベットだけにしてる。
作ってたら途中まで問題なかったんだけど、
SQLを""でクォートするところでちゃんとできずにSQLエラー。
正規表現がうまくいってないとこまで分かった。

0208nobodyさん2008/08/03(日) 03:51:55ID:???
2バイト圏じゃない人が作ってるんだから、かなり修正が必要そうだな
0209nobodyさん2008/08/03(日) 10:57:48ID:???
1バイト圏に移行することにより解決しました
0210nobodyさん2008/08/04(月) 11:03:43ID:???
1.2に対応した書籍って出てる?
0211nobodyさん2008/08/04(月) 11:23:09ID:???
>>210
時間的にムリw
0212nobodyさん2008/08/04(月) 11:25:58ID:???
CakePHP ポケットリファレンスは
1.1/1.2に対応してるようなことが書いてあったけど、
どこまで対応してるのかね?
0213nobodyさん2008/08/04(月) 13:04:46ID:???
RCで結構変わったっぽいからねぇ
0214nobodyさん2008/08/04(月) 15:39:24ID:???
>>210-213
現1.1ユーザーにとっては、1.2対応の基本は押さえられる
RC前なので、betaからRCになって変わったところとかは未対応。その辺把握していないと辛いかも。
ex Modelのconditions

1.2betaすら使ったことがない人は、買って損はない、と思う。
0215nobodyさん2008/08/04(月) 15:42:55ID:???
1.2のstableが出て、改訂版が出れば買うかなぁ
0216nobodyさん2008/08/05(火) 12:11:46ID:???
そういや今月末にまたcake本でるよね。
CakePHP徹底入門だったか。
0217nobodyさん2008/08/05(火) 13:01:29ID:???
もう入門本イラネ
0218nobodyさん2008/08/05(火) 14:55:44ID:???
>>216
まじか!
とりあえず買っておこうかな。
cakephp 全部持ってるけど一番役に立つのはリファレンスかな。
0219nobodyさん2008/08/05(火) 16:49:14ID:???
CakePHP徹底入門 (大型本)

Amazonより
> CakePHPの最新バージョンである1.2をメインとした初の解説書

ほんとうかよ?
beta -> RC でずいぶんと変わったぞ?
時期的にあやしいんだよなぁ。
0220nobodyさん2008/08/05(火) 21:22:57ID:???
もうすぐRC3でるしねぇ・・・
Cakeって本と相性悪いねぇ。
0221nobodyさん2008/08/06(水) 00:46:37ID:???
開発をコンパクトにやってるのか、方針転換が早いからね
今Cake本出すならstableまで待って原稿上げる英断をして欲しい
0222nobodyさん2008/08/06(水) 02:09:25ID:???
これから着手する案件、1.1でやる。
仕事なら普通だよな?
0223nobodyさん2008/08/06(水) 04:49:56ID:c9uoLYnS
仕事なら普通に1.2だろ
php5が出てるのにphp3でやるといってるのと同じだぞ
0224nobodyさん2008/08/06(水) 04:52:09ID:c9uoLYnS
もうひとつ付け足すと1.2は安定してるし
1.1と1.2の機能面での差は、かなりでかい
0225nobodyさん2008/08/06(水) 10:41:07ID:???
>>220
もう一年近く前になるかな?
CakePHPの本が何一つ出ていなかった頃。
海外の書籍でCakePHPがでると聞いて予約した。

いまだに出てないw 当然キャンセルしたw
0226nobodyさん2008/08/06(水) 10:46:43ID:???
>>224
機能面もそうだし、1.1と1.2じゃ仕様の変更が多いよな。
一番の基本である、findXXX系まで変わってるし。

1.1と1.2じゃなくて、1.1と2.0ぐらいのバージョンの差があるよ。
たしかに、RCは正式版じゃなくリスクもあるけど、流石にもう大丈夫だと思うな。

ただ作っているうちにstableでて入れ替えることになるだろうから、
UnitTestはちゃんとしとけ。でないと再テストが苦痛になる。

仕事だから当然だ。
0227nobodyさん2008/08/06(水) 11:17:06ID:???
1.1は死んだって書いてあるね。1.1はもう開発しないし
これから新規開発するには1.2を選べってさ。
http://cakebaker.42dh.com/2008/07/30/rip-cakephp-11/
0228nobodyさん2008/08/06(水) 12:25:03ID:???
googleボットがデータを消してゆく
bakeで簡単に焼いたものをWeb上においておくと、グーグルボットが
deleteメソッドを踏んで、データを消してゆく、という話です。
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1323&forum=3

ワロタw
俺は以前CakePHPとは関係ない話で似たような話をどこかでみたので
それですぐにこうなることに気づいていたが恐怖だろうなぁw

というかPostで制限意味ねーw Postに対応したbotがあったらどうすんだよ。
お問い合わせフォームにまでスパム投稿してくる時代に。
0229nobodyさん2008/08/06(水) 13:16:14ID:???
>>228
クソワロタwww
0230nobodyさん2008/08/06(水) 13:51:20ID:???
>>228
おお。bakeで作って認証かけてないやつあるわ(笑)
googleに発見されたらアウトだ。
さて。手っ取り早く対応するには、どうしようかな。。
0231nobodyさん2008/08/06(水) 13:52:33ID:???
>>230
つ「BASIC認証」
0232nobodyさん2008/08/06(水) 13:59:40ID:???
>>231
認証かけられないんだよね。諸事情で。
暫定的に、robots.txtで逃げたけど、どうしよう。。
0233nobodyさん2008/08/06(水) 14:38:16ID:???
そりゃあ、単純にdeleteメソッドを置いておけば踏まれるだろ
0234nobodyさん2008/08/06(水) 17:06:11ID:???
>>228の「似たような話」について

おっ。見つけられた。gigazineだったか。

Googleにサイトを全消去されたかわいそうなサイト
http://gigazine.net/index.php?/news/comments/20060331_google/

正確には、Googleがページのクロールに使用する「Googlebot」によって
CMS(コンテンツマネジメントシステム)のデータが全部消えてしまったというお話。

このCMSは従業員が各自で情報を入力していくという、まぁ一般的な方式で、
最終的なテストも終えて、インターネット経由でアクセスできるようになったわけです。

が、わずか2,3日後に悲劇発生。全ページが消えてしまい、
「内容を入力してね♪」
というような初期ページのみになってしまったのです
0235nobodyさん2008/08/06(水) 17:12:05ID:???
今時誰でもデータ全消去できるってどんなサービスなの?
0236nobodyさん2008/08/06(水) 17:14:45ID:???
>>232
世の中には、robots.txtを守らないボットがあるから
気をつけよう。

スパムメール送信の為のアドレスを集めるボットとか。
0237nobodyさん2008/08/06(水) 17:34:27ID:???
>>235
こんな感じじゃないかなぁと思う。

1.クッキー対応していなくてもログインできるようにしたために
URLにセッションIDが追加されてしまっていた。

2.TinyMCEのようなブラウザで動くHTMLエディタを実装していた。
これにより、コピペをするとセッションIDが付加されたAタグまでコピペできる。

3.これが公開ページに置かれ、Googleが発見した。
つまりセッションハイジャック状態

4.セッションIDを含んだアドレスをgooglebotが発見、次々に
セッションIDを含んだリンクをたどる。

5.その中にdeleteリンクがあってgooglebotがそれをクリック。


ログインの仕組みを作るにはCookieを使うのが常識だけど、
携帯対応とかでCookieを使わずにアクセスできるようにしちゃうと大変だね。

URLにセッションIDが含まれているときは、携帯から
アクセスできないようにするという考えもあるけど、
そこに携帯サイトもクロールしてほしいとか言い出すと・・・
ワンタイムトークンでも使うのがいいのかな。
0238nobodyさん2008/08/06(水) 19:08:29ID:???
>>237
詳細にTHX
0239nobodyさん2008/08/09(土) 19:03:49ID:z9jw78px
bakeで作ること自体、素人のやることだと思ってるから
どうでもいいっちゃー、どうでもいい
0240nobodyさん2008/08/09(土) 19:36:35ID:???
bake使ったことないからよく分からんwww
0241nobodyさん2008/08/11(月) 06:36:20ID:???
cakePHP 1.2 RC2ってSQL Server 2000から正常にデータ取得できる?

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
が実行された段階で、
「SQL Error: データベース コンテキストは targetdb' に変更されました。」
ってWarningが出て
「Error: Database table targetviews for model Targetview was not found.」
って怒られるんだが、targetdbにはちゃんとtargetviewsってビューを作成済み。
クエリアナライザからtargetdb上で
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
してもちゃんと抽出できる。
理由がよく分からん…orz

DBがMySQLなら上手く行くんだが…
0242nobodyさん2008/08/12(火) 00:53:04ID:???
>>241
ADODBを使ってるの?
SQL Server 2000自体には対応してないでしょ
02432412008/08/12(火) 06:18:34ID:???
>>242
d
ADODBじゃなくてmssqlで繋いでる。

無理にmssql使わなきゃ良いんだろうけど、
既存アプリをcakePHPに移行するとどうなるか
テストしてるから上手く行かないならDB変えないとなぁ…

0244nobodyさん2008/08/15(金) 08:44:04ID:???
dreaming of a cakephp RC3

楽しみなような、おそろしいような・・・

はやくstableになってくれ〜
0245nobodyさん2008/08/22(金) 00:34:13ID:MNsA+EAa
すごくバカな質問するんだけど、怒らないで聞いて欲しい。
CakePHPを勉強しているんだけど、命名規則にちょっと疑問が。
なんで、複数形じゃなきゃダメなの?複数形にしなかったらどうなるの?
0246nobodyさん2008/08/22(金) 01:11:39ID:???
しなくても出来るはず。
した方が楽に自動設定できるだけ。
0247nobodyさん2008/08/22(金) 02:41:14ID:???
単数と複数の区別は重要。
それをsつけるだけであらわせるんだから便利じゃん。
しなかったら気持ち悪いと思うんだけどな。
0248nobodyさん2008/08/22(金) 06:39:31ID:???
以前のバージョンとき
indexs じゃだめだったときあったな。

indexies ってやらんと。

複数形って規則性がバラバラだから難しい。
グレーの色も gray でも glay でもどっちでもいいんでしょ?
0249nobodyさん2008/08/22(金) 09:25:24ID:???
複数形一発検索とかのサービスはないのかな?
英語の勉強しなくちゃな…
0250nobodyさん2008/08/22(金) 12:33:06ID:???
内部に、複数形⇔単数形の変換関数か何か入ってるんじゃないの?
RoRは入ってるとか聞いたけど
0251nobodyさん2008/08/22(金) 14:45:43ID:???
coreに入ってるinflector使えばでできるんじゃないの?
0252nobodyさん2008/08/22(金) 14:47:56ID:???
これね。
http://book.cakephp.org/ja/view/491/inflector
0253nobodyさん2008/08/22(金) 15:00:49ID:???
>>252
いい事聞いた
0254nobodyさん2008/08/22(金) 16:24:43ID:???
index => indices
0255nobodyさん2008/08/22(金) 21:54:49ID:???
俺は英語よりも日本語のほうが表現力の豊かさの点で好きなんだが
複数形という概念は、すごいと思ったな。
大昔に作られた英語が、ここまでプログラミングにマッチするとは。

もし複数形がなければ、変数名に悩むことが多かっただろう。

でも、日本語は、単語と単語をくっつけて合成語を簡単に作れるから
やっぱり日本語が便利だな。「前月商品金額合計」みたいな。
英語だったら長い。

あと、音を表すだけのひらがな・カタカナ。
外来語を簡単に日本語に変換できてしまうカタカナ。

同じ言葉でも、漢字で書けば男っぽく、ひらがなで書けば女っぽく、カタカナで書けば外国っぽくなる面白さ。
あぁ。日本語ってすばらしい。
0256nobodyさん2008/08/23(土) 00:10:11ID:???
和んだw
■ このスレッドは過去ログ倉庫に格納されています