私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】フレームワーク CakePHP 3ホール目【本命】
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ○
レスフィルター : (試験中)
>>854
※ちょっとスレ違いでゴメン。
DI/AOPを使えば、ロジック層の前後で自動的にトランザクションの
開始とコミットを行うように設定できる。
だからロジック層では特にトランザクションを意識しないで
純粋にロジックだけを記述できる。
もし、ロジック層で例外が発生した場合は自動でロールバックもしてくれる。
他にもログの記述とかオブジェクト指向では対応できない
横断的な処理はAOPの機能を使ってメソッドの呼び出しの前後で
自動的に挟み込んでくれたりできる。
ってな感じでやってるとDI/AOP無しのアプリはきついなーと
思うんだけど、そこら辺はうまいやり方があるのかね?
※ちょっとスレ違いでゴメン。
DI/AOPを使えば、ロジック層の前後で自動的にトランザクションの
開始とコミットを行うように設定できる。
だからロジック層では特にトランザクションを意識しないで
純粋にロジックだけを記述できる。
もし、ロジック層で例外が発生した場合は自動でロールバックもしてくれる。
他にもログの記述とかオブジェクト指向では対応できない
横断的な処理はAOPの機能を使ってメソッドの呼び出しの前後で
自動的に挟み込んでくれたりできる。
ってな感じでやってるとDI/AOP無しのアプリはきついなーと
思うんだけど、そこら辺はうまいやり方があるのかね?
>>855
できるかどうかという話と、
実際にやるのかという話は別問題。
たしかにAOPを使えば、そういうことが言語レベルで出来るだろう。
だが、オブジェクト指向で作られていても
実際には、トランザクションやログなど、よく使われる場所で
処理を割り込ませることができるような設計になっているから問題ない。
できるかどうかという話と、
実際にやるのかという話は別問題。
たしかにAOPを使えば、そういうことが言語レベルで出来るだろう。
だが、オブジェクト指向で作られていても
実際には、トランザクションやログなど、よく使われる場所で
処理を割り込ませることができるような設計になっているから問題ない。
cakephp でサイトを一つつくります。
そのcakephpってどうする?
1.プラグインとかコンポーネントとか残したまま再利用。
2.もっかい新しくcakephpをダウンロードして、プラグインとか入れ直す。
1だと、コードがどんどんぐちゃぐちゃになりそうだし、使わないコンポーネントとかも残る可能性がある。
2だとプラグインとか入れ直すのが面倒下さい。
僕的には1ですが、みなさんいかがでしょうか。
そのcakephpってどうする?
1.プラグインとかコンポーネントとか残したまま再利用。
2.もっかい新しくcakephpをダウンロードして、プラグインとか入れ直す。
1だと、コードがどんどんぐちゃぐちゃになりそうだし、使わないコンポーネントとかも残る可能性がある。
2だとプラグインとか入れ直すのが面倒下さい。
僕的には1ですが、みなさんいかがでしょうか。
掲示板のシステムを CakePHP で作ろうと思っています。
モデルは Post(記事) と Comment(コメント) です。
そして Post 一覧表示で Post 毎の Comment の数も同時に表示したいと思います。
この時、Comment の数はどのように算出するものなのでしょうか?
自分で思いつく範囲は次の通りでした。
1. Post 1つ毎に select count() from Comment where ~ を発行する。
2. select * from Comment で全ての Comment を取得し、アプリ側で Post 毎に数をカウントする。
3. Post テーブルに count 列を用意し Comment 登録時にインクリメントする(非正規化)。
4. 3.の動作をトリガーで実現する。
このようなケースはよくあると思うのですが、一般的にはどのような方法が使われている
ものなのでしょうか?
モデルは Post(記事) と Comment(コメント) です。
そして Post 一覧表示で Post 毎の Comment の数も同時に表示したいと思います。
この時、Comment の数はどのように算出するものなのでしょうか?
自分で思いつく範囲は次の通りでした。
1. Post 1つ毎に select count() from Comment where ~ を発行する。
2. select * from Comment で全ての Comment を取得し、アプリ側で Post 毎に数をカウントする。
3. Post テーブルに count 列を用意し Comment 登録時にインクリメントする(非正規化)。
4. 3.の動作をトリガーで実現する。
このようなケースはよくあると思うのですが、一般的にはどのような方法が使われている
ものなのでしょうか?
>>861
それってアソシエーションを知った上での質問?
それってアソシエーションを知った上での質問?
>>862
ああ…突っ込んじゃったよ。ほっときゃいいのに。
ああ…突っ込んじゃったよ。ほっときゃいいのに。
>>867
ありがとうございます。
そして了解しました。不慣れな初心者なもので時間はかかるかもしれませんが、
考えられうる全ての方法を実際に検証してみようと思います。
確かに Comment のような小さなデータの場合、find($id) で総数をアプリ側でカウント
するのと、findCount() でデータベースにカウントさせるのではそんなに変わらないかも
しれませんね。ただ、Comment がカラム数 100 もあるようなデータの場合で、常に Post
に対して数百も付属しているような場合だと結果は変わるような気がします。そのあたり
も含めて検証してみようと思います。
ありがとうございます。
そして了解しました。不慣れな初心者なもので時間はかかるかもしれませんが、
考えられうる全ての方法を実際に検証してみようと思います。
確かに Comment のような小さなデータの場合、find($id) で総数をアプリ側でカウント
するのと、findCount() でデータベースにカウントさせるのではそんなに変わらないかも
しれませんね。ただ、Comment がカラム数 100 もあるようなデータの場合で、常に Post
に対して数百も付属しているような場合だと結果は変わるような気がします。そのあたり
も含めて検証してみようと思います。
ありがとうございます!
RORから使われているカウンターキャッシュという一般的な用語があったのですね。
ここをみて理解できました。
http://blog.matsimitsu.nl/code/163/cakephp-countercache
behaviorを使ってカウントをインクリメントするのですね。この方法が一般的な方法で
あるとわかっただけでも安心して使えそうです。色々とありがとうございました。
RORから使われているカウンターキャッシュという一般的な用語があったのですね。
ここをみて理解できました。
http://blog.matsimitsu.nl/code/163/cakephp-countercache
behaviorを使ってカウントをインクリメントするのですね。この方法が一般的な方法で
あるとわかっただけでも安心して使えそうです。色々とありがとうございました。
ビジネスロジックを律儀にmodelに入れてる悪寒
適度で良いんだよそんなの。細分化うざい。Controllerでやれ。
それでもやっぱりビジネスロジックまとめたいというなら
modelとcontrollerの間にservice層入れる。
が、そんな規模のものはcakephpは想定してないんじゃないかね。
適度で良いんだよそんなの。細分化うざい。Controllerでやれ。
それでもやっぱりビジネスロジックまとめたいというなら
modelとcontrollerの間にservice層入れる。
が、そんな規模のものはcakephpは想定してないんじゃないかね。
その通りだと思う。悪寒の憶測で話したからずれたんだな。
CakeのModel拡張して、Withで同時に拾ってくるようなマジック関数入れると
もっと綺麗かなと思った。findBy的な。
CakeのModel拡張して、Withで同時に拾ってくるようなマジック関数入れると
もっと綺麗かなと思った。findBy的な。
先ほどの質問>>873を同僚に話したところ、ビヘイビア使えば?と言われてしまいました
こんなのがあった。おかしいなぁ?昔はcurrvalを使っているのに・・・?
どういうこと? なんか別の問題でもある?
http://trac.cakephp.org/ticket/381 currval()になっている。
http://trac.cakephp.org/ticket/598 このパッチでmax()になった?
どういうこと? なんか別の問題でもある?
http://trac.cakephp.org/ticket/381 currval()になっている。
http://trac.cakephp.org/ticket/598 このパッチでmax()になった?
dreamweaver cs3 なんだけど、空の ctp ファイル作ると確実に
内部エンコーディングを sjis にしちゃうから文字化けするよね。
いつも新規作成 → 秀丸でutf-8変換 でやってんだけど。
で、現在、 あ とか 人文字だけ残したファイルをコピペしてんだけど。
なんかいい方法ない?
内部エンコーディングを sjis にしちゃうから文字化けするよね。
いつも新規作成 → 秀丸でutf-8変換 でやってんだけど。
で、現在、 あ とか 人文字だけ残したファイルをコピペしてんだけど。
なんかいい方法ない?
>>885
dreamweaverにデフォルトでUTF8と認識するってオプション無いの?
まあ、文字数が少なかったらどっちみち文字化けは
避けられないので、UTF8と認識するような文字をコメントで入れて
おくのが確実だと思うけど。
dreamweaverにデフォルトでUTF8と認識するってオプション無いの?
まあ、文字数が少なかったらどっちみち文字化けは
避けられないので、UTF8と認識するような文字をコメントで入れて
おくのが確実だと思うけど。
で、俺は何を聞こうと思ってここに来たんだっけ・・・?
>>889
そんなの人生いろいろ、人それぞれだろ。
そんなの人生いろいろ、人それぞれだろ。
PostgreSQLというか、データベースの扱いの仕様そのものがわかんね。
Boolean型を保存するときは、1やtrueなんかを適当に変換して保存。
呼び出すときは、データベースに入っているもの・・・というか
ネイティブなデータベースAPIで取得した値をそのまま返すってのが
今の動きなんだろうか?(PostgreSQLの場合、tとf)
正式版になったら、統一されるのかな?
データベースごとに戻ってくる値が違っていたりすると
ややこしいなぁ
Boolean型を保存するときは、1やtrueなんかを適当に変換して保存。
呼び出すときは、データベースに入っているもの・・・というか
ネイティブなデータベースAPIで取得した値をそのまま返すってのが
今の動きなんだろうか?(PostgreSQLの場合、tとf)
正式版になったら、統一されるのかな?
データベースごとに戻ってくる値が違っていたりすると
ややこしいなぁ
>>892
ごめん、言っている意味がよくわからない。
とりあえず、findAllして戻ってきた値が、
MySQLとPostgreSQLで違うんだ。
そしてPostgreSQLの仕様では
http://itbtech.itboost.co.jp/man/postgres_man/datatype-boolean.html
> Example 3-1から見てお分かり頂けるように、
> boolean値の出力はtまたは fとなります。
PostgreSQLは頭悪いとしか思えない・・・
ごめん、言っている意味がよくわからない。
とりあえず、findAllして戻ってきた値が、
MySQLとPostgreSQLで違うんだ。
そしてPostgreSQLの仕様では
http://itbtech.itboost.co.jp/man/postgres_man/datatype-boolean.html
> Example 3-1から見てお分かり頂けるように、
> boolean値の出力はtまたは fとなります。
PostgreSQLは頭悪いとしか思えない・・・
>>894
くるな
くるな
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
みんなの評価 : ○類似してるかもしれないスレッド
- 【PHP】フレームワーク CakePHP 4ホール目【v1.2】 (1001) - [89%] - 2008/12/19 21:06 ○
- 【PHP】フレームワーク CakePHP 5ホール目【v1.2】 (985) - [89%] - 2009/3/7 4:53 ☆
- 【PHP】フレームワーク CakePHP 7ホール目【v1.2】 (1001) - [89%] - 2010/3/18 1:18 ○
- 【PHP】フレームワーク CakePHP 6ホール目【v1.2】 (933) - [89%] - 2009/8/19 2:06 ○
- 【PHP】フレームワーク CakePHP 12ホール目【笑】 (1001) - [87%] - 2011/11/8 7:01
- 【PHP】フレームワーク CakePHP 13ホール目【v2.0】 (995) - [86%] - 2012/4/23 21:16 ○
- 【PHP】フレームワーク CakePHP 17ホール目【v3α】 (955) - [84%] - 2016/11/15 20:45
- 【PHP】フレームワーク CakePHP 17ホール目【v2.4】 (984) - [84%] - 2015/1/10 2:45
- 【PHP】フレームワーク CakePHP 16ホール目【v2.4】 (1001) - [84%] - 2014/3/3 3:00
- 【PHP】フレームワーク CakePHP 15ホール目【v2.2】 (985) - [84%] - 2013/9/7 8:30
- 【PHP】フレームワーク CakePHP 10ホール目【v1.3】 (1001) - [84%] - 2011/2/13 8:32
- 【PHP】フレームワーク CakePHP 11ホール目【v1.3】 (1001) - [84%] - 2011/6/30 22:32
- 【PHP】フレームワーク CakePHP 19ホール目【v3.3】 (844) - [84%] - 2023/2/2 14:30
- 【PHP】フレームワーク CakePHP 14ホール目【v2.1】 (1001) - [84%] - 2012/12/3 19:16
トップメニューへ / →のくす牧場書庫について