【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/
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に…って考えてしまう…
0332nobodyさん
2011/09/07(水) 00:16:46.95ID:???訳わからん挙動に悩んだ際のうっかり系チェックリストを当てずっぽうで書いてみる。
どっかで文字コードが違うファイルが混入してるとかは?
あるいはBOMが入り込んでたりとか。
ver.1.xならば、ファイル名に大文字小文字が入り交じっていないか。
そのエラーが出るページと出ないページがあるのなら、
両者でどこが違うのかを切り分けてみてはどうだろう。
0333nobodyさん
2011/09/07(水) 08:22:43.86ID:???>ver.1.xならば、ファイル名に大文字小文字が入り交じっていないか。
これってやばいの?
俺modelのファイル名は大文字小文字使ってるよ
0334nobodyさん
2011/09/07(水) 11:19:19.67ID:???0335nobodyさん
2011/09/07(水) 13:25:42.21ID:???んや、ごめん、大文字小文字の件はCakeとは関係なかたかもしれん。
大文字小文字のポリシーが一貫していない状態でも、
windows開発環境だと動いてしまう。
Unix/Linux運用サーバーに投入した途端に呼び出し廻りで不整合が出だす、
ていうのがあるのかなとオモタ。
0336324
2011/09/07(水) 22:55:24.13ID:???なるほど
xamppで動かしていたんでたしかにありそうだ
ちょっと見てみる
ありがとう
テーブル使ってなくてもModelが使えないって変だよな
なぜ普通のModelをインスタンス化したものがAppModelになるのか…
多分じっくり考えないと無理そうなんで土日に頑張ってみます
0338nobodyさん
2011/09/09(金) 10:59:25.33ID:???0339nobodyさん
2011/09/09(金) 12:25:33.79ID:???0340nobodyさん
2011/09/09(金) 12:33:22.42ID:???0341nobodyさん
2011/09/09(金) 18:09:28.90ID:???0342nobodyさん
2011/09/09(金) 18:23:29.14ID:???0343nobodyさん
2011/09/09(金) 21:48:10.99ID:???0344nobodyさん
2011/09/09(金) 22:08:22.04ID:???自動テストって、Jenkinsみたいな事してみたいんかい?
昔の名前のHudsonでなら、PHPの自動テスト化の記事があった気がする。
>>343
CakeBookでもはっきりとココ、っていう事書いてないんだよね。
bootstrapあたりが無難じゃないかな。
機能分けして大きくなる予定ならvendor配下に入れておいて、app_controllerでimportしておくとか。
0345296
2011/09/09(金) 22:13:08.07ID:???http://book.cakephp.org/ja/view/899/
0346nobodyさん
2011/09/09(金) 23:20:34.77ID:???0347nobodyさん
2011/09/10(土) 23:05:30.23ID:???アクセスできないようにしたいんだけど、どうすればできますか
0348nobodyさん
2011/09/11(日) 00:01:16.07ID:???0352nobodyさん
2011/09/12(月) 00:23:37.99ID:???■ このスレッドは過去ログ倉庫に格納されています