【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/
0231nobodyさん
2011/08/14(日) 14:01:53.48ID:???つまり、「マニュアルに書いてあるよ」とひと言いえば言いだけか。
0232nobodyさん
2011/08/14(日) 17:19:29.07ID:???お前何で「マニュアルに書いてる」って前提で話してるんだ?
それはお前が書いてるのを知ってるからわかるわけで、
それを知らない奴にとっては、書かれている事はわからないだろ。
で、マニュアルに書いてないと思った・あるいは見てないから質問するわけで、
だったら「マニュアルに書いてるよ」と、ひと言いえば済むだけ。
何をそんな疑問に思うか全く分からん。
0233nobodyさん
2011/08/14(日) 17:35:54.78ID:???じゃぁ、お前はなんで「>>1に書いてある」って前提で話してるんだ?
それはお前が書いてるのを知ってるからわかるわけで、
それを知らない奴にとっては、書かれている事はわからないだろ。
で、>>1に書いてないと思った・あるいは見てないから質問するわけで、
だったら「>>1に書いてるよ」と、ひと言いえば済むだけ。
何をそんな疑問に思うか全く分からん。
0234nobodyさん
2011/08/14(日) 17:45:10.43ID:???FWの作法・流儀にそった実装をして、共通認識を崩さないよう開発をするもんでしょ。。
あと読み流すだけでいいからクラス一覧も。
元主は質問してくれたんだから俺的にはセーフです。
0235nobodyさん
2011/08/14(日) 18:16:49.08ID:???質問に分かる奴がいれば答えれば良いし、分からなければ無視しろ。
マニュアルや>>1にあるなら教えればいいし、そうじゃなければggrksでいい。
なにを数レスまでごちゃごちゃ言ってるか俺には理解できない
0237nobodyさん
2011/08/15(月) 12:20:35.84ID:???/ \
/ ─ ─\
/ ,(●) (●)、\
| (__人__) | 仕事って教えてもらうものですよね。
\ ` ⌒´ / 自分で勉強しろとか上司の役割果たして無いと思うんです。
,,.....イ.ヽヽ、___ ーーノ゙-、.
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
> ヽ. ハ | ||
教えて下さい。
簡単なフォームを作って確認の上、DBに登録
させる仕組みを作ったのですが、layoutデータ
の画像がリンク切れを起こします。
フォームのあるviewフォルダの中には、index、
kakunin、touroku、kanryouの4つのファイルが
あり、controllerで毎回layoutを再読み込みする
のですが、layoutのデータがちゃんと適用
されるのがindexのみでした。
他のファイルは/〇〇/kakuninのようにルートが
変わってしまうので、Router::url()を使って
変更するのだろうと思い試してみたのですが
上手くいきません。
とりあえず、Routerクラスあたりをあたって
いますが、詳しい方、どうか、無知な私に
教えていただけないでしょうか?
cakephpは、1.3を使っております。
よろしくお願い致します。
0239nobodyさん
2011/08/15(月) 21:47:16.16ID:???HTMLヘルパー使っての話しか?試しに↓したらどうだ?
<img src="<?php echo Router::url('/img/test.jpg');?>" />
今、試してみました!
出来ました!
有難うございます!
有難うございます!
今日一日、一体、何をやってたんだと情けない
ほど凹んでました。
本当に有難うございます!
リンクも同様に出来ました!
本当に、本当に、有難うございました!
0241nobodyさん
2011/08/16(火) 00:21:57.18ID:???悩んだら何でも最小限にして試してみる事だよ。
どこが問題になっているか分かりやすいからな。
0242nobodyさん
2011/08/18(木) 15:52:24.92ID:???ログインのフラグとして利用してるんだけど、すぐ切れる(無くなる)
core.phpの設定いじりまくってるが改善されん
0243nobodyさん
2011/08/18(木) 18:30:10.59ID:???知らないと使おうとしちゃうよね、結局皆自作してる
0244nobodyさん
2011/08/18(木) 19:03:38.07ID:???0245nobodyさん
2011/08/18(木) 20:01:04.63ID:???ブラウザを閉じたら、セッションも切れて欲しい
0246nobodyさん
2011/08/18(木) 21:23:39.00ID:???サーバのセッションデータが消えているのか切り分けないと。
たぶんサーバ側と思われ。
前スレだったかにもあったんじゃないかな。
http://pentan.info/php/session_gc.html
0247nobodyさん
2011/08/22(月) 12:06:04.64ID:???誰かくれませんかね?
0248nobodyさん
2011/08/22(月) 17:21:34.40ID:???https://github.com/hidetora23/hg_smarty_for_cakephp
これが動くかも。
0249nobodyさん
2011/08/22(月) 18:00:06.79ID:???0250nobodyさん
2011/08/22(月) 18:23:05.36ID:???0251nobodyさん
2011/08/22(月) 18:33:38.79ID:???0252nobodyさん
2011/08/22(月) 18:46:11.57ID:???0253nobodyさん
2011/08/22(月) 19:12:26.94ID:???Smartyだと禁止できる、というだけの話。
あと、これは自分の知識不足かもだけど、
CakePHPのデフォルトのテンプレートだと文字力出力すべてに
自動でHTMLエスケープとかできないような?
0254nobodyさん
2011/08/22(月) 20:18:34.47ID:???まあ有名だけど使う理由あるか?
0256nobodyさん
2011/08/22(月) 20:55:58.11ID:???<h1><?= $title ?></h1>
<?php endif; ?>
こういうテンプレートがある
0257nobodyさん
2011/08/22(月) 21:31:07.23ID:???フレームワークを使っているにもかかわらず
わざわざHTML内にPHPタグを書く面倒臭さを解消する程度の
知識も技術力もありませんっていう自己紹介ですか?w
0258nobodyさん
2011/08/22(月) 21:41:09.85ID:???ってのも立派な採用理由だと思うが。
0260nobodyさん
2011/08/22(月) 23:16:08.46ID:???まぁ、JavascriptはSmarty使ったところで一緒だがな。
デザイナでも受け入れられるテンプレートっつーと、PHPTalとかKwartsくらいか。
プログラマの方が一歩譲ってデザイン分かるようにしとるんだから、デザイナの方もPHPくらい分かれよ、って話は無い事も無いとは思うが。
0262nobodyさん
2011/08/23(火) 00:30:20.72ID:???情報も多いし。
0263nobodyさん
2011/08/23(火) 00:54:15.02ID:???それはプラスだけど、決定的な理由にはならんだろ
0264nobodyさん
2011/08/23(火) 00:55:46.48ID:???採用理由の一つにはなるだろ?ならない?
0265nobodyさん
2011/08/23(火) 01:06:12.97ID:???基本的にviwsの中身は触ってほしくないと思ってる。
単純に、例えば記事を$kiji配列でviewに渡して
viewの中で$kiji['tilte']とかを配置してく程度のお仕事ならいいけどさ。
cakeの機能を使えば使うほど、それだけでは無理が出てくる。
helperの仕様や中身まで熟知してもらわなきゃならなくなるからね。
0266nobodyさん
2011/08/23(火) 05:48:58.87ID:???プログラマにもデザイナにも使いにくい。
重さは許容範囲なんだが…。
0267nobodyさん
2011/08/23(火) 12:34:16.08ID:???問題は、CakeにSMarty使う事だ。
Cakeのテンプレや書き方があるんだから。
だから、Cake採用しているシステムは
PG以外にテンプレ触らせないようにすればいい。
0268nobodyさん
2011/08/23(火) 12:44:45.66ID:???0269nobodyさん
2011/08/23(火) 14:20:07.00ID:???Smarty以外にもテンプレは沢山あるんだから。PHPにはすげえ沢山あるぞ。
何故か>>255なんかは知らないみたいだけど。
情弱にはなりたくないもんだな。
せっかくMVCと分けてんのに、Vをデザイナ(HTMLコーダー)に振れないって意味わかんないw
0270nobodyさん
2011/08/23(火) 15:35:06.98ID:???言ってることには同意なんだけど、
じゃあ実際に何を使ってるのか具体的に名前を上げて欲しい
確かに個人製作みたいなライブラリがPHPにはすげえ沢山あるけど、
そのうちのほとんどがクソ品質だと思うんだが、使えそうなものっていくつあるの?
0271nobodyさん
2011/08/23(火) 16:03:36.46ID:???俺はHTML_Template_Sigmaを使ってるよ。
これのいいところは形式がほぼhtmlそのままであること。
ブロックの指定は
<!-- BEGIN AAA_BLOCK -->
xxxxxx
<!-- END AAA_BLOCK -->
にようにコメントで行うので、そのままブラウザで開いても(PHPを実行しなくても)ある程度表示確認ができる。
変数には$がつかず、{hage}などと挿入するだけ。
複雑な関数はいくらでも自作でき、html内にfunc_xxxx(引数)
これでなんでもできる。
テンプレ内にPHPのコードが一切出てこないため、プログラマ以外でも編集しやすい。
パフォーマンスも悪くない(Smartyと同程度)のでオススメ。
0272nobodyさん
2011/08/23(火) 18:26:21.68ID:???ループがプログラム側に来ているのが気に入らんかったかな。
といってもまぁ、Smartyに慣れる前はSmartyのテンプレート側でループしちまうってのが気持ち悪かったもんだから、そこは慣れなんだろうな。
0273nobodyさん
2011/08/24(水) 02:25:13.34ID:???>パフォーマンスも悪くない(Smartyと同程度)のでオススメ。
ならSmartyで良いんじゃないか?
無名のテンプレなんてオレオレと変わらんだろ。
そもそもテンプレートエンジン使うのが
「他人がわかりやすく編集するため」なんだし。
0274nobodyさん
2011/08/24(水) 14:36:43.09ID:???Smartyが使いにくいから嫌だって言って、他のを進めてるんじゃないの。
なのに重さが同じならSmartyでいいじゃんってw
あとお前が知らなければ無名なのかwどうせ他に1つも知らないんだろ?
0275nobodyさん
2011/08/24(水) 14:45:29.44ID:???0276nobodyさん
2011/08/24(水) 15:24:39.56ID:???0277nobodyさん
2011/08/24(水) 15:30:25.84ID:???だから狭い範囲で語るなってw
よっぽどSmartyに恨みあるのか知らんが
お前がこの世の中心じゃねーんだよ
0278nobodyさん
2011/08/24(水) 15:35:48.21ID:???0279nobodyさん
2011/08/24(水) 22:19:19.91ID:???0280nobodyさん
2011/08/24(水) 22:30:37.30ID:???0281nobodyさん
2011/08/25(木) 04:07:10.99ID:???・Smartyを使う理由はない派
・Smartyを使う理由はあるけど他にもっといいのあるよ派
・Smartyはいいものだ
0282nobodyさん
2011/08/25(木) 13:16:21.16ID:???0283nobodyさん
2011/08/25(木) 16:30:21.20ID:???0284nobodyさん
2011/08/25(木) 22:31:51.21ID:???1.3ではバージョンファイルの削除は
プラグイン側ではやってくれないようになったのでしょうか?
0.6ではbeforeDeleteでtransferとバージョンファイル両方消してくれてましたが、
1.3ではtransferしか消してくれてないようなんですが。
0285nobodyさん
2011/08/26(金) 13:13:17.82ID:???0286nobodyさん
2011/08/26(金) 13:40:06.61ID:???左に各ページに飛ぶボタン、右に各ページを作ってるわけさー
で、ログイン処理行ってて、左にログアウトボタンをつけて
echo $form->create('MUser',array('action'=>'logout','target'=>'_top'));
echo $form->end('logout');
でちゃんとログイン画面に戻るんだけど
タイムアウトの場合、左のボタンを押したら
右側だけがログイン画面にいっちゃう
で、ログインしようとすると、フレームが増える(左左右みたいに)
タイムアウトの場合も1画面のログイン画面に戻したいんだけど
何か良い案はないですかね?
0287nobodyさん
2011/08/26(金) 16:47:07.40ID:???0288nobodyさん
2011/08/26(金) 17:08:32.51ID:???どうやってんのかサッパリだわ。
0289nobodyさん
2011/08/26(金) 17:40:48.03ID:???0290nobodyさん
2011/08/26(金) 17:41:53.24ID:???使ってそうだな
0291nobodyさん
2011/08/26(金) 18:56:15.61ID:???tableでレイアウト作るような奴とは仕事したくないけど、
表を作るならtableタグを使うべきだと思うけど。
0292nobodyさん
2011/08/26(金) 21:34:55.48ID:???0294nobodyさん
2011/08/26(金) 23:42:06.60ID:???ヘッダー、左サイドバー、右本ページ
サイドバーでのセッションの挙動でちょっと迷ったけど、
普通にCake側のpage_name/1で仕様を満たした。
0295nobodyさん
2011/08/27(土) 00:30:53.03ID:???無理やりなんとかするならJavaScriptで状況解析して全画面リロードかな。
うちもメニュー固定ならフレーム使うことあるけどな。
ページ遷移ないから操作楽だし。
そのウィンドウからシステムの外に出ない限りは何の問題もない。
0297296
2011/08/27(土) 14:23:23.85ID:???0298nobodyさん
2011/08/28(日) 02:02:37.91ID:???ログイン画面にjavascriptで左フレームの中身見て適宜リロードさせるとかそんな感じでおk
0299nobodyさん
2011/09/02(金) 13:07:38.22ID:???HTML的に良くないけど、みんなどうしてる?
サーチとかログインフォームなんかは、1ページ上に2カ所以上で表示させる必要があることがあると思うんだけど。
0300nobodyさん
2011/09/02(金) 14:08:53.98ID:???form1、form2とか
0301nobodyさん
2011/09/02(金) 14:51:41.25ID:???Postgresもちゃんと起動しているのに、
index.phpをブラウザ上で見るとDBに接続できていない、という黄色の帯が表示されます。
PostgreSQLはVer9です。
class DATABASE_CONFIG {
var $default = array(
'driver' => 'postgres',
'connect' => 'pg_connect',
'persistent' => false,
'host' => 'localhost',
'port' => '5432',
'login' => 'postgres',
'password' => 'パスワード'',
'database' => 'postgres',
'prefix' => '',
);
}
他には何が設定が必要なのでしょうか?よろしくお願いします。
0302nobodyさん
2011/09/02(金) 15:11:45.40ID:???0303nobodyさん
2011/09/02(金) 15:14:47.80ID:???Authでログイン処理をしていて、ログインできるユーザー管理部分を作ってるんだけど
会員情報モデルでパスワードの文字数をバリデーションしていると
暗号化された後のパスワードでバリデーションされてしまい、文字数制限にひっかかってしまいうまくいかない
あと会員情報を編集すると、暗号化されたパスワードをさらに暗号化してしまいパスワードが変わってしまう
これらを回避する定番的な方法ってどうやるの?
結構ぐぐったけど案外出てこない…
この辺が以前出ていた、Auth使い物にならないから使わないと言われる理由なのかな?
0304nobodyさん
2011/09/02(金) 15:41:53.93ID:???Authではまり中。
暗号化(ryはbeforefilterで後暗号化とか書いてあったな。
普通のユーザのAuthと、管理者のAuthと分けるにはゴリゴリ書くしかないのかorzz...
0305nobodyさん
2011/09/02(金) 15:43:46.07ID:???ttp://castleonthedesk.seesaa.net/article/118189342.html
0306nobodyさん
2011/09/02(金) 15:48:18.14ID:???AppControllerを継承したControllerでは、AppControllerで定義したusesとかcomponentsとか使えるんだけど
AppController->共通Controller->個別Controllerと継承したい時があって
それをやると、個別Controller内でAppControllerのusesやcomponentsが未定義になる。
これはこういう仕様で、やりたければ何か決まったやり方があるのでしょうか?
最近触ってるけど、Cakeって結構常識的にできてなくてびっくり。
0307nobodyさん
2011/09/02(金) 16:07:23.99ID:???認証分けようと思ってやってるが、未定義になって←イマココ
ttp://doruby.kbmj.com/sendriver_log/20101229/cakephp_
0308nobodyさん
2011/09/02(金) 17:31:35.83ID:???ここ情報ありました。
PHP5.2ってPostgreSQL連携ライブラリを読み込めないバグがあるみたいですね。
0309nobodyさん
2011/09/03(土) 00:30:45.79ID:???oresama_controller.phpにて、
class OresamaController extends AppController {
むにゃむにゃ
}
としてます。
んで、
http://example.com/oresama/
というディレクトリがある場合、処理がコントローラーに渡らずに
Forbiddenになってしまいます
どうしたらいいでしょう?
0311nobodyさん
2011/09/03(土) 07:29:24.81ID:???サンプルコードがないのでわからないのだが、
>Baseの$usesとBaseBarの$extra_usesをマージ
というのはどこでやればいいの?BaseBarのコンストラクタにarray_mergeとか書くの?
0312nobodyさん
2011/09/03(土) 13:49:15.94ID:???検索条件のフォームをGETで送るとpaginateがうまく働かないので
<?php $paginator->options(array('url' => $this->params['url'])); ?>
のようにしてパラメータを明示的にURLに付け足しているんだけど、
1ページ目は、パラメータが$this->params['url']に入っていて、
2ページ目には、$this->passedArgsに入っているという統一感のない実装になってしまっています。
?test1=123&test2=456
のようにアクセスした値を受け取る $this->params['url']と、
/test1:123/test2:456
のようにアクセスして値を受け取る $this->passedArgs
を変換するような関数って用意されてないのかな?
0313nobodyさん
2011/09/03(土) 15:10:07.48ID:???GETを使ってるフォームにまでご丁寧にトークン放り込んでくれちゃったんですが、
GETの場合はトークンいれないとかはできないんでしょうか?
0314nobodyさん
2011/09/03(土) 18:29:05.17ID:???0315nobodyさん
2011/09/03(土) 19:07:13.55ID:???0316nobodyさん
2011/09/03(土) 20:56:38.64ID:???0317nobodyさん
2011/09/03(土) 21:12:48.68ID:???1.2がいちばん盛り上がったみたいだよね。1.2で作ったほうが早いのかもw
CakePHP フォーラムはどうでしょうか?
結構、詳しい方がフォローしてくれそうな感じ
がするのですが・・・
ただ、私はこちらで親切に教えていただいた
おかげで1週間近く悩んでいた問題が解決
できました。
0319nobodyさん
2011/09/04(日) 14:05:32.89ID:???CakePHPからLithiumはすんなり入れるでしょうか?
もし入れるならドキュメントが多いCakePHPでまずは勉強しようと思うのですが、
全くの別物のようならいきなりLithiumから頑張ってみようと思います。
0320nobodyさん
2011/09/04(日) 14:49:40.45ID:???例えばショッピングモール作ると、
同じModelに対してエンドユーザー・店舗・システム管理者と、三種類のユーザーそれぞれに別の画面が必要でーみたいな。
今まで別アプリとして作ってきたんだけど、Modelとかが結構同じ構造なのでもっとDRYにできないかなぁ
0322nobodyさん
2011/09/04(日) 17:19:13.65ID:???買う以外で
0323nobodyさん
2011/09/05(月) 00:01:34.99ID:???あとは自分で書き写したら内容を完全に覚えられるからいいと思う。
0324nobodyさん
2011/09/05(月) 21:59:00.60ID:???SQL Error: 1064: You have an error in your SQL syntax; check the manual that corresponds to
とかエラーが出ていた
データベースとの接続はできているしなんだろうと思っていたんだが
関数がうまく呼び出せてないっぽい
get_classでModelを表示させようとしたら表示がAppModelとかなってたんだけど
同じような現象になった方いませんか?
開発環境では何の問題もなく動くしget_classでModel名がちゃんと表示されるしわからん
0325nobodyさん
2011/09/05(月) 23:31:10.53ID:???routeで
Router::connect('/oresama', array('controller' => 'oresamakun', 'action' => 'index'));
とやっても、やっぱりForbiddenになってしまいます。。。
0327nobodyさん
2011/09/06(火) 00:10:43.75ID:???俺も見当付かないんだけど、データベースサーバー側のエラーと思えるから、データベース名 + 1064で検索するとか、エラーナンバーから詳細を引ける方法を調べてみると何か分かるんでないかな?
(まさかとは思うが、1064ってのは1064文字目って意味じゃぁないだろうなぁ)
0329nobodyさん
2011/09/06(火) 09:50:34.60ID:???0330nobodyさん
2011/09/06(火) 17:32:20.80ID:???0331nobodyさん
2011/09/06(火) 21:30:36.15ID:???サーバーはロリポップでPHPのバージョンは5.3.5で開発環境と一緒なんだ
しかしそうか
PHPの設定の違いを疑ってみるべきだったな
ありがとう!
>>327
違うページではAn Internal Error Has Occurredってエラーが出るから
データベースサーバー側かもしくは設定ミスってるのかなぁ
設定ファイルは最初に完璧であることを確認できたし考えにくいんだよな…
いろいろ調べてもわからなくて…
なぜオブジェクトがAppModelに…って考えてしまう…
■ このスレッドは過去ログ倉庫に格納されています