質問

今日、職場で誰かが私を説得しようとしました:

{$obj->getTableInfo()}

smarty / mvc / templatingには問題ありません。オブジェクトメソッドを使用しているためです。データベースへの呼び出しを行うため、そこに場所がなく、コントローラー内にある必要があると主張しました(実際にはMVCを使用しません)。 MVCで使用され、一般的にテンプレートで使用される論理的な分離を理解する上で正しいですか?または、私が見逃しているものがありますか?

役に立ちましたか?

解決

その通りです。彼は間違っている。

MVCを正しく実行したい場合、データベース呼び出しは、どのような形式であっても、コントローラーに存在する必要があります。

明らかに、人々はそれがどうあるべきかを気にせず、そのようなことをしますが、それは正しい方法ではありません。

他のヒント

まあ、「公式」はありません。ルールまたは何かが、私はそのような何かがコントローラに属していると思います。表示変数以外のビューコードでは何もしません。 if または foreach タイプのループよりも複雑なものは許可されません。確かに、データベースにアクセスする関数を呼び出していません。それはすべてコントローラーによってロードされるべきであり、ビューはそれを表示する必要があるかどうかを決定するだけです。

そのコンテキストとスコープに実際に依存します。

$ objはコントローラーまたはモデルレイヤーですか?私の意見では、それが有効かどうかを答えるべきです。

他の回答を読むことに応じて。

関数名自体は、単純なゲッターメソッドであることに関係しています。コントローラ層を介してdbを呼び出す場合があります。私は大丈夫だと言うでしょう。特に、メモリで何らかの形式のキャッシュを使用する場合。 (つまり、ゲッターは一度だけ使用されるときにのみキャッシュしたいため、セッターです。)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top