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

【PHP】フレームワーク CakePHP 8ホール目【1.3】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/03/18(木) 10:00:59ID:6+kHM8kH
CakePHPは、Ruby on Railsの概念の多くを取り入れた、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークです
CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう

※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
0681nobodyさん2010/07/05(月) 00:27:13ID:???
CakePHPさわって、他のMVCフレームワークさわってみれば良いんじゃないの?
遠回りかもだけど、それぞれの似ているようで違う仕組みだから、より理解しやすいかも。
そして、CakePHP以外に合うものが見つかるかも。
0682nobodyさん2010/07/05(月) 01:12:10ID:???
俺ちゃんとつかったのはCakeが初めてなんだけど、他のFWに比べてCakeの良い点って何でしょう?
Javaの何かと比べると、覚える事が意外と少ないな、という印象なんですが・・・
0683nobodyさん2010/07/05(月) 01:19:57ID:???
単純なCRUDアプリを作る上では、これ以上手順は減らせないだろうというくらいに
簡単な手順で作れるよね。

手を入れようとすると大変だけど。
0684nobodyさん2010/07/05(月) 03:55:03ID:???
でもWebに情報量多いよね
ぐぐればたいてい解決してる
0685nobodyさん2010/07/05(月) 07:40:52ID:???
>>680
移行先は何が多いの?
0686nobodyさん2010/07/05(月) 12:20:49ID:???
1.3で、Shellからviewのレンダリングを使うにはどうすればいいんですか?
レンダリングしたものを、ファイル出力するシェルプログラムを組みたいのですが…。
0687nobodyさん2010/07/05(月) 12:56:52ID:???
>>686
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1774&forum=3
これでどう?
0688nobodyさん2010/07/05(月) 16:54:56ID:???
=3が絵文字みたいでかわいい
0689nobodyさん2010/07/05(月) 17:52:47ID:???
お前のほうがかわいい
0690nobodyさん2010/07/05(月) 18:02:13ID:???
:=3
0691nobodyさん2010/07/05(月) 20:02:09ID:???
ヘルパーで出力するものをXHTMLじゃなくてHTMLにできない?
0692nobodyさん2010/07/05(月) 20:37:48ID:???
なにいってんのこのバカ↑
0693nobodyさん2010/07/05(月) 20:59:19ID:???
>>692
nl2brで言う、is_xhtmlみたいなオプションないの?って意味
0694nobodyさん2010/07/05(月) 21:17:00ID:???
ソースみじけえから読んでこいやバカ
http://api.cakephp.org/view_source/html-helper/

オプションなかったら継承してtag書き換えるとか勝手にしろやアホ
0695nobodyさん2010/07/05(月) 23:22:21ID:???
このスレ専門的な単語が飛び交ってレベルたけぇわ
0696nobodyさん2010/07/06(火) 00:53:44ID:???
>>694
説明不足ですまん、ソース追ったけど見つけられなかったんだ
継承して書き換えもいいけど、末尾の3文字削って>付け足すわ
0697nobodyさん2010/07/06(火) 11:07:43ID:???
postgresでgetLastInsertIDを使う場面で、
複数タスクが走っている場合に
別のタスクのidを取得しちゃう可能性がある。っていう記述を
見つけてしまったんですが、
対処方法はどういったやりかたが考えられますか?
0698nobodyさん2010/07/06(火) 11:24:19ID:???
何それ
糞だな
0699nobodyさん2010/07/06(火) 11:26:35ID:???
その見つけた情報ソースを教えろ
0700nobodyさん2010/07/06(火) 11:40:57ID:???
getLastInsertID
でググったらでてきました
0701nobodyさん2010/07/06(火) 12:03:46ID:???
だからどこだよ?
0702nobodyさん2010/07/06(火) 12:56:26ID:???
ttp://sfi.hamazo.tv/e1655939.html
こちらです
0703nobodyさん2010/07/06(火) 13:57:00ID:???
なんかギスギスしてるな
0704nobodyさん2010/07/06(火) 14:58:46ID:???
どこだどこだと聞いといて後はシカトかw
0705nobodyさん2010/07/06(火) 15:01:58ID:???
「CakePHPによるwebアプリケーション開発」
p..64で本のように表示できなくなりました。どなたかp62-64の
誤りを教えてください。スクリプトは付属CDのをそのままコピーしている
のですが・・・
0706nobodyさん2010/07/06(火) 15:03:52ID:???
p.60 p.58-60の誤りです。hello/sendformのページが表示されるところ
sendform画表示されてエラーになってしまいます>__<
0707nobodyさん2010/07/06(火) 15:06:25ID:???
>p..64で本のように表示できなくなりました。

どう表示されているかぐらい書こうや
0708nobodyさん2010/07/06(火) 15:11:06ID:???
>>704
質問の仕方を教えてやってるだろうが。
706もそうだが、聞きたいならどの情報に対して、何をしたらどういう状況になってるかくらい書け。


答えられるかは別問題だ。
0709nobodyさん2010/07/06(火) 15:18:17ID:???
Missing Controller
error: SendFormContoroller could nat be found.

です
http://localhost/cake/sample/hello/sendForm?text1=なんたら(UTFコンバートされた文字列)
というURLが表示されるところ
hello/
が欠けたURLが表示されてエラーになるのです。

index.ctp
で<form method="get" action="/sendform">
と送っているのですが、hello_contorollerのfunctionで sendformが定義されているのですが、
sendform_controllerがないとエラーがでています。・・・・
0710nobodyさん2010/07/06(火) 15:20:44ID:???
<form method="get" action="/sendform">
でした。解説はこのコードを前提に修正していく記述なので止まってます。
0711nobodyさん2010/07/06(火) 15:22:33ID:???
頭をお借りして申し訳ないです。何がおかしいのかまだ初歩なのでわからないです。・・・
0712nobodyさん2010/07/06(火) 15:26:23ID:???
×<form method="get" action="/sendform">

○<form method="get" action="/sendform">
0713nobodyさん2010/07/06(火) 15:27:06ID:???
途中で書き込んでしまった。
すまん
×<form method="get" action="/sendform">

○<form method="get" action="./sendform">

/sendformの前にドットを入れてみる。
0714nobodyさん2010/07/06(火) 15:27:36ID:???
>>709
action="/hello/sendfom" でどう?
0715nobodyさん2010/07/06(火) 15:28:37ID:???
○<form method="get" action="./sendForm">
です。たびたび申し訳ないです。
これをaction="./hello/sendForm">
にしてもだめなのです・・・
0716nobodyさん2010/07/06(火) 15:35:38ID:???
action="/hello/sendForm">

どっとなし。

これでもだめ??
0717nobodyさん2010/07/06(火) 15:36:27ID:???
>>715
勝手にふたつのレスを合わせるな
.sendForm
or
/hello/sendForm
でどうかと>>713>>714でそれぞれ言われている

そして、その場合、アクション名は sendForm() なんだろうね?
0718nobodyさん2010/07/06(火) 15:36:53ID:???
あ、またかぶったw
0719nobodyさん2010/07/06(火) 15:37:14ID:???
だめです同じエラーがでてしまいます。なぜURLが省略されてしまうのでしょうか?
0720nobodyさん2010/07/06(火) 15:37:47ID:???
>>717の前者はスラッシュ抜けてた ./sendForm
0721nobodyさん2010/07/06(火) 15:39:08ID:???
アクション名というか
HelloControllerで定義しているfunctionは
index()と sendForm() です。
0722nobodyさん2010/07/06(火) 15:39:21ID:???
>>719
debug( $this->webroot );
で、きちんとwebrootまでのパスがでるかい?
0723nobodyさん2010/07/06(火) 15:42:43ID:???
debug( $this->webroot );

をどんなファイル名にしてどこで表示させればいいのでしょうか?
0724nobodyさん2010/07/06(火) 15:45:53ID:???
>>723
どこでも良いけど index() の中とか
0725nobodyさん2010/07/06(火) 15:46:51ID:???
だめだこりゃ
こんなのほっとけ
0726nobodyさん2010/07/06(火) 15:47:09ID:???
indexのなかだとそのまま
debug( $this->webroot ); と表示されてしまいます>__<
0727nobodyさん2010/07/06(火) 15:54:51ID:???
>>726
うまくいかないなら「cakephp debug」でぐぐって、まず指示されたことが何かを理解しようとしなきゃ
0728nobodyさん2010/07/06(火) 15:56:38ID:???
PHPすらわかってないアホにどうしろと
ほっとけって
0729nobodyさん2010/07/06(火) 16:04:38ID:???
>>708
>>697の質問でソースの出所が必要とは思わないがな

んな堂々と「答えられるかは別問題だ」とか言われてもw
0730nobodyさん2010/07/06(火) 19:05:49ID:???
書籍で思い出したけどCakePHP 1.3によるWebアプリケーション開発って本が出てた
0731nobodyさん2010/07/06(火) 19:45:35ID:lebgmiXf
ビュー側でSTARTボタンにより、データをPOSTしてコントローラ側で受け取り
ビュー側でのタスクのインターバルを変更したいのですが
この場合、$_POST('a')で受け渡せるのですが、もっとスマートに渡せる方法は
あるでしょうか?
また、コントローラのアクション内で、変数を使用すると動作はするもののUndefined・・・
未定義警告が出てしまいます。そもそも変数はどの場所でどのように、定義したら
いいのでしょうか?
アクション内で、$_POST('a')を使用して未定義警告をださないにはどうしたらいいですか?
0732nobodyさん2010/07/06(火) 20:01:51ID:???
>>730
秀和のcake本の1.3対応版か
前回のはレビュー良かったけど、すぐ売り切れだか絶版になってて実物見たこと無いわ
0733nobodyさん2010/07/06(火) 22:56:11ID:???
今日本屋でその本みてきた
なかなか丁寧な解説でよさげ
0734nobodyさん2010/07/06(火) 23:32:09ID:???
生成されるキャッシュファイルの名前が変だなーと思ったら1.3は環境によっては
slug生成に問題出るみたいね

CakePHP 1.3のキャッシュやスラッグ(Inflector::slug)に要注意 - (DxD)∞
http://dxd8.com/archives/209/
0735nobodyさん2010/07/06(火) 23:53:22ID:???
1.3の$session->flash()にechoが必要で小一時間ハマった。
0736nobodyさん2010/07/07(水) 20:45:57ID:6d/8d4Je
>731
未定義警告ですが仕方ないので、issetで判定して処理して消しました。
0737nobodyさん2010/07/07(水) 21:18:42ID:???
CakePHPって新規開発にしか使えないよね。
何故なら改修の場合は大抵DBにまで手は入れないから。
0738nobodyさん2010/07/07(水) 21:58:43ID:???
何故ならはいいが理由になってなくね?
まあ改修案件でわざわざCakePHP使うとこはないだろうが。
0739nobodyさん2010/07/07(水) 22:33:30ID:???
てか何回コピペするつもりか知らんが
FW使ってないシステムに後からFW突っ込むことなんて
Cakeに限らずできないと思うが
0740nobodyさん2010/07/07(水) 22:42:44ID:???
単なる改修案件を、うまく丸め込んでリプレイスに持ち込めばこっちのもんよ
0741nobodyさん2010/07/07(水) 23:10:09ID:???
動きゃ何でもいいんだよ
0742nobodyさん2010/07/08(木) 01:27:22ID:jw2HbYMj
表示が重い(遅い)のって仕様ですかね?
1.3.2をダウンロードしまして、coreの設定だけを変えて
Viewに「Hello World」と表示する簡単なページを出力させたのですが、
読み込みに2,3秒かかります。

ローカルのWindowsXP・PHP5.2.5上でテストしているのですが、
何か早く処理させる方法ってあるのでしょうか?
0743nobodyさん2010/07/08(木) 01:43:46ID:???
お客様の中にエスパーはいらっしゃいませんか?
0744nobodyさん2010/07/08(木) 01:46:33ID:???
俺の念動力はどうやら出番無しのようだな
0745nobodyさん2010/07/08(木) 02:11:53ID:???
あるよ
ローカル以外で実行
0746nobodyさん2010/07/08(木) 02:27:04ID:jw2HbYMj
う〜ん、一般的に外部サーバよりもローカルの方が速いと思うのですが。
ネットワークの問題じゃなくて、Cakeの問題だと思うんです。

あと、最低限の開発環境とやった事を記載しているので、
エスパーじゃないと答えられないという事もない気が・・・
0747nobodyさん2010/07/08(木) 02:43:02ID:???
>>746
志村、キャッシュキャッシュ!
0748nobodyさん2010/07/08(木) 02:49:19ID:???
>>742
普通は単純なページ表示に2,3秒もかからん
ボトルネックはどこなのか自分で特定するんだ
0749nobodyさん2010/07/08(木) 02:50:50ID:???
ローカルの方が遅いよ
0750nobodyさん2010/07/08(木) 02:53:55ID:???
WindowsXP・PHP5.2.5

全然足りないだろ
CPU、バストサイズ、メモリくらいまでは書け
0751nobodyさん2010/07/08(木) 02:56:36ID:jw2HbYMj
>>748
ですよね・・。
本当にファイル解凍してcore.phpのSecurity.salt変更して
単純なページ表示しただけなんです。
自作のフレームワークやPEARでこういう事がなかったので
CakePHPの問題だと思っています。

とりあえず、良くある問題じゃないみたいなので、自分で解決します。

>>749
ネットに繋げる必要ないのにですか?それは信じがたいですね。
0752nobodyさん2010/07/08(木) 02:58:34ID:jw2HbYMj
>>750
CPUやCore 2DUOで2GBのローカルサーバです。

というか、サーバスペックが数年前だとしても
Hello Woldという1行テキスト表示だけで、2,3秒はあり得ないと思うんですよね・・。
ネタ扱いされているという事は、皆さんの環境ではそうでもないと言う事かな。
0753nobodyさん2010/07/08(木) 03:07:17ID:???
てか普通にそんな遅かったとして
そこらで使われるわけねーだろ
0754nobodyさん2010/07/08(木) 03:08:08ID:???
なんども読み込んでもその秒数?
とりあえずDebugKit入れてどこで時間食ってるか計測してみな

あとConfigure::writeのdebugを0にしてやってみると速くなったかも

おれの開発環境WinXP+Xamppでも2〜3秒は普通にあるよ。
HelloWorldはさすがにそんなにかからないと思うけど。
0755nobodyさん2010/07/08(木) 03:09:56ID:jw2HbYMj
>>754
わかりました。

あと、さくらのサーバに入れたら違和感なく表示されました。
ですので、サーバの問題だと思います。
CakePHPの問題じゃないと言う事は、自分が間違っていました。すみませんでした。
0756nobodyさん2010/07/08(木) 08:13:32ID:???
xamppで実行すると断然遅いのはお約束
0757nobodyさん2010/07/08(木) 10:08:41ID:???
だからローカルだと遅いといったろが!このやろう!!
0758nobodyさん2010/07/08(木) 10:16:08ID:???
Linux上だと普通
0759nobodyさん2010/07/08(木) 10:25:56ID:???
だからCakeが遅いんじゃないっていったろがこのやろー
0760nobodyさん2010/07/08(木) 10:30:37ID:???
Windowsで開発すなw
0761nobodyさん2010/07/08(木) 10:55:14ID:???
ローカルサーバで1.2が重いのはなぜ?
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1592&forum=3&viewmode=flat&order=DESC&start=10
0762nobodyさん2010/07/08(木) 10:55:40ID:???
モデルのテストケース書くときって、バリデーションのテストケースまで書いてる?
バリデーションの組み合わせをテストするだけで結構な量のテストになるのだけど

どこまでテストするべきか、それともバリデーションのテストは不要か悩む
0763nobodyさん2010/07/08(木) 14:26:52ID:???
session関連で、ブラウザがchromeの時だけ発生している現象で困っています。

$data['1']['1'] = 'A';
$data['1']['2'] = 'B';
$data['2']['1'] = 'A';
$data['3']['2'] = 'B';
といった配列を
$this->Session->write('data',$data);
で保存し、
次のページで
$data = $this->Session->read('data');
とやったあとで$dataを確認すると、

$data['1']['1'] = 'A';
$data['1']['2'] = 'B';
だけになっているのです。

$data['2']['1'] = 'A';
$data['3']['2'] = 'B';
がロストしています。

chromeでセッションIDの受け渡しにクッキーを使っているときだけ発生します。
IEでは問題ありません。
セッションIDをURL埋め込みにすると、問題なく動作するようです。
でも可能な限り埋め込みは使いたくないのです。

何かご存じの方、ご意見いただきたいです。
よろしくおねがいします。
0764nobodyさん2010/07/08(木) 14:31:31ID:???
>763
どういう条件で抜け落ちるのかわららん
$data['1']['3'] = 'C';
とか
$data['1']['3'] = 'A';
を追加してみるとか
$data['1']['1'] = 'A';
$data['1']['2'] = 'B';
$data['2']['1'] = 'C';
$data['3']['2'] = 'D';
だとどうなのかとか
0765nobodyさん2010/07/08(木) 15:20:14ID:???
条件がさっぱりわからんのです。
おっしゃるような追加もいろいろやってみたのですが
法則がつかめません。
0766nobodyさん2010/07/08(木) 15:45:02ID:???
今気がついたのですが、
セッションを保存しているファイルを監視していまして、
sess_****
というファイルが
IEの場合は、二つ作られるのに対して、
chromeだと三つ作られています。
その三つ目のセッションファイルの中身がすでにデータ抜け落ちているようで、
そちらを優先してreadしているみたいです。
二つ目だとデータが保持されています。
0767nobodyさん2010/07/08(木) 16:17:09ID:???
外部ファイル読み込んでるけど、そのファイルがないからCakeが起動してて、そこでセッション発行してるとか
そんな感じの何かを感じた
0768nobodyさん2010/07/08(木) 16:23:14ID:???
なるほど、外部ファイルですか。
ソースを確認してみます。
0769nobodyさん2010/07/08(木) 22:52:18ID:???
>>739
トンチンカンなこと言ってるなよ。
改修案件・リプレイス案件で使えないようなFWなんて
使い物にならんね。
0770nobodyさん2010/07/08(木) 23:05:23ID:???
>>769
CAKEがつかえねーと思うなら他にもいっぱい良いフレームワークがあるのだから、そっちに行けばいい
0771nobodyさん2010/07/08(木) 23:14:17ID:???
だよな
少なくともRailsとかCakeみたいに規約で縛るタイプのフレームワークは
既存のシステムに合わせるのは向いてないんだから
それに向いてるフレームワークを使えばいいだけだ
0772nobodyさん2010/07/09(金) 08:32:46ID:???
あえて釣られてみるが・・・
>改修案件・リプレイス案件で使えない
なぜそう思う?
0773nobodyさん2010/07/09(金) 09:00:53ID:???
DB構成が特殊な案件なんだろ
命名規則が面倒とか
0774nobodyさん2010/07/09(金) 11:58:55ID:???
俺みたいな優柔不断の場合、
Cakeのようにガチガチに縛った仕様の方が
使いやすい時がある。
0775nobodyさん2010/07/09(金) 12:08:30ID:???
いま、そういう話ししてるんじゃないよね?
0776nobodyさん2010/07/09(金) 12:41:48ID:???
だよね
0777nobodyさん2010/07/09(金) 12:43:01ID:???
亀甲縛りに見えて発情したじゃねーか
0778nobodyさん2010/07/09(金) 12:49:05ID:???
ガチムチだろそれ言うなら
0779nobodyさん2010/07/09(金) 13:38:36ID:???
よくフレームワーク使う理由に「他人もわかるようにするため」
みたいな理由聞くけど、フレームワークだからって簡単に分かるか?
やっぱり、個々の作り方に依存すると思うんだよな。
0780nobodyさん2010/07/09(金) 13:42:55ID:???
だよね。
■ このスレッドは過去ログ倉庫に格納されています