トップページ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
0653nobodyさん2010/07/01(木) 20:23:40ID:???
>>652
それセッションIDだろ
session.use_trans_sid = 0にするか、セッション使わない設定にしたら?
0654nobodyさん2010/07/01(木) 21:58:57ID:???
>>649
アプリの挙動が変わることもあるみたいだね。
06556472010/07/01(木) 22:49:41ID:???
$this->A->bindModel(array('belongsTo' => array('B', 'C')));
で動的に関連をセットすることでできました。
0656nobodyさん2010/07/03(土) 02:07:02ID:???
MediaPluginでvideoファイル扱ってる人いる?
ffmpegもインストールしてやってるんだけど
初期から入ってるvideoのサムネイル設定なのに
Medium::make - Invalid instruction `VideoMedium::fitCrop()`.
とかなって死ぬ
なんか設定が足りないのかサポートされてないのか
というかMediaPluginと動画の話題が全然ぐぐってもヒットしないんだけどみんな使わないのかな
0657nobodyさん2010/07/03(土) 02:44:20ID:???
ありゃ??でけた
一応書いておくと

filterの指定を↓見たいにしてたんだけど
array('fitCrop'=>array(100, 100), 'convert'=>'image/jpeg')
するとvideoのClassをよむからメソッドがなくて怒られる

まさかとは思ったけど順番変えて最初にconvertおくと
array('convert'=>'image/jpeg', 'fitCrop'=>array(100, 100))

ちゃんと変換してくれました。
スレ汚しすまんです。
0658nobodyさん2010/07/03(土) 04:16:09ID:???
みんな動画扱わないのかな

ついでに汚します。寝たかったのにはまって一応解決?したんで

wmvをアップして画像とかflvとかに変換したかったけどできない。
mpgならできたのに・・・ってなって四苦八苦

で、MediaPluginのソースいじることになるんだけど
vendors/......../ffmpeg_video.php
で最初に定義されてるrequire['mimeTypes']の
mswmv
ってのを
ms-wmv
に変更したら動いた。

同じ階層にあるgetid3_video.phpでも同じように定義されてあるんだけど、
そこではms-wmvになってるんだよね。揃えてみたら動きました。
なんかよくわからんが一応解決です。
0659nobodyさん2010/07/03(土) 07:41:45ID:???
最近CakePHPを学習しはじめた者です。
PHP自体は理解しており、MVCも理解しているつもりです。

とりあえず学習の定番と言えそうな本家(日本語)のチュートリアルをやってみました。
でもこれだけでは、その後独力でCakePHPの学習を推進していくチカラが得られませんでした。

チュートリアルのつぎのステップとしてお勧めな学習方法を教えてください。
(マニュアルを理解するには、チュートリだけでは知識が浅すぎると感じました)

よろしくおねがいします。
0660nobodyさん2010/07/03(土) 07:55:26ID:???
>>659
何かアプリ作りましょう
実践して、詰まって、解決策を自分で見つけてるうちに使えるようになるよ
0661nobodyさん2010/07/03(土) 09:36:37ID:???
テストプロジェクトとかじゃなしに、
実際の開発プロジェクトで、みんなadmin routingとか使う?
0662nobodyさん2010/07/03(土) 09:49:14ID:???
>>660
チュートリアルをやれば、あとは独力ということですね。

でも、チュートリアルを一通りやっただけで、独力で解決策を見出しながら開発を
進めていくチカラが付いたとは思えないんですけど・・・

CakePHPは習得が簡単だと思っていましたけど、実はかなり敷居が高いのでは
ないかと思ってしまいます。
0663nobodyさん2010/07/03(土) 10:13:10ID:???
>>662
それ、そもそもPHPの習得を一通りこなせていないのでは?
0664nobodyさん2010/07/03(土) 10:33:21ID:???
>662
何でひっかかってるんだい?
チュートリアル+入門書だけでスタートアップは十分だと思うけどな・・・
0665nobodyさん2010/07/03(土) 12:03:57ID:???
作成したテキストなどのファイルを一時的に保存しておくには
app/tmp/
の中に適当なディレクトリを作って保存する方法で構わないんでしょうか。

他に適切な配置場所があれば教えていただきたいです。
0666nobodyさん2010/07/03(土) 16:09:42ID:???
1.3の$js->linkなりで、updateの複数指定って出来なくなりましたよね?
代替の書き方ってあるんでしょうか?
0667nobodyさん2010/07/03(土) 16:49:44ID:???
>>659
cakeの実践アプリケーションの本でも買ったら?
あとはcakeの開発陣の人たちはgitとかで他人のコードを読みまくるのが大切と言ってたと思う

>>665
app/tmp/の中は基本的に消えちゃってもかまわないキャッシュファイルとかの置き場なので
作成したテキスト(がどんなものなのか知らないけど)がそういうたぐいのデータならそこでいいと思う

誰か>>618答えてくれー・・・
0668nobodyさん2010/07/03(土) 17:39:44ID:???
>>659
PHPのサンプル本とかで「○○の作り方」ってのを一個一個おさらいしていったらいい
それができれば、あとはcakeの中でそれらをくっつけていくだけでしょ
0669nobodyさん2010/07/03(土) 21:12:12ID:???
>>662
チュートリアルをそのまま殆ど写しただけで「終わりました」とか言ってないか?
そりゃ身に付いてるはずがない。
コピペすれば動くんだから、エラーの時の問題解決なんか出来るようになるわけないわな。

1から作るのがまだ辛いなら、チュートリアルアプリをなにか改造してみれ。
画面を増やすとか、レコード(テーブル)にカラム追加するとか、入力チェック追加するとか。
0670nobodyさん2010/07/04(日) 17:29:17ID:???
CakePHPは独力での学習コストは高いよ。
マニュアルがうんこだから。
非公式のチュートリアルもロクなもんがないしな。
0671nobodyさん2010/07/04(日) 17:46:20ID:???
object思考なにそれ?なおれが習得できたんだからそうでもないと思うけどな
0672nobodyさん2010/07/04(日) 18:30:42ID:???
CakePHPは独力での学習コストが高いと思うのは、
お前にとってCakePHPがはじめて使うフレームワークだからだろ。
0673nobodyさん2010/07/04(日) 19:01:49ID:???
よし学習コストが高いフレームワークを教えろ早く
0674nobodyさん2010/07/04(日) 19:19:56ID:???
.netはコスト高いぜ
0675nobodyさん2010/07/04(日) 19:30:42ID:???
struts
0676nobodyさん2010/07/04(日) 19:38:11ID:???
フレームワークが初めての人向けのチュートリアル
と、
フレームワークを既に知っている人向けのチュートリアル
があると、普及が促進されるかもね。
0677nobodyさん2010/07/04(日) 19:43:15ID:???
前にも誰か言ってたけど
バッドノウハウ的なもんがちょっと多いかなとは思う
0678nobodyさん2010/07/04(日) 20:39:01ID:???
>>674
.netはコスト低いだろ。
といってもmsの掌で踊るようなコードを書いてる限りだが。
0679nobodyさん2010/07/04(日) 23:19:50ID:???
チュートリアルと、実際に作るアプリの間に大きなギャップがあるのは確かだな。
チュートリアルを終えて、実際のアプリを作っていくうえで
「ここはどうやるんだろう」ということを何回も調べなければならない。
ま、どんなフレームワークでもそうだが、Cakeはチュートリアルが薄すぎる。
>>662が言っているのもそういうことだろう。
0680nobodyさん2010/07/04(日) 23:39:54ID:6la4DkIe
チュートリアルが薄いっつーのもあるけど
実際に開発通じての経験から言うと
フレームワークの設計の難に由来してる問題点も少なくないなと思った
よく知られてる大きなプロジェクトとかが
他のへ移行してしまうのは
やっぱそういった事も関係してるだろうなと思ったよ
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秒はあり得ないと思うんですよね・・。
ネタ扱いされているという事は、皆さんの環境ではそうでもないと言う事かな。
■ このスレッドは過去ログ倉庫に格納されています