【PHP】フレームワーク CakePHP 16ホール目【v2.4】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2013/09/09(月) 01:56:10.19ID:m9OPw/HTCakePHPから派生したLithium(li3)も専スレできるまではここでどうぞ
質問するときはCakePHPのバージョンを書きましょう
※他フレームワークとの比較等はスレ違いです
■本家
http://www.cakephp.org/
APIドキュメント
http://api.cakephp.org/
github - cakephp
http://github.com/cakephp
the Bakery
http://bakery.cakephp.org/
Issue
http://cakephp.lighthouseapp.com/dashboard
CheatSheet[1.2] (PDF)
http://cakephp.org/files/Resources/CakePHP-1.2-Cheatsheet.pdf
■日本語公式
http://cakephp.jp/
フォーラム
http://cakephp.jp/modules/newbb/
cookbook(マニュアル)
[2.x] http://book.cakephp.org/2.0/ja/index.html
[1.3] http://book.cakephp.org/ja
http://kohada.2ch.net/test/read.cgi/php/1354593996/l50
0153nobodyさん
2013/09/23(月) 10:43:47.86ID:???俺もそう思っていた
0154nobodyさん
2013/09/23(月) 13:37:52.78ID:???何を指してるの?
0155nobodyさん
2013/09/23(月) 13:43:42.09ID:???0156nobodyさん
2013/09/23(月) 13:49:32.13ID:???仕方なくmediumで使うと安定している
0159nobodyさん
2013/09/23(月) 17:10:55.17ID:???0160nobodyさん
2013/09/24(火) 10:22:15.50ID:PewVrVzx0161nobodyさん
2013/09/24(火) 10:48:16.58ID:???0162nobodyさん
2013/09/24(火) 11:01:06.76ID:???リフレクションを用いた初期設定値の自動マージ、
そのあたりの隠蔽された処理の把握に苦戦する。
とは言え、これはCakeに限ったことじゃないが。
0163nobodyさん
2013/09/24(火) 12:09:00.22ID:???オレもいまCake使ってて
モデルが単数形でコントローラーが複数形だけど
それって他のフレームワークも同じ?
フォームヘルパーとか$this->request->data=$this->Post->read()の値をフォームで使えるようにするらしいけど
$this->set('xxx',$this->request->data);じゃなくて
そのまま使えるけどそれも隠蔽されてるっていうの?
0164nobodyさん
2013/09/24(火) 13:18:17.37ID:???一人のキチガイが根拠も示さず必死に否定してるけど
開発速度向上はフレームワークのメリットのひとつだよ
0165nobodyさん
2013/09/24(火) 13:56:07.30ID:???未作成のモデルをCakePHPみたいに暗黙的に呼び出すというのは俺は知らない。
SynfonyにしろCodeIgniterにしろテーブルと関連付けた
アクティブレコードを明示する必要があって、
そこで単数形にするかどうかは好きにすればって感じだったと思う。
> フォームヘルパーとか$this->request->data=$this->Post->read()の値をフォームで使えるようにする
え、そうなん?初耳だわ。
0166nobodyさん
2013/09/24(火) 14:28:03.92ID:???>ほとんどの場合、このような形式を意識することはありません。
>CakePHPの FormHelper やモデルのfindメソッドは全てこの形式に従っています。
>FormHelperを使っていれば、 $this->request->data で簡単にこの形式のデータにアクセスできるようになっています。
$this->setに代入じゃなくて
$this->request->dataに代入で使える
変なの
0167nobodyさん
2013/09/24(火) 14:53:11.90ID:2aQmFqKG0168nobodyさん
2013/09/24(火) 16:31:42.77ID:???教えてください
0170nobodyさん
2013/09/24(火) 17:46:21.20ID:???0171nobodyさん
2013/09/24(火) 18:01:42.34ID:???他に何のメリットがあるの?
開発速度以外はデメリットだらけだろ
オープンソースのFWはオレオレ作る時間がない時に仕方なく使うもの
0172nobodyさん
2013/09/24(火) 18:10:35.82ID:???品質の向上とかあるだろggrks。
cakeが最良とは言わんが、今の時勢でフレームワークを使うことを考慮しないのはありえん。
0174nobodyさん
2013/09/24(火) 18:24:26.00ID:???・利用者が多いので、プラグイン作成の手間が省ける
・大規模サイトでも利用されてる安心感
・命名規則が統一してるから、名前付けで悩まなくてもいい
・不特定多数で開発する時、意思の疎通が図りやすい
・コピペで作っても不具合が起きづらい
・公式が現在も開発を続けている安心感
まだ続けてるか?
0177nobodyさん
2013/09/24(火) 18:34:34.37ID:???やはり不毛なフレームワーク論争かw
0178nobodyさん
2013/09/24(火) 18:38:55.69ID:???0180nobodyさん
2013/09/24(火) 21:21:03.36ID:???cakeで凝ったつくりのサイトとかあったら教えてもらえませんか?
0182nobodyさん
2013/09/24(火) 23:14:27.72ID:???そもそもあんたが言っている「凝った作りのサイト」が
どういったものなのかわからないので答えようがない。
cake以外で作っていてもいいから、
まず「凝った作りのサイト」の例をいくつか上げてくれ。
サイトいうだけじゃなく凝ってる部分はどこかも言うように。
0183nobodyさん
2013/09/25(水) 00:17:25.95ID:???0184nobodyさん
2013/09/25(水) 00:26:04.71ID:???0185nobodyさん
2013/09/25(水) 01:34:52.18ID:QAhhx/Ja0187nobodyさん
2013/09/25(水) 13:03:59.31ID:???Fatal error: Class 'PagesController' not found
と出るんだけど、なにこれテスト通らないのにリリースされてんの?
0189nobodyさん
2013/09/25(水) 21:12:17.21ID:???PHPだから遅いのは確かだが、その中でも早いフレームワークは出てきてる。
>>180
「凝った作りのサイト」ってよくわからんが技術が無いだけじゃないの?
>>184
SEO対策だね。初歩しか知らんからそれ以上はなにも言えないw
0190nobodyさん
2013/09/25(水) 23:37:22.39ID:???0191nobodyさん
2013/09/26(木) 00:26:56.50ID:???SEO対策は集客のためにするんじゃないぞ。
SEOは単に検索エンジンにとって適切な作りにするだけだ。
それによって、検索した時の順位が上がることがあるが、
集客できるかどうかはコンテンツ次第。
0192nobodyさん
2013/09/26(木) 21:43:37.36ID:???やり方がございましたらご教示お願いします
0193nobodyさん
2013/09/26(木) 22:53:10.81ID:???HtmlHelper::link() メソッドでラップするなり何なりして下さいませ。
0194nobodyさん
2013/09/26(木) 23:27:13.45ID:???プログラムに処理させるのは簡単なループと条件判定とURLぐらいにして
普通にタグを書くべきだという結論にいたったけどね。
0195nobodyさん
2013/09/27(金) 02:25:34.52ID:???0196nobodyさん
2013/09/27(金) 11:37:18.57ID:???やっぱりそうなりますか
ありがとうございます
>>194
現在ページのけつにスラッシュありかなしかで相対パスが変わってしまうのを無視できるのでヘルパー使ってます
絶対パスだったら生でいいと思います
0197nobodyさん
2013/09/27(金) 13:21:36.12ID:???PHPでバリデーションする場合ってどうやってますか?
cakephpみたいにvalidateのmessage=>'エラー'とかみたいなのがあればいいのですが
ライブラリをぐぐっても多すぎて困ってます
PHP長年やってる人はどのようにしてるのでしょうか?
いちいちif分で2ページにわたり書いてました
フレームワークを使わないでPHPでやる方法の上級者の意見を参考にしたいです教えてください
使ってるライブラリ名とかでもいいです
0198nobodyさん
2013/09/27(金) 16:33:01.11ID:???0199nobodyさん
2013/09/27(金) 17:16:00.06ID:???いちいち二ページ書くのがいやだからフレームワークを使う
フレームワークを使うのが嫌なら二ページ書くしかないだろ
0200nobodyさん
2013/09/27(金) 17:54:19.34ID:???ひょっとしてノートにでも書いてるの?
0201nobodyさん
2013/09/27(金) 18:11:54.74ID:???cakephpにはvalidateのmessage=>'エラー'とかみたいなのがあるのでそれを使います。
0202nobodyさん
2013/09/27(金) 20:46:51.61ID:???特定のユーザーだけ、特定のページのみ閲覧可能にする方法はございますでしょうか
ご教示お願いいたします
0203nobodyさん
2013/09/27(金) 23:51:29.97ID:???そうでなければエラーページ表示しろ
0204nobodyさん
2013/09/28(土) 00:10:22.06ID:???ACO, ARO を使ったアクセス制御を勉強して下さい。
CakePHPの組み込みで3種類の設定が用意されています。
データベースを用いた方法が最も柔軟で高機能ですが、
管理が複雑になるので始めはiniファイルかphpファイルを用いたやり方がオススメです。
設定ファイルは
app/Config/acl.ini.php
app/Config/acl.php
のいずれかをカスタマイズして用います。
チュートリアルには残念ながらデータベースを用いる方法しか載っていませんが、
ググればある程度日本語の資料も出てくると思います。
0205nobodyさん
2013/09/28(土) 01:32:35.29ID:???cakebookが本当にひどいな。見ない方がいい。普段はcakebookの出来には寛大だが、こればかりは無理!
0207nobodyさん
2013/09/28(土) 02:24:59.99ID:???フレームワークってあくまでも標準を提供するだけであって、
規約でさえも単なるバリエーションの一形態として捉えたんで良いのではないかと。
規約に縛られ過ぎも良くないし、規約を無視し過ぎも良くない。
中庸が良いと思う。
0208nobodyさん
2013/09/28(土) 07:50:01.51ID:???どうもです
たしかにそれがシンプルですね
>>204
ACO,AROですね
勉強してみます
おすすめの方法の方向でやってみたいと思います
ありがとうございました
0209nobodyさん
2013/09/28(土) 10:59:00.81ID:???aco,aroっていまいち使いどころがわからない。
例えばあるページの一部のリンクの表示をユーザーによってオンオフする場合、
aco,aroを使い、かつ、ボタンの表示制御のコードも書くよね。
なんか楽になってない気がするんだよね。
0210nobodyさん
2013/09/28(土) 12:27:13.28ID:???ACO, AROしらんけど、ユーザーによってオンオフするという機能の
作り方にある種の壁がある。
・壁を乗り越えられない人
if ($user == 'admin') { 管理画面表示 }
こんなコードを書く
・壁を乗り越えた人
if ( 権限があるか?('管理画面', $user) ) { 管理画面表示 }
こんなコードを書く
前者はユーザーが増えた時どうするの?
新たにグループ作りたくなったらどうするの?
adminだけど特定の場合(無料ユーザー等)には
管理画面の一部を消したくなったらどうするの?
などなど拡張性が低い。(全体的にメンテナンスが必要になるしコードも見づらくなる)
後者の書き方をしておけば、引数のユーザーから
いろんな条件を元に表示する権限を決めるだけだから拡張性が高い。
ACO, AROは、後者の壁を乗り越えた人だけが理解できる機能だと思う。
0211nobodyさん
2013/09/28(土) 13:52:09.15ID:???adminだけど特定のユーザーに管理画面解放する使い方って?
俺の認識では、管理画面とユーザー用管理画面は
分けるべきだと思うが。共通化するなんて怖い
0212nobodyさん
2013/09/28(土) 14:23:58.43ID:???ACO,AROの最大のメリット。
だと思う。
0213nobodyさん
2013/09/28(土) 14:56:21.69ID:mm0OqWTD0214nobodyさん
2013/09/28(土) 15:13:51.00ID:???ビューは非プログラマに書かせるから、ctp自体使わずHTMLに近いテンプレートシステム使ってます
0215nobodyさん
2013/09/28(土) 18:23:01.86ID:???説明の仕方が悪かったね。
adminでもGoogle Appのように
無料契約やビジネス契約によって機能が制限されることはある。
そういう話だったが、普通に田中さん(マネージャー)とか
そういう例えにしておけばよかったね。
0216nobodyさん
2013/09/28(土) 19:02:36.41ID:???0217nobodyさん
2013/09/28(土) 20:16:14.74ID:???ARO - アクセスリクエストオブジェクト(Access Request Object) - ある物を取り扱う「主体」
0219nobodyさん
2013/09/28(土) 22:27:35.62ID:???他人のdiaryが見られないように制御をするとしたら、ACO&AROの仕組みでは対応できなくない?
リクエストを受けたときに、そのユーザーが対象のactionを実行できるかできないかの制御しかできないんでしょ?
0220nobodyさん
2013/09/28(土) 23:57:31.97ID:???検索時邪魔でしょうがない、確実に今開発してる人の生産性を少しずつ下げてる
0221nobodyさん
2013/09/29(日) 01:03:09.68ID:???デフォルトというか、Cakeの組み込みはそうです。
でも拡張すれば出来なくはない。
昔やったことがある。
ただ、管理が分けわからなくなって嫌になったんで、そのやり方は封印して
結局PHPの設定ファイルに書き込む方法に落ち着いた。
まぁ、俺が下手なのは認めるとして、逆に言うと、下手な人間にも使えるような
うまい仕組みとはいえないと思う。
0222nobodyさん
2013/09/29(日) 01:12:36.30ID:???だから技術職というものがあり、
技術があることで金を稼いでいるんだ。
0224nobodyさん
2013/09/29(日) 01:58:37.63ID:???0225nobodyさん
2013/09/29(日) 02:04:25.72ID:???2で仕様変え過ぎ
0226nobodyさん
2013/09/29(日) 13:11:03.72ID:???0227nobodyさん
2013/09/29(日) 13:37:17.57ID:???0228nobodyさん
2013/09/29(日) 13:43:46.71ID:???0229nobodyさん
2013/09/29(日) 13:48:05.32ID:???0230nobodyさん
2013/09/29(日) 13:52:02.75ID:???&tbs=qdr:yみたいに
0232nobodyさん
2013/09/30(月) 14:07:01.24ID:???0233nobodyさん
2013/09/30(月) 14:08:21.98ID:???0234nobodyさん
2013/09/30(月) 17:13:49.37ID:???サードパーティー製ならVendors
http://book.cakephp.org/2.0/en/getting-started/cakephp-folder-structure.html
0235nobodyさん
2013/09/30(月) 21:53:03.23ID:YNM1OLM4送信処理はできてもヘッダーにtoがないのですが原因などわかりますでしょうか・・・
0236nobodyさん
2013/09/30(月) 22:56:45.74ID:YNM1OLM40237nobodyさん
2013/09/30(月) 23:32:26.73ID:???っていう本がでたらしいのですが
どうですかね?
最近CakePHPはじめたばっかりなので
本かおうとおもってますが
0238nobodyさん
2013/09/30(月) 23:52:23.59ID:II3eS9V+Cakeのwebroot下にWordpressをインストールしました。
一応稼働できてはいるのですが、
URLがルートの場合はwebroot内にあるWordpressディレクトリを表示したいのですが
htaccessで可能でしょうか?
0239nobodyさん
2013/10/01(火) 04:54:23.88ID:???0240nobodyさん
2013/10/01(火) 09:02:42.29ID:???どうしてもテストか実際の実行かで分岐しないといけない個所があるんだけど
Cakeで「今テスト中か?」の確実な判定はどうすればいいのでしょう
開発してたら知りたくなるこういうことが公式には載ってないんだよなーという一例
0241nobodyさん
2013/10/01(火) 11:07:03.38ID:???Cakeだからむずかしいってことではないと思う。
Cake本体のテストケース見てみ。
すっげー大変なことしてるから。
テスト中の判定はいくつかやりかたはあると思うけど、
それってテストの書き方に問題があるのでは?
0242nobodyさん
2013/10/01(火) 11:10:07.46ID:???要するにCake本体のテストもかなりえげつないことしてるけど、
それはCakeだからそうなったってことではないだろうということ。
あとどうしても判定したいなら CakeTestSuiteDispatcher.php で定数定義してるんで、
それを使ってみるとか。
あとは $_SERVER の SCRIPT_NAME を見るとか。
0243nobodyさん
2013/10/01(火) 13:16:24.04ID:???モデルにどのDBから読み込むか(マスターとスレーブ)動的に変更している所があって
テスト時にそこが本来のDB読みに行こうとしてハマってた等、回避不可能なことがいくつもあってな
いやーテストって本当難しいわ、製品作るより難しい
テストに関する情報が少ないのも難易度を上げてるな、本とかにも大抵ちょろっとしか載ってないもんな
0244nobodyさん
2013/10/01(火) 14:25:16.95ID:???ってレベルじゃねーな
テストを書く時間9割で
残り実コード書く時間とテスト走らせる時間が5分5分
0245nobodyさん
2013/10/01(火) 14:29:15.29ID:???と言いつつ設計と実装を同時に進めるチャランポランな俺はTDDが出来ない
0246nobodyさん
2013/10/01(火) 15:03:39.29ID:???運用も任されたり長年使い続けるシステムならテスト書く、そうしないと1年後は毎日バグフィクスで潰れる
0247nobodyさん
2013/10/01(火) 15:57:47.39ID:???外部PHPプログラムからCakeの結果(findで生成される配列など)を
受け取りたいのですが、可能でしょうか?
1.3系はググって見つかったのですが、2系は見つかりません。
もし可能なら方法を教えてください
0249247
2013/10/01(火) 17:43:00.64ID:???以下で紹介されている方法を参考にしました。
ttp://web.mt-systems.jp/archives/783
1.3系はこの方法で動きますが、2系ですと一部の関数や命名規則が変わっているので、
この通りにやっても動きません。
Dispatcherの書き方の問題だと思うのですが、
ソースを見てもどうやって実行値を取得すれば良いか、わかりませんでした・・。
0250nobodyさん
2013/10/01(火) 18:10:43.96ID:???0251nobodyさん
2013/10/01(火) 18:29:49.41ID:???そこまでしてでも組み込みたいのか。。。
素直にバッチ化して呼び出すとか、WebAPI経由で呼べばいいものを。。。
0252nobodyさん
2013/10/05(土) 01:07:51.95ID:???コントローラの途中で特定の条件を満たすとヘッダが404を出して終わり
(ブラウザには404 Not foundが表示される)としたいのだが、
CakeResponseというのを使うらしいのだがドキュメント見て
$this->response->httpCodes(404); return; とか
$this->response->statusCode(404); return; とかやっても、ページが表示されてしまう
後者は404が返るようにはなるのだが、ビューの内容も返してしまってるようだ
要は
header('404 Not Found', true, 404);
$this->_stop();
と同じ結果にしたいのだが、CakeResponseを使って書くにはどうすればいいのだろう?
■ このスレッドは過去ログ倉庫に格納されています