【PHP】フレームワーク CakePHP 12ホール目【笑】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/07/01(金) 16:33:46.28ID:???CakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう
※sage推奨
※質問時も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
前スレ
【PHP】フレームワーク CakePHP 11ホール目【v1.3】
http://hibari.2ch.net/test/read.cgi/php/1297860755/
0482nobodyさん
2011/09/26(月) 04:36:04.08ID:???CakePHPではみなさんどのようにしていますか?
今のところ1個のモデルにフロントエンド、バックエンドのメソッドなどが一緒くたになっていてモデルが膨れ上がりつつあって困っています
0483nobodyさん
2011/09/26(月) 09:41:19.51ID:???0484nobodyさん
2011/09/26(月) 09:52:25.70ID:???ビューとコントローラーは表示と処理的な物ってわかるけど
モデルがよくわかんない
MySQLのテーブル名が規則に反してる時にしか使ってない
0485nobodyさん
2011/09/26(月) 10:29:59.47ID:???なにかしら損してるぞおまえ
0486nobodyさん
2011/09/26(月) 13:29:50.40ID:???ロジックをモデルに書くのは、つまりクラスと同じでデータのふるまい(型)を定義したものがモデルだから。
…と解釈してる。
0488nobodyさん
2011/09/26(月) 16:42:19.28ID:???画面を作りのたいのだけど、どうすればいいですか?
今ビューテンプレート内に
<? PHP
$form->text();
$ajax->submit("追加");
という感じにAjaxのサブミットボタンを用意したのですが、入口としてはこれであっていますか?
0489nobodyさん
2011/09/26(月) 16:45:26.64ID:???2/3しか使ってないから損してるのはわかるけど
勉強してる本に載ってるモデルの使い方がそれしかなかった
秀和システムの「CakePHP1.3によるWebアプリケーション開発」って本
別の本教会に行ってくる
0490nobodyさん
2011/09/26(月) 17:01:14.92ID:???0491nobodyさん
2011/09/26(月) 17:17:43.19ID:???無宗教だよ!!先祖の墓に行っても「なまんだー」だよ!!
0492nobodyさん
2011/09/26(月) 17:29:47.78ID:???http://old-journal.sooey.com/2008/03/26/717/
こういうの読むといいよ
というか、もしRailsを使ったことがないなら
CakePHPで勉強するより、Railsを触ってみる方が勉強になると思うよ
0493nobodyさん
2011/09/26(月) 17:41:09.22ID:???俺もその本で勉強したけど、嘘つけ
バリデーションや入力値チェックメソッドの例あったろうが
そういうのを全部モデルに押し込んでいかないと、コントローラーが肥っちまうんだよ
0495nobodyさん
2011/09/26(月) 18:16:23.00ID:???モデルというのは一般的にはビジネスロジックと言われてるヤツだ
と言っても分からんだろうから
受け取ったデータを処理する部分
とでも思ってくれ。
プログラムの本質はデータ処理であって、表示などの見かけは勝手にやってくれってこった
0497nobodyさん
2011/09/26(月) 21:19:31.37ID:???submitにupdateを指定しないと。
でも今から勉強するならAjaxヘルパーじゃなくてJsヘルパーにしましょう。
0498nobodyさん
2011/09/26(月) 22:29:13.42ID:???1.3の時は2週間ごとにRC更新して、RC4の次が正式版リリースだったけど、今回も同じパターンだろうか
2.0は9/5にRC1、9/19にRC2と来たから、10/2にRC3、10/16にRC4、10/30に正式版リリース!
0499nobodyさん
2011/09/26(月) 23:09:02.22ID:???期待していいのだろうか…
0501nobodyさん
2011/09/27(火) 00:21:40.21ID:???Rubyなんて全然知らないんだけど
0502nobodyさん
2011/09/27(火) 00:56:23.70ID:???今んところまだまだいろいろさまよってる感じですねぇ
0504nobodyさん
2011/09/27(火) 11:29:16.20ID:???と、SQLからデータを持ってきて($sqlにはStringでSQL文が入力されています)
for($i = 0;$i < count($table);$i++){
$arr = $table[$i];
echo "<tr>";
echo "<td nowrap>{$arr['shin']['NO']}</td>";
echo "</tr>";
}
という感じでテーブルを出力してるのですが、
データの項目が多くなってくると表示する量が多くなるので
5件ずつ出力したいと思っています。
ページネーションを使って$tableの中身を5件ずつ出力するには
どうすればいいのでしょうか、ご教授お願いします。
0505nobodyさん
2011/09/27(火) 17:56:03.91ID:???http://book.cakephp.org/ja/view/1231/%E3%83%9A%E3%83%BC%E3%82%B8%E4%BB%98%E3%81%91-Pagination
0506nobodyさん
2011/09/27(火) 19:21:12.62ID:???0507nobodyさん
2011/09/27(火) 23:54:02.59ID:???お礼が遅くなって、申し訳ありません。
改めて、有難うございました。
いろいろと試行錯誤の上、メール送信は
とりあえず送れたのですが、迷惑メール扱いと
文字化けと送るべきフォームの内容が入って
いませんでした。
orz
var_dumpして確認したとき、既に入ってなかった
ので、私の引数のいれ方が間違っているの
だろうと思います。
cannot modify 〜 はまだ出ますので、問題の
あるcake/libs/controller/controller.phpを
いじってみようと思います。
また行き詰まってしまったらご相談に来るかも
しれません。
しばらく自力でトライしてみますので、どうか、
よろしくお願いします。
0509nobodyさん
2011/09/28(水) 02:27:19.81ID:???問題はそこには無いぞw
0510nobodyさん
2011/09/28(水) 11:20:31.89ID:???読みつつ無い頭でウンウン考えて
$table = $this->Shin->query("$sql");
$table = $this->paginate();
for($i = 0;$i < count($table);$i++){
$arr = $table[$i];
echo "<tr>";
echo "<td nowrap>{$arr['Shin']['NO']}</td>";
echo "</tr>";
}
とすれば表示件数がページネーションで指定した件数になりましたが、
$sqlのSQL文が反映されていないようです。
>>504の方法ではテーブル名が「shin」でよかった(MySQLのテーブル名)のに対し、
この方法で実行すると「Shin」(modelで設定した名前)になってしまいます。
0511nobodyさん
2011/09/28(水) 12:06:10.11ID:???$this->Shin->query("$sql") の後に$this->paginate(); やっても意味無いっしょ。
2回クエリを発行してる。
基本的な$this->Model->find()の使い方とかわかってますか?
paginate()はfind()に毛が生えたようなものなので、find()と同じように条件を与えればいい。
どうしても$this->Model->query()を使うなら、
データを持ってくる範囲のLIMITの計算とかORDERとか、最後まで面倒みるつもりで。
0512nobodyさん
2011/09/28(水) 12:19:09.47ID:???そのWebサービスにはint型を渡さなくてはいけません。
その後の返り値をCakeのビュー内に表示するということをやりたいのです。
0513nobodyさん
2011/09/28(水) 12:21:13.41ID:???>基本的な$this->Model->find()の使い方とかわかってますか?
わかってない…です。
SQL文を直接書いて、ページネーションはできないという事でしょうか?
0514nobodyさん
2011/09/28(水) 12:28:11.88ID:???ちょ、おま・・・
何のためにCake使ってんだよ
SQL直接もできるけど、パスってなんですか?って聞いてくる自称サッカー選手にオフサイド教えるようなもん
0515nobodyさん
2011/09/28(水) 12:55:14.36ID:???PHPに触れた事がない状態で
「CakePHP使ってコレ(Webページ)作って」と言われたからです。
JSPならわかるんですけど、同じようなものだと思って受けてしまいました。
0516nobodyさん
2011/09/28(水) 13:02:54.75ID:???0517nobodyさん
2011/09/28(水) 13:03:53.38ID:???相手方のインターフェイスにもよるけど単純にRESTとかなら
ライブラリのHttpSocketのマニュアル見ればいい
0518nobodyさん
2011/09/28(水) 13:25:59.52ID:???よく引き受けたな。会社なら上司からの指令かもしれないけど、
それにしたって全く触った事がないんじゃ、敷居が高すぎるぞ。
0519nobodyさん
2011/09/28(水) 13:46:01.43ID:???「PHP触った事ないです」とは伝えたんですけどね、
「わからなかったら調べながらやって」とポケットリファレンスだけ渡されまして。
ここ1週間ほどページネーションでずっと詰まってます。
ビュー側で条件の入力をテキストボックスやチェックボックスで行って
それをサブミットしてコントローラ側で受け、if文でSQLの条件式を追加していく
そのSQL文を実行して、得た内容をテーブルに表示。
という感じで作ってみたものの、
表示件数が多くなるとそれだけ1ページの表示量も増えてしまう、
かといってページネーションを使おうとするとSQL文が使えなくなってしまう。
という状態です。
0520nobodyさん
2011/09/28(水) 14:00:41.03ID:???Cakeの機能は使わずにプレーンなSQLでやるにしてもページ数とか今見てるページに合わせて
SQL中のLIMITとか設定すればいいだけで難しくは無いことでしょ。
ただそれを簡単にするためのフレームワークなんだから本末転倒だけどw
やっぱ本家のcookbookのブログチュートリアルぐらいはやっておいた方がいいかと。
0521nobodyさん
2011/09/28(水) 14:58:24.86ID:???上司が
0522nobodyさん
2011/09/28(水) 16:03:07.45ID:???はできてるので、後は自己満足の世界なんです。
本版環境でどれだけのデータが入るのかわからないので、
できる事はやっておいた方が良いかなと
0523nobodyさん
2011/09/28(水) 17:28:03.46ID:???可哀想か?519にやらせる事自体が無謀だろ。
他に書いてるけど、スポーツが得意だからって、
野球選手にサッカーの試合でろって言ってるのと同じだ。
他の奴はどうか知らんが、PHPで5年開発してる俺でも
ネットで調べたり、ロジックに長考したりするのに、
全く経験無い奴が出来るはず無いだろ。
0524nobodyさん
2011/09/28(水) 18:00:14.11ID:???経験のあるかたいらっしゃいますか?
int型の引数をウェブサービスから渡し、帰り値をString型のXMLで受け取る格好です。
どうかよろしくお願いします。
0525nobodyさん
2011/09/28(水) 18:10:56.43ID:???上司の頭がかわいそうだなw
時間があるなら、訳分からなくてもいいから、ひととおりCookbook見てからやった方がいいぞ
他のフレームワークと比べて、CakePHPは癖が強いから
>>524
まず、「ウェブサービスとは何か?」を理解してから質問したら?
0526nobodyさん
2011/09/28(水) 18:19:57.43ID:???勉強し直せと言いたくなるのは分かるがw
0528nobodyさん
2011/09/28(水) 20:16:11.62ID:???0529nobodyさん
2011/09/28(水) 21:22:47.59ID:???JSPもわかってないでしょ。
O/RマッピングやMVCが理解できてなさそうだし。
Webアプリ開発の初歩からやり直したほうがよさそう。
メール送信のプログラムで、どうしても上手く
いきません。
頭がこんがらがってきました。
orz
もし、よろしければご理解のある方、お力を
お貸しいただけないでしょうか?
毎回、教えて君で、自分自身情けなく思って
おります。
ただ、どうしてメール送信が上手くいかないの
か、どうプログラムを組めば上手くいくのか
解決がなかなか導けません。
どうか、お願い申し上げます。
0531nobodyさん
2011/09/29(木) 00:05:36.06ID:???マニュアル読む。チュートリアルを自分の手を動かしてやってみる。
ぐらいはやったんだろうね?
function soushin(){
//文字コードの部分は省略します
//件名
$subject = "お問い合わせ";
var_dump($subject);
//宛先
$to = "〇〇〇〇@yahoo.co.jp";
var_dump($to);
//Undefined 〜 を回避するため引数を初期化
$mailaddress = "";
$name = "";
$naiyou = "";
$header = "";
$body = "";
//フォームからデータを受け取り
extract($this->params["form"]);
$this->data = array("モデル名" => array());
$this->data["モデル名"]["mailaddress"] = $mailaddress;
$this->data["モデル名"]["name"] = $name;
$this->data["モデル名"]["naiyou"] = $naiyou;
//差出人メールアドレス
$header = "From:"."$mailaddress";
//本文
$body. = "名前:"."$name"."\n";
$body. = "内容:"."$naiyou"."\n";
//確認
var_dump($header);
var_dump($body);
}
"お問い合わせ""〇〇〇〇@yahoo.co.jp""From:""名前:""内容:"
本来、「:」の後にフォームのデータが入るように
考えたのですが、全く入ってません。
Undefined回避のための初期化した段階で全て
無しになったのでしょうか?
フォームから引数に渡す際、
$mailaddress = $this->data["モデル名"]["mailaddress"];
とした方が良いのかも?と思いやってみたの
ですが、これだとUndefined 〜 が表示されて
エラーになります。
Undefined〜を表示させない他の方法で、php .iniに、
error_reporting(E_ALL & ~E_NOTICE);
を設定すれば良いという話があったのですが、
既にサーバー側には指定されており、
function soushin(){ 直後に書いても変わりませんでした。
私のプログラムの書き方が間違っているから
上手くいかないのはわかりますが、現在、
どこを直せば上手くいくのかわかりません。
どうか、お力をお貸し下さい。
お願い致します。
0534nobodyさん
2011/09/29(木) 00:33:40.42ID:???そのレベルのことでつまずいていて、なおかつ社内で誰もサポートしてくれないのなら、
他のまともな会社か別業界に転職した方がいいだろ
どうしてもCakePHPでメール送信のコードを書きたいというのなら、まずはPHP入門本を一冊読んでから始めた方がいい
0535nobodyさん
2011/09/29(木) 00:52:24.52ID:???GOOD LUCK
失礼しました。
一度、cakephpから離れてもう一度、phpから
勉強し直します。
メール送信は、まだ、解決してませんが、
少し時間がかかっても、なんとか自力で解決
方法を探してみます。
お時間とらせてすみませんでした。
ご返事、有難うございました。
0537nobodyさん
2011/09/29(木) 13:05:27.99ID:???どの関数を使えばいいか整理がつかない
0538nobodyさん
2011/09/29(木) 14:25:08.77ID:???Dreamweaverだとしっくりこない
0539nobodyさん
2011/09/29(木) 16:17:33.56ID:???コードでエディタなんてどれも大差ないだろ。
0540nobodyさん
2011/09/29(木) 17:11:42.57ID:???0542nobodyさん
2011/09/29(木) 18:23:43.46ID:???これをXMLのテキストとして受け取る方法はあるのでしょうか?
よろしくお願いします。
0543nobodyさん
2011/09/29(木) 19:46:26.25ID:???0544nobodyさん
2011/09/29(木) 20:38:47.84ID:???cakehtmlのプラグインでシンタックスもインデントもある程度満足。
0545nobodyさん
2011/09/30(金) 00:05:38.41ID:???0546nobodyさん
2011/09/30(金) 12:30:59.81ID:???0547nobodyさん
2011/09/30(金) 13:05:43.74ID:???eclipse pleiadesall in one
0549nobodyさん
2011/10/01(土) 15:43:40.10ID:???公式から解凍したフォルダを既存サイトのフォルダにいれると競合したファイルがあったりするんですがやり方が間違っているのでしょうか
ご教示下さいますようお願い致します
0550nobodyさん
2011/10/01(土) 15:51:28.83ID:jK5skCaAgroupやjoinなどを使ったときのページングとかどうしてる?
0552nobodyさん
2011/10/01(土) 21:28:38.37ID:???0553nobodyさん
2011/10/01(土) 21:59:39.27ID:???0554nobodyさん
2011/10/02(日) 14:39:03.17ID:???ローカル上ではリクエスト・レスポンスの速度は問題無いのですが、レンタルサーバーにアップすると反応が10秒以上かかります
フレームワーク本体のソースは特に変更はしていません
同様の構成で、同じ様な事象の方がいましたら、問題点や解決方法を教えていただけませんか?
version 1.3.12
サーバー ロリポップ
0556nobodyさん
2011/10/02(日) 23:08:37.50ID:???>>554です
回答ありがとうございます
Javaがメインの為、詳しい事が分から無いので、これから調べてみます
0558nobodyさん
2011/10/03(月) 01:05:34.50ID:???ひとまずの遅い箇所の特定が出来ました
dispatcher.php の _invoke 一行目
$controller->constructClasses()
$this->log での時間になりますが、上記の処理を通過する度に約三秒かかる事が分かりました(サーバー)
ローカルでは一秒未満です
調べたところ、コントローラーに必要なモデルを読み込むとありますが、
自身の各コントローラーで利用しているモデルは二つ以下です
何か設定の間違いや、チューニングの余地はあるのでしょうか?
0559nobodyさん
2011/10/03(月) 09:59:13.23ID:???0560nobodyさん
2011/10/03(月) 13:21:13.04ID:???システム設定として読み込めるようにしています。
ページ推移する毎に何度もfindでデータを取ってくるのではなく、
ファイルに書き出してファイルをincludeする方法があったと思うのですが、
どういうやり方だったか失念しました。
ご存じの方は教えて下さい。よろしくお願いします。
0561nobodyさん
2011/10/03(月) 14:05:58.29ID:???bootstrap.phpで、
dbから設定を読み込んでConfigure::storeでキャッシュに書き込んでおくと
各コントローラー等からはConfigure::readで読み出せるようになる。
すでにconfigureファイルのキャッシュがあるときはdbから読み出しはスルーする。
設定変更時にはキャッシュをクリアする。
と言った感じで俺はやってます。
0562nobodyさん
2011/10/03(月) 14:54:28.12ID:???それってcookbookにやり方書いてますかね?
設計図が想像出来ないので、どうググって良いかわかりません・・・
0563nobodyさん
2011/10/03(月) 15:04:04.72ID:???やり方わかる人いますか
本当に成功する?
0564nobodyさん
2011/10/03(月) 15:35:02.70ID:???俺は使ったこと無いけど
https://github.com/cakephp/datasources
0565nobodyさん
2011/10/03(月) 15:50:56.06ID:???0567nobodyさん
2011/10/03(月) 20:05:58.58ID:???CSVなんて何書いてあるかなんてまったく保証できないし
0568nobodyさん
2011/10/04(火) 22:41:08.80ID:???0569nobodyさん
2011/10/04(火) 22:45:11.70ID:???はい次
0570nobodyさん
2011/10/04(火) 22:48:09.19ID:???どちらが仕事ありますか?
0571nobodyさん
2011/10/04(火) 23:07:55.06ID:???はい次
0572nobodyさん
2011/10/04(火) 23:16:29.60ID:???その時はrailsの仕事が増える。
以前のperl vs phpのときは
phpの方が明らかに生産性と可読性が高く
phpを選ぶ理由が沢山あった。
rubyの場合はwebに特化した言語という思想ではなく
気持ちよくプログラミングするという思想なので
HTMLにどう吐き出のが便利とか
JavaScriptと連携するには、どうしたら便利とか
Flashと連携するには、どうした便利とか
ruby開発者(松本)は、そこまで考えてはくれない。
0573nobodyさん
2011/10/04(火) 23:28:24.52ID:???>2.0.0-RC3 marks the end of the release candidates for 2.0.
RC3の次に正式版リリース!?
0574nobodyさん
2011/10/04(火) 23:30:19.20ID:???どちらが安全性は高いですか?
どちらがプラグインやソースは情報豊富ですか?
0575nobodyさん
2011/10/05(水) 00:44:43.34ID:???0576nobodyさん
2011/10/05(水) 14:16:29.39ID:???不要なファイルを全て読み込み、classを保持するから重い。
逆にこれを改善できれば(あるいは開発者が指定できれば)
Cakeが一番のFWになると思っているのですが、違いますか?
0577nobodyさん
2011/10/05(水) 14:20:56.50ID:???その10秒かかるページが表示されるまで表示されないんだけど、なぜこうなるの?
cakePHP使わずにやれば表示されるし
DBかファイルがロックされてるのかと思って調べたけどよくわからなかった。
テーブルが被らず、ビューキャッシュされてるページでもダメだった。
php初めて一ヶ月だから勘違いかもしれないが。 ver1.3.7
0578nobodyさん
2011/10/05(水) 16:24:00.48ID:???2.0は不要なファイルは読み込まないようになったんじゃなかったっけ?
ただそれだけで他のフレームワーク比で軽くなるとも思えないけど
0579nobodyさん
2011/10/05(水) 18:01:54.87ID:???余計なファイル読まない・実行しないなら
内部メモリも使用しないから、軽くなりそうなんだけどな。
2.0の情報が少ないから、
どの程度まで改善されているのか分からないのが不安だ
0580nobodyさん
2011/10/05(水) 22:17:47.97ID:???CakePHPは、やりたい事を見た目楽にできる、クールに記述できる、ということにコードの行数を割いてるから、そんな早くもならないt思うよ
よーするに、規約が複雑になりすぎたんだな
そのお陰で、他のフレームワークと比べてメソッドが肥大化している
■ このスレッドは過去ログ倉庫に格納されています