【PHP】フレームワーク CakePHP 2ホール目
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/11/14(水) 02:50:28ID:???http://www.cakephp.org/
10分で作るCakePHPアプリ for Windows
http://p4life.jp/cake/
マニュアル日本語化
http://www.cakephp.jp/doc/
日本語フォーラム
http://cakephp.jp/modules/newbb/
あとこのへんとか(初心者向けTIPS)
http://www.avatarfinancial.com/pages/cake/
0566nobodyさん
2008/02/21(木) 23:04:08ID:???0567nobodyさん
2008/02/21(木) 23:22:30ID:???というか引っ張り出すデータを軽くしたい時はそうしてる。
0569559
2008/02/22(金) 01:11:47ID:???>566
私もイラっと来てquery使おうとしてたんですが、ページングしたかったので
とりあえず今はpaginateにWHERE句の後ろ全部渡す形にしちゃってますorz
皆様どうもありがとう。
0570nobodyさん
2008/02/22(金) 01:16:58ID:???>567
設計上可能ですし私もそれ考えたのですが、
なんかそれをやると負けた気がして迷走してましたw
0571nobodyさん
2008/02/22(金) 01:31:38ID:???正しいか分からんけど、ロジックシンプルになるし、データも少なくなるしそれでいいんじゃん?
あとはmysql(ver5.1以上)のviewを使うのもありかもね。
0572nobodyさん
2008/02/22(金) 05:41:42ID:???CakePHPのアソシエイト部分が小規模向けに設計されてる
GoogleCodeSearchで中規模程度のソースを結構見たが
大規模化するとかアソシエイト部分が、かなり複雑になっていて
とてもチーム分担できるようなソースでは無くなっている
symfonyはここが簡潔でわかりやすい
0573nobodyさん
2008/02/22(金) 09:25:21ID:???だからCakePHPでアソシエイトを使わなければいいだけの話。
0575nobodyさん
2008/02/22(金) 11:55:57ID:???CakePHP的にはどうするのが一番いいの?
モデルからコンポーネントを無理やり使う?
ビヘイビアってライブラリというよりか
フックを入れるものだからちょっと感じが違うよね。
0576nobodyさん
2008/02/22(金) 12:22:47ID:???0577nobodyさん
2008/02/22(金) 13:09:39ID:???たとえば、ファイル読み書きライブラリを使うとして、
$handle = $model->fopen($file)
$model->fputs($handle, $data);
とか気持ち悪いとか思わない?
継承関係になってないんだよね。
$model->findAll (このモデルのデータを検索する)
$model->save (このモデルにデータを保存する)
$model->fopen (このモデルとは関係ないが、ファイルをオープンする)
$model->fputs (このモデルとは関係ない、ファイルに保存する)
0578nobodyさん
2008/02/22(金) 13:47:10ID:???ファイルの読み書きだったら一個モデル作ればいいんじゃね?
モデルってデータの入出力であってモデル=DBのテーブルってわけでもないし
0579578
2008/02/22(金) 14:02:56ID:???0580nobodyさん
2008/02/22(金) 14:48:32ID:???今回はファイルを例にしたけど、
そういう汎用的なライブラリって使うでしょ?
そういうのはどうやって使うのがCakePHP的なのかなぁって。
vendersに入れるってことは、
vendor('aaa/bbb');
class MyModel extends AppModel {
function foo() {
$lib = new Lib();
}
}
こんな感じで使うってこと?
0581nobodyさん
2008/02/22(金) 14:58:48ID:???コンポーネントいらないんじゃね?と思えてきた。
コンポーネントは何の為に使うんだろう?
呼び出したコントローラを参照する必要がある場合?
すると汎用的なライブラリはvendorを使ったほうがいいのかな。
たとえばメール送信(1.2のEmailComponent)は
コンポーネントではなく、vendorにするべきじゃないかと思えてきた。
バックグラウンド的にモデルに変更があったらメールするなんて用途もあるだろうし。
そういう場合でもモデルを変更するコントローラで一旦変更を感知して
そこからメールするのがいいのだろうか?
0582nobodyさん
2008/02/22(金) 15:02:32ID:???vendorsプロパティがほしいな。
class My extends ? {
var $vendors = array('Aaa', 'Bbb', 'Ccc');
function foo() {
$this->Aaa->foo();
}
}
あとpluginsってフォルダを使っている例を見たことが無い。
0583nobodyさん
2008/02/22(金) 16:17:35ID:???それがめんどくさいなら無節操にvendors使えばいいだろ
0586nobodyさん
2008/02/22(金) 18:13:20ID:???0587nobodyさん
2008/02/22(金) 19:13:52ID:???モデルでコンポーネントを使うという意味?
でも、フォルダからしてコンポーネントはコントロールの下にあるし、
なによりモデルでコンポーネントを使う方法が無いでしょ?
App::importで強制的に読み込むしかない。
0589nobodyさん
2008/02/23(土) 09:31:23ID:???将来性無いなと判断する決め手になった
後はデータがオブジェクトじゃなくて配列処理してるとこね
これも、かなり小規模を前提として設計してるよね
0590nobodyさん
2008/02/23(土) 09:40:42ID:???PHPフレームワーク主流になると思う
有名どころの大手ならCakePHPはいれない
これは断言できる、
少人数、小規模設計だから当然
半年くらいCakePHPでコーディングしてきたけど捨てるよ
CakePHP指定の案件が将来望めない
symfony案件が増加するのは間違いない
0591nobodyさん
2008/02/23(土) 10:34:07ID:???http://cakephp.seesaa.net/article/31425210.html
0592nobodyさん
2008/02/23(土) 13:14:45ID:???だね
途中荒らしてるやついたが
なんであんなに必至なのかな
まあ初心者には簡単だしおすすめだけど
cakephpのサイト探すと穴空いたままで公開してるとこ多いな
0593nobodyさん
2008/02/23(土) 14:17:27ID:???0595nobodyさん
2008/02/23(土) 14:22:47ID:???$db =& ConnectionManager::getDataSource('default');
$db->query('select * from table', false); ←二つ目の引数はキャッシュを使わないという意味
0596nobodyさん
2008/02/23(土) 16:47:47ID:???そりゃ単に調査不足だろ
0597nobodyさん
2008/02/23(土) 21:18:01ID:???何かやり方間違ってますか?
例えば
配列を書いたファイル:data.php
<?php
$hoge = array( "a", "b", "c" ) ;
コントローラ:users_controller.php
<?php
include_once( "data.php" ) ;
class UsersController extends AppController
{
var $name = "Users" ;
var $uses = array( "User" ) ;
function index()
{
global $hoge ;
var_dump( $hoge ) ;
}
}
0598nobodyさん
2008/02/23(土) 22:31:22ID:???たとえるなら、携帯の掲示板レベル
0599nobodyさん
2008/02/23(土) 22:33:28ID:???そうなればsymfonyが敵なし状態だろうな
0600nobodyさん
2008/02/23(土) 23:06:46ID:???0601nobodyさん
2008/02/24(日) 14:48:47ID:???チンポニーでも禅度でも好きなの使え。
0602nobodyさん
2008/02/24(日) 21:59:28ID:???0603nobodyさん
2008/02/24(日) 23:00:15ID:???0604nobodyさん
2008/02/25(月) 04:09:58ID:???xmlの処理ってどこで実装するのが良いの?
viewにべた書きは嫌なんだけど
0605nobodyさん
2008/02/25(月) 11:49:58ID:???0606nobodyさん
2008/02/25(月) 17:42:18ID:6F5pnXqdMVCの奥でデザインパターンみたいな構造にしたいんですけど。
0607nobodyさん
2008/02/25(月) 20:05:46ID:???0608nobodyさん
2008/02/25(月) 20:18:02ID:???URL/データ/データ
このような感じでデータだけを送ることはできませんか?
0611nobodyさん
2008/02/26(火) 00:24:55ID:???>>610
アドバイスありがとうございます。
http://hogehoge/sales/1
というページから、
http://hogehoge/sales/1/2008/02
みたいにフォームを利用してさらに期間を絞り込むようなことをやりたかったのですが、
結局新しい別のビューでやることにしました。
0612nobodyさん
2008/02/26(火) 12:54:22ID:???vendor?
0613nobodyさん
2008/02/27(水) 10:41:56ID:pFPJf0/n0614nobodyさん
2008/02/27(水) 12:51:45ID:???$model->readを実行すると、$model->data に読み込んだデータが入る。
$model->findByIdだと$model->dataの値はそのまま。
確認したし、多分あっていると思うが、
これの違いを明確に書いてあるところあるかな?
0615nobodyさん
2008/02/27(水) 13:12:36ID:???1.2しか知らないけど
controller
$this->set('hoge','aiueo');
view
echo $hoge;
0616nobodyさん
2008/02/27(水) 13:30:21ID:pFPJf0/nすいません。間違えました。
コントローラからヘルパーにパラメータをわたす方法でした。
0617nobodyさん
2008/02/27(水) 15:08:46ID:???ソース見たまんまだけど
0620nobodyさん
2008/02/27(水) 17:54:15ID:???ヘルパー
function test($hoge){
echo $hoge;
}
コントローラー
$this->set('hoge','てんこもり');
これでとりあえずビューにわたるだろ?
んで、ビューからヘルパーを呼ぶと。
$helper->test($hoge);
こんで $hoge の内容が表示されますよっと。
0621nobodyさん
2008/02/27(水) 19:02:44ID:???<?php $helper->init($settings); ?>
初期化命令を毎回呼べと?
0622nobodyさん
2008/02/27(水) 19:23:49ID:???ってビューに渡しておいてビューの頭で
$helper->settei($settei);
ってヘルパーに渡してるよ俺の場合
なんかバカっぽいけど。
App::import('Helper', 'MyHelper');
$myhelper = new MyHelper();
$myhelper->settei($settei);
$controller->set('myhelper', $myhelper);
なら渡せないことも無かったけど、MyHelperの中でHtmlHelperやFormHelper呼ぼうとしたら
自動でうまく呼び出せなかったからやめた
MyHelperの中で$this->Html = new HtmlHelper();とか手動でやってやればよかったのかな
そのときは思いつかなかったからやってないけど
0623nobodyさん
2008/02/27(水) 20:00:22ID:pFPJf0/n自己解決しました(笑)
0624nobodyさん
2008/02/27(水) 20:01:37ID:WlN8JrV2それぞれの印象を聞いてみたいです。
俺もCakePHPを使い始めた当初からSmartyを使ってきてる一人なのですが、なんだか
実は結構めんどくさかったりする割に従来のPHP記述でのビューに比べてあんまり
パフォーマンス良くない気がしてきたもので。(例えば、ヘルパーに配列を渡す場合
Smartyでのビューだと細々とめんどくさかったり)
0625nobodyさん
2008/02/27(水) 20:29:10ID:???0626nobodyさん
2008/02/27(水) 21:24:24ID:WlN8JrV2なに?おれおれフレームワークって?
知り合いがZend FrameworkのMVC(この場合はV)をCakeで使ってたけど、あれは意味ねえなあ
0627nobodyさん
2008/02/27(水) 21:25:22ID:pFPJf0/n家に帰るのでIDかわるから、あきらめて説明すると、
コントローラで
$this->params['hoge'] = $data;
に値設定。
ヘルパーからも、$this->params['hoge']にアクセスできる。
$this->paramsを受け渡しに使うのってどうよ?と思うかもしれんが、
paginationもにたように、params['paging']を使っているからいいだろう?
他にClassRegistryを使ったやり方があって、FormHelperとかは
これを使っているみたいだが、なんかグローバル変数あつかっている感じがして却下。
もう一つ、Viewを継承した独自のビューでごちゃごちゃ変数わたしても
できるかもしれんが、余計なものを作らないといけないので却下。
0628nobodyさん
2008/02/27(水) 21:49:42ID:???0629nobodyさん
2008/02/28(木) 02:37:50ID:???$model->findAll()するとき、有無を言わさずjoinしてるみたいなんだけど
これってなんとかならんのかね。
railsだとfind(:all,:include = ...)で指定したときだけjoinとかするじゃん。
0632nobodyさん
2008/02/28(木) 15:35:27ID:???0634nobodyさん
2008/02/28(木) 20:45:21ID:???0635nobodyさん
2008/02/29(金) 08:40:00ID:???時間の無駄やろ。
0636nobodyさん
2008/02/29(金) 08:42:38ID:???頭のいい人間が少人数しかいないから
正しい方向に行くのは常に少人数
0637nobodyさん
2008/02/29(金) 09:13:18ID:???主流になっている罠w
0638nobodyさん
2008/02/29(金) 09:16:04ID:???0639nobodyさん
2008/02/29(金) 09:21:43ID:???反日感情が大衆を間違った方向へ進ませている
CakePHPも同じ
0640nobodyさん
2008/02/29(金) 09:25:37ID:???小規模フレームワークは乱立しやすく
次から次へと良いフレームワークが出来る
大規模フレームワークはやはり規模がでかいから
乱立しにくい
どうせなら覚える量は少ない方がいい
そう賢い人間の選ぶ答えはsymfony
0641nobodyさん
2008/02/29(金) 09:26:48ID:???フレームワークの数分という意味だからね
0642nobodyさん
2008/02/29(金) 09:29:16ID:???CakePHPも同じ道に行くのはわかるだろう
小規模フレームワークの世代交代は1年単位なんだよね
0643nobodyさん
2008/02/29(金) 09:32:31ID:???簡単な掲示板レベルのものしか作れないね
だから今後も有名どころのCakePHP採用実績はありえないよね
だから廃れるのも速い、その理由からも今年で終わりクセー
0644nobodyさん
2008/02/29(金) 09:35:28ID:???> firefoxのアドオンがおいてある、あのサイトが実はCakePHPで作られていたんだそうです。
0645nobodyさん
2008/02/29(金) 09:40:00ID:???以前は活気のあったmojaviスレが廃れてるのを見れば
お前の好きなフレームワークも同じ道に行くのはわかるだろう w
0646nobodyさん
2008/02/29(金) 09:50:18ID:???アマチュアも使えるきちんとしたFWなら生き延びるだろうけど・・・
CIに期待
0647nobodyさん
2008/02/29(金) 10:14:57ID:???Viewでヘルパーのコンポーネントの呼び出し宣言出来ないとか
Viewで直接モデルをコントロール出来ないとかね
0648nobodyさん
2008/02/29(金) 10:21:05ID:???複雑なロジックはコンポーネント化して呼び出し
複雑なロジックでかつ断片性が内容によってかわるならCakePHPはどうすんの?
0649nobodyさん
2008/02/29(金) 11:20:41ID:???なに、この便利な機能
CakePHP利用してからsymfony使うと
豊富な便利機能にただただ関心
0650nobodyさん
2008/02/29(金) 11:22:31ID:???作者やる気がないから将来性もクソもないがね
やる気のない社長がいる会社の株を買ってるのと同じだね
0651nobodyさん
2008/02/29(金) 11:23:29ID:???いつ開発中止するかわからんフレームワークをよく使えるなwww
0652nobodyさん
2008/02/29(金) 11:24:22ID:???アマチュアには敷居高いからね
流行らなければ廃れていくのは同じ
0653nobodyさん
2008/02/29(金) 11:43:03ID:???フレームワークを次々乗り換えるんじゃなくて
期間的に長く使えるフレームワークしかいらない、
一見、CakePHPは効率よく見えるが
過去資産になりにくい時間の使い方は、非効率
0654nobodyさん
2008/02/29(金) 11:50:01ID:???0から作る案件はかなり少ない
スパゲッティソースでも
今までの過去資産をカスタマイズする方が圧倒的に速い
0655nobodyさん
2008/02/29(金) 12:45:25ID:???0656nobodyさん
2008/02/29(金) 14:26:26ID:???ただ知名度が優先して使ってる人が多くなってるだけ
0657nobodyさん
2008/02/29(金) 14:31:12ID:???フレームワークが主流にならないと
初心者がフレームワーク出来ますとか
調子いい事を言うからな
初心者と経験者の差をはっきりさせて
初心者がすぐに食える状態を無くして欲しい
0658nobodyさん
2008/02/29(金) 14:32:41ID:???高級志向の大人のフレームワークがsymfony
0659nobodyさん
2008/02/29(金) 14:46:43ID:???さびれてんだからさwww
13: フランチョスとsymfony (36)
http://pc11.2ch.net/test/read.cgi/php/1201177567/l50
0660nobodyさん
2008/02/29(金) 14:51:07ID:???http://pc11.2ch.net/test/read.cgi/php/1204113475/l50
一時期 symfony か CakePHP かって時期あったけど
これほどにまでsymfony 廃れてるとは知らんかった。
まあ、どうでもいいけど。
0661nobodyさん
2008/02/29(金) 14:51:22ID:???> 長い目で見れば、流行だけで中身の薄いものは確実に消える
それ具体的に何年後?
そりゃいつかは何もかも消えるだろうなw
そのときに、ほら消えた。俺の言っていたことは正しかったんだ。と
言えない様に、今何年後に消えるのか言ってもらおうか。
それまでに消えなければ、お前の言っていることは間違いだとはっきりする。
そのとき俺がおまえのことを思い出すことは無いだろうが、
少なくともおまえ自身は、自分の予測が外れたことを身にしみて感じるだろうw
0662nobodyさん
2008/02/29(金) 14:59:47ID:???0663nobodyさん
2008/02/29(金) 20:34:53ID:???0664nobodyさん
2008/02/29(金) 23:39:58ID:???core.phpに書いてるんだけど、これで問題ないですか?
0665nobodyさん
2008/03/01(土) 00:37:40ID:???app/core.phpはcakeの動作を変えるために設定を変えるだけで
自分で値を追加しないものと感じる。
もっとも「すべてのページで使うような変数」の内容によっては、
AppControllerにかいたりvendors以下にファイル作ってそこに書いたりする。
とここで、ふと、自分の作っているのを見たらapp/core.phpにも書いていたwww
といっても、ユニットテストのための追加設定だけどね。
0666nobodyさん
2008/03/01(土) 12:28:11ID:uin8SgpQデータベースの値として、0が入ってしまうんですが、
これをNULLで代入させる方法ありませんか?
もちろんデーターベースのフィールドはNULL値が入るようになっています。
データベースはMySQL。クエリーとしては、
INSERTとかUPDATE 〜〜〜 number_field = '' という文が発行されています。
たしかデータベースによっては(Oracle?)、こういう場合null値を入れるやつも
あった気がしますが、汎用的な方法としてやりたいな。
■ このスレッドは過去ログ倉庫に格納されています