【PHP】フレームワーク CakePHP 14ホール目【v2.1】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/05/01(火) 16:58:44.53ID:fVBzm1/ACakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう
※他フレームワークとの比較等はスレ違いです
テンプレは>>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 13ホール目【v2.0】
http://kohada.2ch.net/test/read.cgi/php/1320768310/
0102nobodyさん
2012/06/04(月) 16:16:23.03ID:npZV9BUE0104nobodyさん
2012/06/06(水) 09:28:58.59ID:KukcN70nRewriteBaseをいじくりまわして、
ググってありとあらゆるパターンを試してみたんだけど
どうやっても500エラーが出てできない・・・
0105nobodyさん
2012/06/07(木) 00:31:59.74ID:???500出てるってことはhtaccessの記述が間違っているっぽい
0106nobodyさん
2012/06/07(木) 01:11:37.96ID:???バージョンは2.1です。
cakeフォルダを作成してそこに配置したとします。
通常だとブラウザのアドレスバーにはhoge.xx.yy/cake/controller/actionと成るわけですが、
それをhoge.xx.yy/controller/actionと表示するようには出来ませんか?
(見た目だけで良くて、アドレスバーに入力してその通りに動作する必要はありません)
ネットでhtaccessというかRewriteのページをかなり見たのですが、見た限りは上で言うcontroller/action/*1/*2の順番というか、パラメータの記述方法を変えたりするような方法ばかりでした。
何かヒントになるサイトとかでも良いのでご指導頂けませんでしょうか?
0107nobodyさん
2012/06/07(木) 01:41:54.69ID:???あるカテゴリキーワード(可変数。10個前後)が格納されたDBテーブルが
あって、さらに別のテーブルにはカテゴリキーワードごとのトッピックスが
1000個程度登録されています。
トップページで各カテゴリキーワード毎にトピックを5件だけ表示させたいの
ですが、やり方がわかりません。
カテゴリキーワードを取ってきて表示されるだけなら、findAllで取ってきて
VIEW内でforeachでまわす事で実現できました。
foreachのループ内で、現在着目中のカテゴリキーワードで詳細テーブルから
5件だけ取ってくる方法が分かりません。
トピックを全レコード事前に取得しておいて、viewの中で無理やりキーワー
ドが一致するものを5件だけ表示させる方法は思いつきますが、もっとスマー
トな方法はありませんでしょうか?
0108nobodyさん
2012/06/07(木) 02:31:59.60ID:???htaccessで書き換えられないこともないだろうけど推奨されてないだろうし不具合の原因だからやめた方がいいよ
app/webrootをウェブルートに置けない理由はあるの?
>>107
アソシエーションを学ぶんだ
一発でカテゴリキーワードごとにトピックスを5件とってこれる
0109nobodyさん
2012/06/07(木) 04:44:57.83ID:???判断できるようになってから質問しろよ
0110104
2012/06/07(木) 07:36:24.96ID:T3CmHb0tindex.phpの設定ってどのindex.phpでしょう??
ちなみにどのように設定すると良いのが教えていただけると幸いです
0111nobodyさん
2012/06/07(木) 11:41:22.43ID:???返答ありがとうございます。
単純に今現在すでにHPがあり、機能追加をする形でcakeを使用するのですが、
現状appフォルダがすでにあるのでと言う理由だけです。
既存フォルダ名の変更が不可の為、フォルダを作って・・と言うのを考えてたのです。
既存フォルダ名の変更不可というのはURL的に見た目がappじゃないとまずいということでして、サーバ上はapp2とかにしてもURLの見た目がappになればOKなんです。
どうすればよいかわからなかったので先ほどの質問として書いたと言う訳なんです。
0112nobodyさん
2012/06/07(木) 12:11:49.60ID:???ならDB側にView作ってしまいたくなるんだけど、そういう人はいないの?
まあ、実装箇所が複数に分かれるデメリットもあるのでビュー禁止ってとこも
結構あるけど。
0113nobodyさん
2012/06/07(木) 14:50:42.40ID:???いいんでしょうか?
0114nobodyさん
2012/06/07(木) 21:27:01.49ID:???そもそもappをドキュメントルートに置いちゃダメ。
webrootをドキュメントルートにおいて
それ以外はwebroot以外に配置する。
0115nobodyさん
2012/06/07(木) 21:28:11.55ID:???>>111
そもそもappをドキュメントルートに置いちゃダメ。
webrootをドキュメントルートにおいて
それ以外はドキュメントルートの外に配置する。
0116nobodyさん
2012/06/08(金) 02:27:11.80ID:RAatNy5aapp/webroot/index.php
もちろんここがウェブルートになるように設置しないとダメだよ
>>111
まず>>115の言うようにapp/webrootをドキュメントルートに置かないとダメ
サーバーの設定でドキュメントルートが変更できない場合の対策は、xrea、コアサーバー、さくらあたりでのノウハウがいっぱいあるから
それを調べて実行するとよい
>>112
規約に沿うのがフレームワークだからDBはモデルで扱うしか考えたことがないなあ
>>113
俺はなんか実装めんどくさそうならHTMLで書いちゃうわ
0117104
2012/06/08(金) 09:16:24.94ID:u8Vc96TEありがとうございます。
ウェブルート=ドキュメントルートってことですか?
0119nobodyさん
2012/06/08(金) 13:58:30.27ID:???1ずつ全部変えるのは無理だけど
itemOptionsで、even,oddの指定を入れると、奇数行、偶数行のクラスは指定できる
続きはソースで…
0120111
2012/06/08(金) 16:35:33.96ID:???私のフォルダ配置に対する理解が足りなかった訳ですね・・
レス頂いてから試してみました。
wwwの下にフォルダを作成してそこにappやlibなどのファイルを配置。
でwebrootフォルダの中身をwwwに置いてindex.phpを触れば(ROOTとかの位置を指定すれば)ちゃんとcakeとして動作してくれたのは確認できました。
home
|--ユーザアカウント
|
|--cake
| |--app
| |--lib
| |--・・・その他
|
|--www
|--css
|--img
|--js
|--index.php
のような感じで動作したのは確認できました。
でもう一つ疑問がわいてきましたが、先の話で既存のHPがある場合、index.phpとindex.htmlがかぶることになります。
今回もそのパターンで、ネットでさくらにインストールした場合を探してみるとwwwよりhome側に置くのはよく出てるのですが、
どれもwwwに一つフォルダを作成してそこに元のwebroot内のデータを置いてる感じでした。
動かしてみましたがindex.html index.phpの優先になってる方が起動するだけでした(当たり前ですが・・)
今回のようにcakeのindex.phpと元のindex.htmlがあるような場合はどのようなやり方がありますか?
0121111
2012/06/08(金) 16:36:54.35ID:???あああ、すみません。
書き込んだらスペースが削除されちゃいました。
cssから下はすべてwww内とのつもりです。
宜しくお願いします。
0122nobodyさん
2012/06/09(土) 00:03:03.20ID:7iLO1txZいまwwwになってるところをwww/cakeとかにすればいいんじゃないの?
htaccessの修正も必要になるかもしれないけど
俺なら既存のファイルが全部スタティックならcakeに統合しちゃうけどな
0123nobodyさん
2012/06/09(土) 16:53:54.98ID:u4onJvJp$this->Http->
補完する方法ないのですか?
0124nobodyさん
2012/06/13(水) 23:54:08.72ID:???Cakeで作ってるんだろ?どうやってアクセスこなしてるんだろ・・・
キャッシュ使えばパフォーマンスは気にならないのかな
0125nobodyさん
2012/06/14(木) 00:07:28.83ID:???記事のページとかPV稼いでいる部分は生PHPで書いて、それ以外のあんまりPVないところはCakePHPで作ってるって話をしていた気がする
30万UU/monthくらいのサイト持ってるけど、ビューキャッシュだけで共用レンタルサーバーでも余裕でさばけるから、
パフォーマンス追求しなければキャッシュだけで十分いけると思う
後はスケーリングの問題だな
0127nobodyさん
2012/06/14(木) 02:08:15.49ID:nFrC9cht別にそれは記事ページだけならReWriteして1行で変更できるでしょ
0128nobodyさん
2012/06/14(木) 02:23:56.37ID:???0129nobodyさん
2012/06/14(木) 12:33:43.22ID:???ユーザ仮登録
↓
メール
↓
メールに記載されたURLクリック
↓
本登録
という流れの中で、本登録ページが正しく表示されたらログイン後状態に
したいです。controllersの内部で認証後状態にするにはどうすればいい
でしょうか?
0130nobodyさん
2012/06/14(木) 12:52:02.54ID:???0134nobodyさん
2012/06/14(木) 22:42:24.08ID:???暇を取れない会社のことを指しているようだ。僕自身、「違法な只働きの多い会社はどこですか?」なんて質問はよく受ける。だ
が、はっきりいってみんな甘い。甘すぎる。そんなのブラックでもなんでもなくて、日本企業なら当たり前の話なのだ。「フラン
スやドイツより年間300時間程度は長時間労働で、有給休暇も消費せず、辞令一枚で全国転勤」というのは、日本が世界に誇るカ
ルチャーである。日本は今でも終身雇用が建前の国である。いつ潰れるかわからないような中小の下請け企業ならともかく、普通
の会社では解雇なんて不祥事でも起こさない限りは行われない。もちろん、こういう楽ちんなシステムを維持するためには、それ
なりの工夫が必要だ。まず、一定の残業は大前提だ。新規採用の代わりに残業でカバーしておけば、不況時に残業カットで人件費
を抑えられる。有給休暇が取れないのも理由は同じだ。全国転勤なんて制度があるのは日本だけだが、これも終身雇用を維持する
ためのものだ。つまり、人事部がハローワークの代わりに社内の空きポストを見つけ、再就職の斡旋をしているようなものなのだ。
であるため、大手優良企業ほど、残業も転勤も有給取得制限も確実に存在するし、雰囲気的に文句は言えない。たまに、日本企業
の労組が「組合員の長時間残業や転勤を黙認している」といって非難する人もいるが、ちょっと違う。すべては終身雇用システム
を守るための、やむを得ない副産物なのだ。たまに「勇気を持って拒否できないんですか?」という質問も受けるけど、そんなこ
と主張して村八分に耐えるだけの強靭な精神力があるなら、最初から年俸制の企業に行って頑張ることをおススメする。ところで、
真のブラック企業とは何だろうか。それは上記のロジックからすれば明らかだろう。最初から終身雇用を守るつもりも、成果に応
じた年俸を上乗せする気もなく、長時間残業が当たり前で有給も取れない会社のことだ。新卒の時点でそういう会社に遭遇するこ
とは「滅多に」ないし、入ったら入ったで何年か修行して転職すればよいだけの話なので、入る前からあれこれ心配する必要は無
い。最悪なのは右往左往した挙句、内定無しで卒業してしまうことだというのはおぼえておくといい。
0136nobodyさん
2012/06/18(月) 09:29:52.49ID:???見るとpostデータにmodel名が含まれてしまう事があるのですが、postデータ
にmodel名を含ませないように出来ないのでしょうか?
<input name="data[test]" type="text" value="" id="test" />
こうなる場合と
<input name="data[models][test]" type="text" value="" id="test" />
こうなる場合があります
0137nobodyさん
2012/06/18(月) 09:55:08.10ID:???nullじゃなくてfalseにすれば期待した動作になりました
0138nobodyさん
2012/06/20(水) 20:53:26.92ID:???の俺が言う
Cakephpはやめとけ
0139nobodyさん
2012/06/20(水) 21:44:38.57ID:???0141nobodyさん
2012/06/20(水) 22:13:18.78ID:???Cakeは国内の知名度だけはいい線いってるよ
0142nobodyさん
2012/06/21(木) 00:32:08.42ID:???いくらFUELPHPが凄くても一人で細々とやっててもねぇ
あ、英語できるならいいけど
0143nobodyさん
2012/06/21(木) 01:35:20.48ID:???2.2ももうすぐ出そうだし、最近のCakeは順調…すぎてついていけなくなってるけどw
0145nobodyさん
2012/06/21(木) 02:16:55.75ID:???レコードのとあるフィールドの値で取得結果を変えるなら
select
case field1 when 0 then 'ぬるぽ' else field2 end
from tblA;
こんな感じでSQLの記述だけで完結出来るんですが、外から与えた変数で
同じような事を簡単に出来ないでしょうか?
取得結果は最終的にはviewで表示するのですが、
view内でforeachで回す際にループごとに条件判定をして…という方法は避
けたいです(viewにあまりゴテゴテとロジックを書きたくないので)
0146nobodyさん
2012/06/21(木) 08:42:57.93ID:???mysqlならIFって関数があるから、fieldsかモデルの$virtualFieldsで、
"IF(Model.field1 = 0 , 'ぬるぽ' , Model.field2)"
って書いてる。条件が複数あるなら入れ子でもいける。
0148nobodyさん
2012/06/21(木) 18:17:56.38ID:bhjX0YXlコードイグナイタ
見通しが良いから
0149148
2012/06/21(木) 18:18:47.19ID:bhjX0YXl0150nobodyさん
2012/06/21(木) 19:08:33.82ID:???0151nobodyさん
2012/06/21(木) 19:49:36.93ID:0C9bmUAd廃止されるで
0152nobodyさん
2012/06/21(木) 20:13:49.65ID:???0153nobodyさん
2012/06/21(木) 20:28:25.81ID:???0154nobodyさん
2012/06/21(木) 20:54:48.63ID:???Controller->set()は別物
0155nobodyさん
2012/06/21(木) 23:51:44.61ID:???なるほどHashクラスに置き換わるのか
0156nobodyさん
2012/06/22(金) 02:40:29.62ID:???0157nobodyさん
2012/06/22(金) 07:52:03.33ID:???・速い
・小規模、大規模にも対応できる
・CIより高機能、CakePHPより簡潔
・その他あらゆる点、全体の思想やARなどなどが洗練されてる
0158nobodyさん
2012/06/22(金) 10:33:48.17ID:???・設置に関する情報が少ない
・既存プラグインが少ない
0159nobodyさん
2012/06/22(金) 11:25:22.29ID:???function index($id){
$this->_idcheck($id);
}
function _idcheck($id){
if ($id != 1) {
$this->layout = 'error';
$this->render('/errors/error');
return false;
}
}
こんな感じで$idが指定と違うとエラーページを表示させたいのですが、
上の書き方だと2回renderされます。(indexのビューもrenderされます)
$this->render('/errors/error');の次行に$this->_stop();をしたら
ページ全体が表示されないし、どうやって特定のエラーページのみ
表示したら良いか分かりません。ご存じの方はアドバイスお願いします。
0160nobodyさん
2012/06/22(金) 11:39:12.45ID:???もしくはautoRenderで検索
0161159
2012/06/22(金) 11:52:47.08ID:???159のコードで、
$this->render('/errors/error');
$this->autoRender = false;
return ;
としてもindexのビューは表示されます。
出来ればidcheckのerrorビューで止めたいのですが・・・
0162nobodyさん
2012/06/22(金) 12:26:35.74ID:???viewが2個連なってでてるの?
そんなことあったっけ?
解決しないようなら後で試してみるけど、
↓この順番にしたらどう?
$this->autoRender = false;
$this->render('/errors/error');
あとは、
idcheck()ではbooleanを返すようにして、
falseが帰ればそのindex()内でreturnしてみるとか?
つまりidcheckでreturnしてもidcheckを抜けるだけだから全く意味ない。
0163159
2012/06/22(金) 13:07:10.41ID:???その方法も一緒でした。
おっしゃるとおり、idcheckでreturnしても意味無いのですが、
index内で分岐をさせる場合
if ($this->_idcheck($id)) {
trueの場合の処理
} else {
falseの場合の処理(エラページ出力)
}
としていかなければならず、idcheckが必要な全アクションに
これを入れるのはどうかと思い、idcheck内で解決出来ないかと探していました。
renderで出力ではなく、cakeErrorで404を出力すれば
ページエラーとして表示され、その後の処理も止まるんですけどね・・。
0164nobodyさん
2012/06/22(金) 14:00:47.36ID:???$this->_idcheck($id);
こうしろ
if(!$this->_idcheck($id)) return false;
0165nobodyさん
2012/06/22(金) 14:17:55.24ID:???if (!$this->_idcheck($id)) return $this->render('/errors/error');
こーすりゃいいのかな
0166159
2012/06/22(金) 14:19:08.34ID:???>>164の方法を使用したいと思います。
みなさん、アドバイスありがとうございました。
0167nobodyさん
2012/06/22(金) 16:33:34.16ID:???0168nobodyさん
2012/06/23(土) 03:49:34.45ID:???みたいなのが書かれた時が、俺の乗り換え時と決めている
0169nobodyさん
2012/06/23(土) 10:37:00.10ID:???0170nobodyさん
2012/06/23(土) 15:20:05.50ID:???0171nobodyさん
2012/06/23(土) 15:29:01.95ID:???railsに行くのが一番中途半端じゃないんだろうな
0172nobodyさん
2012/06/23(土) 16:19:14.16ID:???0173nobodyさん
2012/06/23(土) 16:33:09.34ID:???これがweb frameworkの完成形なんだって
まぁruby覚えるの面倒くさいから常用はしないけど
0174nobodyさん
2012/06/23(土) 17:33:16.95ID:???言語以外で
0175nobodyさん
2012/06/23(土) 18:54:12.89ID:???分からないことがあったら
リソースが沢山転がってるcakephpのほうがいいなぁと思う
railsのスレみてみなよ
過疎ってるし荒んでるよ
cakephpだと必要なプラグインとかをvendorフォルダにぶっこんで
ftpであげるだけで大抵うごくけど
railsはサーバー環境を
1から構築していく必要がある
これが大変
敷居が高い
しかも、プラグイン同士の依存関係がかなり厄介だから
コーディング始める云々の前に
つまづいて辞める人がほとんど
cakephpに戻ろうかなと思う
0176nobodyさん
2012/06/23(土) 18:56:58.00ID:???負荷がかかりそうなアプリ開発している人いる?
素のPHPでやった方がパフォーマンス出ると思うんだが、
Cakeの作り方に慣れてるから困る
0177nobodyさん
2012/06/23(土) 19:07:09.76ID:???少し時間かけてYii習得したほうが後々その時間は回収できるよ
今も前のシステムの関係上CakePHP触らないといけないんだけど、
開発スピードが段違い
0178nobodyさん
2012/06/23(土) 19:54:38.82ID:???とある商用サイト作って運用してるけど、ユーザ登録でユーザに仮IDメール出
してるし、同時一斉配信つーならメルマガも運用してる。
今のとこパフォーマンスが問題になった事は無い。
0179nobodyさん
2012/06/23(土) 20:03:33.23ID:???幸い、問題が起きるほどユーザーが増えたことがない
負荷とか最初から気にするだけ無駄なんだなと気付いた
負荷対策は万が一サービスが当たってから考えるのが、結局効率が良い
0180nobodyさん
2012/06/23(土) 20:33:40.14ID:???0181nobodyさん
2012/06/23(土) 21:40:18.93ID:???0182nobodyさん
2012/06/23(土) 23:41:07.25ID:9D2aOBXb0183nobodyさん
2012/06/24(日) 00:05:46.88ID:???0184nobodyさん
2012/06/24(日) 09:51:40.07ID:???さくらインターネットでサブディレクトリにCakeディレクトリを入れて運用したいんだけどできない
/home/username/www/cakephp
www/がドキュメントルート
その下にcakephpをつっこんでそのまま運用したい
URLも/cakephpにアクセスする形でいいんだけど
500エラーが出るんで、.htaccessあたりの設定だろうと思うんだけど、
いじりまくっても回避できなかった
アドバイスください!
0185nobodyさん
2012/06/24(日) 12:41:22.32ID:???メール配信ってshell機能使って配信してるんだよね?
自分はそうしているけど、特にパフォーマンスの違いはないな。
>>179
当たってから変えるってのもどうかな?とは思うからね。
最初から「ユーザ数100万人!」とか目標にするのもどうかと思うが、
せめて1万人は想定する必要があると思う。
で、1万人の一斉配信って負荷やら配信ログやらの問題が出てくるから、
設計も考えなきゃいけないんだよね。
ま、どちらかというとCakeよりもサーバ側の問題だけど。
0186nobodyさん
2012/06/24(日) 13:39:09.72ID:???0187nobodyさん
2012/06/24(日) 15:52:42.05ID:???CakePHPに下記のプラグインありますか?
・会員登録、ログイン認証
・画像アップロード
・ページネーション
・キャプチャ
・会員同士のプライベートメッセージ
0188nobodyさん
2012/06/24(日) 16:14:03.48ID:???0194nobodyさん
2012/06/24(日) 17:47:28.20ID:???>・会員登録、ログイン認証
登録の機能は自分で作りこんで下さい。プラグイン不要です。
ログイン認証はAuthコンポーネントがあります。
>・画像アップロード
CakePHPの標準機能で作りこんで下さい
>・ページネーション
CakePHPの標準機能でよきに計らってくれます。プラグイン不要。
>・キャプチャ
???
>・会員同士のプライベートメッセージ
自分で作りこんで下さい。
0195nobodyさん
2012/06/24(日) 17:50:22.25ID:???0196nobodyさん
2012/06/24(日) 18:17:33.67ID:???0197nobodyさん
2012/06/24(日) 18:37:52.32ID:???いくつかあるテメーでさがせかす
0198nobodyさん
2012/06/24(日) 19:56:11.23ID:???0199nobodyさん
2012/06/24(日) 20:36:53.49ID:???■ このスレッドは過去ログ倉庫に格納されています