トップページ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/
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
0257nobodyさん2008/08/23(土) 02:58:57ID:???
英語的に正しいかとか気にしてないなぁ。
LastMonthItemPriceSummary
とかさぁ。
0258nobodyさん2008/08/23(土) 09:13:23ID:???
ワロタw
0259nobodyさん2008/08/23(土) 11:36:45ID:???
SexAndTheCityHelper
02602492008/08/23(土) 15:26:42ID:???
>>252
横着な要求を聞き入れて九打差り、官舎孟子安芸鱒
0261nobodyさん2008/08/23(土) 17:49:04ID:???
>>250
入ってない単語はいちいち登録してやらないといけないんだよな。
もしくは機能を無効にするか。
結局余計な仕事を増やす設計になってる滑稽さ
0262nobodyさん2008/08/23(土) 21:42:23ID:???
1行定義する労力と、単複区別不能なコードとどっちがいいか?
0263nobodyさん2008/08/24(日) 13:54:17ID:OI90xc3U
複数形とかなんでそんな仕様にしたんだろう?
0264sage2008/08/24(日) 17:24:57ID:KEdveE+J
すみません、アホな質問かもしれないんですが。

今まで1.1の環境でPEAR::Pagerを使うためにvendor()で読み込んでたんですが、
1.2に入れ替えたためDeprecatedだというWarningが出ます。で、1.2からは
http://book.cakephp.org/ja/view/538/vendor
App::importを使うようにと書かれているんですが、このApp::importって
どこに書けばいいんでしょう?posts_controller.phpのクラス?色んな
ところに書いてみたんですが、全部だめー!て怒られました。
Cakeの構造自体理解してなくてすみません。どこに書けばいいんでしょうか?
02652642008/08/24(日) 17:26:21ID:???
すみません、sage間違った・・・
0266nobodyさん2008/08/24(日) 22:43:46ID:???
>>264
コントローラーでもどこでもいいと思うけど。
だめー!って書いてあるエラーの内容見てみれば?
02672642008/08/25(月) 00:01:57ID:???
>>266
なんか色々いじってる間にHTMLヘルパーのエラーが出てしまって
再現できません><すみません!また書きます!
02682642008/08/25(月) 00:07:54ID:???
出ました。えーとチュートリアルで言うとposts_controller.phpの中の
class PostsController extends AppController{
App:import('Component', 'Pager');
...
}
と書いてみたところ
Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION
と怒られます。何か根本的に勘違いしているような気がするのですが、
どこがそうなのか・・・
0269nobodyさん2008/08/25(月) 00:16:56ID:???
vendor(パス) → App::import(適当な名前, arary('file'=>パス.php);
こんな感じ
02702642008/08/25(月) 00:33:04ID:???
>>269
App::import('Vendor', array('file' => 'Pager.php');
としてみましたが、エラーメッセージ変わらずです。
vendorsディレクトリの中はPager(ディレクトリ)、Pager.php、
include_path_vendors.php(PEARのディレクトリへパスを通すため)
が入っています。うーむ。
0271nobodyさん2008/08/25(月) 02:22:25ID:???
App::import('Vendor', 適当な名前、array('file' => 'Pager.php');

だったか?
0272nobodyさん2008/08/25(月) 03:25:46ID:???
>>264
depricatedなら1.2のページャとimportしてるライブラリの関数名が被ってるんじゃない?

というかパースエラーさらしてる時点で初心者とみた。
0273nobodyさん2008/08/25(月) 11:53:43ID:???
class PostsController extends AppController{
App:import('Component', 'Pager');
...
}

じゃあ動かないよ

class PostsController extends AppController{

function goodluck()
{
App:import('Component', 'Pager');
}

...
}

じゃない?
0274nobodyさん2008/08/25(月) 17:33:57ID:???
Zendと違ってCakeは直接Cakeの中に色々入れていくタイプなのかな?
Zendの場合は必要なディレクトリ構成さえあれば外部から呼んでくれるが
0275nobodyさん2008/08/25(月) 17:58:11ID:???
そうそう、全部自分で完結させるタイプ、というか。
そのままディレクトリをサーバーに置けば使えるっていう。
私は結構気に入ってたりします。
0276nobodyさん2008/08/25(月) 22:26:29ID:???
FW内で自己完結できるのはいいよな
環境移すのも楽だし
0277nobodyさん2008/08/26(火) 17:35:31ID:???
>>276
VCEEとかだと.NETのフレームワークは外部から読み込むよな
そんな感じでもう慣れちゃったから内部完結みたいなのがまだ慣れない
0278nobodyさん2008/08/27(水) 11:21:42ID:wzctFyRR
Webに公開されないプログラムでCakePHPを使いたいんですが、
CakePHPはhtaccessやルーティングでプログラムを結び付けてるんで、やっぱり使いにくいんでしょうか?

CakePHPのデータベース周りが便利すぎて、どうしても使いたくなっちゃうんですよね。。
0279nobodyさん2008/08/27(水) 12:47:13ID:tVkJ8wOQ
社内向けのアプリ?
別にCakeでもいいんじゃね?
0280nobodyさん2008/08/27(水) 13:57:59ID:???
>>278
多分、Apache(Webサーバ)を通さず実行する
スクリプトとしてphp+cakeでやりたいってことじゃね?
02812782008/08/27(水) 14:30:57ID:wzctFyRR
>>280
その通りです。
■ このスレッドは過去ログ倉庫に格納されています