문제

오늘 직장에서 누군가가 저를 설득하려고했습니다.

{$obj->getTableInfo()}

객체 메소드를 사용하고 있기 때문에 Smarty/MVC/템플릿에 적합합니다. 나는 그것이 데이터베이스를 호출하기 때문에 장소가없고 컨트롤러에 있어야한다고 주장했다 (실제로 MVC를 사용하지 않음). MVC에서 사용되고 일반적으로 템플릿에 사용되는 논리적 분리에 대한 이해가 옳습니까? 아니면 내가 놓친 것이 있습니까?

도움이 되었습니까?

해결책

네가 옳아. 그는 틀렸다.

MVC를 올바르게 수행하려면 데이터베이스 호출은 어떤 형태로든 컨트롤러에 거주해야합니다.

분명히 사람들은 그 모든 것을 화나게합니다 ~해야 한다 그런 일을하고 그렇게하십시오. 그러나 그것은 올바른 방법이 아닙니다.

다른 팁

글쎄, "공식적인"규칙이나 그 어떤 것도 없지만, 나는 그와 같은 것이 컨트롤러에 속한다고 생각합니다. 나는 디스플레이 변수를 제외하고 내보기 코드에서 아무것도하지 않습니다. if 또는 a foreach-유형 루프가 허용됩니다. 확실히 데이터베이스에 액세스하는 기능을 호출하지 않습니다. 컨트롤러에 의해 모두로드되어야합니다. 뷰는 표시가 표시되어야하는지 여부 만 결정해야합니다.

맥락과 범위에 달려 있습니다.

$ obj는 컨트롤러 또는 모델 계층입니까? 제 생각에는 그것이 유효한지 여부에 대답해야합니다.

다른 답변을 읽는 데 응답합니다.

함수 자체는 그 자체로 간단한 getter 방법과 관련이 있습니다. 컨트롤러 계층을 통해 DB를 호출 할 수 있습니다. 내가 말하는 것은 괜찮습니다. 특히 메모리에 어떤 형태의 캐싱을 사용했을 경우. (예 : Getter는 한 번 사용될 때만 캐시하고 싶을 때 세터입니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top