【PHP】フレームワーク CakePHP 8ホール目【1.3】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/03/18(木) 10:00:59ID:6+kHM8kHCakePHPから派生した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
0616nobodyさん
2010/06/28(月) 12:06:27ID:???認証済みのユーザーということじゃないんだよね?
そうすると、2つのブラウザのアクセスが同一人物だと判定しなきゃいけない
URLに埋め込むとセッションハイジャックされるリスクを負うんじゃまいか?
0618nobodyさん
2010/06/28(月) 15:17:05ID:???Diary.id Diary.user_id Diary.body
Comment.id Comment.diary_id Comment.body
というDB構成で作っているときに、
「最新のコメント10件がが誰の日記に向けて書かれたか」を表示させるとき、
$this->Comment->findで、recursiveを2にしてデータを取ってきてるんだけど、
CommentとDiaryがJOINされるんだけど、それとは別にUserのデータを
取ってくるのに10回もSQLを投げてしまうのはしょうがないものなの?
CakePHPが副問い合わせに対応していないせい?
表示させたいのは
>最新のコメント10件
> こんにちは → Aさんの日記
> お久しぶりです → Bさんの日記
> 面白いですね → Aさんの日記
> ...
という感じなんだけど
0619nobodyさん
2010/06/28(月) 19:53:05ID:qHDwmPz9<TABLE width="400px"> として表にしてもブラウザの幅に
あわせて伸び縮みしてしまいます。
デフォルトのCSSファイルより、優先されると思うのですが何故でしょうか?
CSKEPHPはver1.2です。
0620nobodyさん
2010/06/28(月) 20:02:50ID:???htmlはpxいらねーよ
てか悪いことは言わん。この業界あきらめろお前は
0621nobodyさん
2010/06/28(月) 20:26:44ID:???0622nobodyさん
2010/06/28(月) 20:27:47ID:qHDwmPz9なるほど、うまくいきました。
ありがとうございました。
0623nobodyさん
2010/06/28(月) 20:36:54ID:???HTML/CSS/PHP/CakePHPこれらを切り分けもできずに
こんなところで糞な質問しちゃう奴なんざやめろ今すぐ。
0624nobodyさん
2010/06/28(月) 20:44:55ID:???今後は気をつけるだろう
0625nobodyさん
2010/06/28(月) 23:42:04ID:???0626nobodyさん
2010/06/28(月) 23:52:38ID:???1セッション当たり、10MBくらいは普通かな?
0627nobodyさん
2010/06/28(月) 23:54:20ID:???優しい奴だな。ちょっともえ
0628nobodyさん
2010/06/29(火) 07:25:59ID:???あそこは世紀を超えての名サイトだ。
0629nobodyさん
2010/06/29(火) 08:46:43ID:???これをリアルで言われて
言われたヤツやめちゃって
やめたヤツの仕事が俺に回ってきて
言ったヤツ知らん顔
俺涙目
0630612
2010/06/29(火) 12:04:06ID:???結局やりたいことというのは
「同時にブラウザを複数立ち上げたときに、それぞれ別々に状態を保持しておきたい」
ということです。極端な話、ブラウザ1・ブラウザ2でそれぞれユーザー1・ユーザー2
で認証をしたら、それぞれのユーザーで独立して動作するイメージです。
実際に作っているアプリでは、認証情報・画面遷移情報・入力データなど、結構な量の
データを画面間で保持する必要があります。実現方法として考えているのは下記です。
1.URLにSession IDを埋め込み、それを基にServer側で使うべきSessionを切り替える
→携帯サイト向けのサンプルは見つかった。いまいち良いサンプルが見つからない
2.引き継ぐ情報をまとめてシリアライズ・暗号化してURL・POSTで渡す(極力Sessionは使わない)
→通信データサイズが結構な量になるかも・・・
こうしたほうが良い等ご意見ありましたらお教えください。。
0631nobodyさん
2010/06/29(火) 12:16:19ID:???ん?>>616だけど完全に逆だと思ってた。
っていうか、違うブラウザなら、別のセッションだと認識されるのが普通だが、どんな環境でチェックしてるの?
FFとChromeでやってみたが、ふつうにそれぞれ独立してインクリメントされるよ??
0632612
2010/06/29(火) 12:47:04ID:???こちらではIE8、FF、Chromeともに下記の動作となります。
時系列で書きます。
ブラウザ1を起動
ブラウザ2を起動
ブラウザ1で「http://sample.sakushima.net/Cake/sessions/」を表示→表示回数:1
ブラウザ2で「http://sample.sakushima.net/Cake/sessions/」を表示→表示回数:2
ブラウザ1でF5(リロード)→表示回数:3
ブラウザ2でF5(リロード)→表示回数:4
0633612
2010/06/29(火) 12:55:56ID:???補足で、ブラウザ1・2ともに同じ種類のブラウザです。
もしかしたら616さん、ブラウザ1:FF・ブラウザ2:Chormeとか、
別のブラウザを立ち上げてるんじゃないかと。
0634nobodyさん
2010/06/29(火) 16:46:35ID:???サーバ側で何らかの識別データをGET/POSTで埋め込むのしか思いつかない。。
0635nobodyさん
2010/06/29(火) 17:07:06ID:???うん。そうだよ。別のブラウザでやった。
同じブラウザのタブ別で別ユーザーだと認識させたいの?
そりゃまた無茶なことを、、、
0636nobodyさん
2010/06/29(火) 17:11:36ID:???0637nobodyさん
2010/06/29(火) 17:35:04ID:???セッションが切れちゃって確かに鬱陶しいけど、まあ開発中の一時的なもんだしなあ。
0638nobodyさん
2010/06/29(火) 23:52:30ID:???0639nobodyさん
2010/06/30(水) 00:49:39ID:???データをmysqlに移行する以外は意外とめんどくさくない
0641nobodyさん
2010/06/30(水) 19:52:27ID:???Fatなコントローラーをmodelに集約しようと思い、
新しく scrape というモデルを作って、動かしてました。
ローカルでは普通に上手く行くのですが、
いざWEB上で動かすと、
Database table scrapes for model Scrape was not found.
というエラーメッセージが。。
0643nobodyさん
2010/06/30(水) 20:11:23ID:???modelで
var $useTable = false;
だったかをするとテーブルなくても怒られないけど?
0644nobodyさん
2010/06/30(水) 20:13:05ID:???すまそ
0646nobodyさん
2010/07/01(木) 04:37:27ID:???一応チュートリアルにもあるが、Cakeで始めにはまる落とし穴。
あと>>643とか使えないヤツだから気にするな。
0647nobodyさん
2010/07/01(木) 10:24:02ID:???モデルAのpaginate()の中で
SELECT * FROM a, b, c WHERE a.b_id = b.id AND b.c_id = c.id;
という形のSQLを発行しているのですが、
<th><?php echo $paginator->sort('c.name');?></th>
のリンクをクリックしてもソートされないのです。
モデルAとCはリレーションがないため、
paginate()の$order引数に 'c.name' => 'asc' が入ってこないようです。
どうすればいいでしょうか?
0648nobodyさん
2010/07/01(木) 13:01:04ID:???二度と来るな
0649nobodyさん
2010/07/01(木) 16:03:56ID:???cakeを動かした例はあるでしょうか。
同業者からの依頼でcakeを使う予定なんですが、再利用される恐れがあるため
なんとかできたらと考えてます。
0652nobodyさん
2010/07/01(木) 18:58:02ID:???そのファイルのソース中にリンク、例えばhote.htmlがあると出力したときに
hoge.html?CAKEPHP=681a529c456e8da3f6a2e39219c8f4ca
と言う文字列が必ず付くのですがこれはどうすれば消せますか?
と言うか何のためにリンクに文字列が付いて出力されてるんでしょうか?
0653nobodyさん
2010/07/01(木) 20:23:40ID:???それセッションIDだろ
session.use_trans_sid = 0にするか、セッション使わない設定にしたら?
0655647
2010/07/01(木) 22:49:41ID:???で動的に関連をセットすることでできました。
0656nobodyさん
2010/07/03(土) 02:07:02ID:???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:???PHP自体は理解しており、MVCも理解しているつもりです。
とりあえず学習の定番と言えそうな本家(日本語)のチュートリアルをやってみました。
でもこれだけでは、その後独力でCakePHPの学習を推進していくチカラが得られませんでした。
チュートリアルのつぎのステップとしてお勧めな学習方法を教えてください。
(マニュアルを理解するには、チュートリだけでは知識が浅すぎると感じました)
よろしくおねがいします。
0661nobodyさん
2010/07/03(土) 09:36:37ID:???実際の開発プロジェクトで、みんなadmin routingとか使う?
0662nobodyさん
2010/07/03(土) 09:49:14ID:???チュートリアルをやれば、あとは独力ということですね。
でも、チュートリアルを一通りやっただけで、独力で解決策を見出しながら開発を
進めていくチカラが付いたとは思えないんですけど・・・
CakePHPは習得が簡単だと思っていましたけど、実はかなり敷居が高いのでは
ないかと思ってしまいます。
0664nobodyさん
2010/07/03(土) 10:33:21ID:???何でひっかかってるんだい?
チュートリアル+入門書だけでスタートアップは十分だと思うけどな・・・
0665nobodyさん
2010/07/03(土) 12:03:57ID:???app/tmp/
の中に適当なディレクトリを作って保存する方法で構わないんでしょうか。
他に適切な配置場所があれば教えていただきたいです。
0666nobodyさん
2010/07/03(土) 16:09:42ID:???代替の書き方ってあるんでしょうか?
0667nobodyさん
2010/07/03(土) 16:49:44ID:???cakeの実践アプリケーションの本でも買ったら?
あとはcakeの開発陣の人たちはgitとかで他人のコードを読みまくるのが大切と言ってたと思う
>>665
app/tmp/の中は基本的に消えちゃってもかまわないキャッシュファイルとかの置き場なので
作成したテキスト(がどんなものなのか知らないけど)がそういうたぐいのデータならそこでいいと思う
誰か>>618答えてくれー・・・
0668nobodyさん
2010/07/03(土) 17:39:44ID:???PHPのサンプル本とかで「○○の作り方」ってのを一個一個おさらいしていったらいい
それができれば、あとはcakeの中でそれらをくっつけていくだけでしょ
0669nobodyさん
2010/07/03(土) 21:12:12ID:???チュートリアルをそのまま殆ど写しただけで「終わりました」とか言ってないか?
そりゃ身に付いてるはずがない。
コピペすれば動くんだから、エラーの時の問題解決なんか出来るようになるわけないわな。
1から作るのがまだ辛いなら、チュートリアルアプリをなにか改造してみれ。
画面を増やすとか、レコード(テーブル)にカラム追加するとか、入力チェック追加するとか。
0670nobodyさん
2010/07/04(日) 17:29:17ID:???マニュアルがうんこだから。
非公式のチュートリアルもロクなもんがないしな。
0671nobodyさん
2010/07/04(日) 17:46:20ID:???0672nobodyさん
2010/07/04(日) 18:30:42ID:???お前にとってCakePHPがはじめて使うフレームワークだからだろ。
0673nobodyさん
2010/07/04(日) 19:01:49ID:???0674nobodyさん
2010/07/04(日) 19:19:56ID:???0675nobodyさん
2010/07/04(日) 19:30:42ID:???0676nobodyさん
2010/07/04(日) 19:38:11ID:???と、
フレームワークを既に知っている人向けのチュートリアル
があると、普及が促進されるかもね。
0677nobodyさん
2010/07/04(日) 19:43:15ID:???バッドノウハウ的なもんがちょっと多いかなとは思う
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以外に合うものが見つかるかも。
0682nobodyさん
2010/07/05(月) 01:12:10ID:???Javaの何かと比べると、覚える事が意外と少ないな、という印象なんですが・・・
0683nobodyさん
2010/07/05(月) 01:19:57ID:???簡単な手順で作れるよね。
手を入れようとすると大変だけど。
0684nobodyさん
2010/07/05(月) 03:55:03ID:???ぐぐればたいてい解決してる
0686nobodyさん
2010/07/05(月) 12:20:49ID:???レンダリングしたものを、ファイル出力するシェルプログラムを組みたいのですが…。
0687nobodyさん
2010/07/05(月) 12:56:52ID:???http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1774&forum=3
これでどう?
0688nobodyさん
2010/07/05(月) 16:54:56ID:???0689nobodyさん
2010/07/05(月) 17:52:47ID:???0690nobodyさん
2010/07/05(月) 18:02:13ID:???0691nobodyさん
2010/07/05(月) 20:02:09ID:???0692nobodyさん
2010/07/05(月) 20:37:48ID:???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:???説明不足ですまん、ソース追ったけど見つけられなかったんだ
継承して書き換えもいいけど、末尾の3文字削って>付け足すわ
0697nobodyさん
2010/07/06(火) 11:07:43ID:???複数タスクが走っている場合に
別のタスクのidを取得しちゃう可能性がある。っていう記述を
見つけてしまったんですが、
対処方法はどういったやりかたが考えられますか?
0698nobodyさん
2010/07/06(火) 11:24:19ID:???糞だな
0699nobodyさん
2010/07/06(火) 11:26:35ID:???0700nobodyさん
2010/07/06(火) 11:40:57ID:???でググったらでてきました
0701nobodyさん
2010/07/06(火) 12:03:46ID:???0702nobodyさん
2010/07/06(火) 12:56:26ID:???こちらです
0703nobodyさん
2010/07/06(火) 13:57:00ID:???0704nobodyさん
2010/07/06(火) 14:58:46ID:???0705nobodyさん
2010/07/06(火) 15:01:58ID:???p..64で本のように表示できなくなりました。どなたかp62-64の
誤りを教えてください。スクリプトは付属CDのをそのままコピーしている
のですが・・・
0706nobodyさん
2010/07/06(火) 15:03:52ID:???sendform画表示されてエラーになってしまいます>__<
0707nobodyさん
2010/07/06(火) 15:06:25ID:???どう表示されているかぐらい書こうや
0708nobodyさん
2010/07/06(火) 15:11:06ID:???質問の仕方を教えてやってるだろうが。
706もそうだが、聞きたいならどの情報に対して、何をしたらどういう状況になってるかくらい書け。
答えられるかは別問題だ。
0709nobodyさん
2010/07/06(火) 15:18:17ID:???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:???でした。解説はこのコードを前提に修正していく記述なので止まってます。
0711nobodyさん
2010/07/06(火) 15:22:33ID:???0712nobodyさん
2010/07/06(火) 15:26:23ID:???○<form method="get" action="/sendform">
0713nobodyさん
2010/07/06(火) 15:27:06ID:???すまん
×<form method="get" action="/sendform">
○<form method="get" action="./sendform">
/sendformの前にドットを入れてみる。
0715nobodyさん
2010/07/06(火) 15:28:37ID:???です。たびたび申し訳ないです。
これをaction="./hello/sendForm">
にしてもだめなのです・・・
■ このスレッドは過去ログ倉庫に格納されています