제목 | mvc의 원론적인 궁금증이 있습니다. | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 그동안 | 작성시각 | 2018/09/06 13:45:38 |
|
|||
목록에 data를 뿌리는데, 10일전 data, 20일전 data, 30일전 data 이렇게 구분되어 뿌린다고 가정했을때. 목록에 뿌릴 data를 어디서 가공하는게 가장 좋을까요?
1번 : 모델에서 쿼리를 각각 만들어 넘긴다. 2번 : 컨트롤러에서 data를 분기해서 뷰로 넘긴다. 3번 : 뷰에서 if문으로 나눠 뿌린다.
|
|||
다음글 | 프로시저를 생성하는 함수가 있나요? (1) | ||
이전글 | ciboard 처음 접하는 사람입니다 ㅜㅜ 도와주세요 (3) | ||
kaido
/
2018/09/06 13:49:15 /
추천
1
|
변종원(웅파)
/
2018/09/06 14:06:25 /
추천
0
패턴대로라면 모델함수(10), 모델함수(20), 모델함수(30) 을 호출해서 뷰에 넘겨줘야 하는게 맞겠죠. 동일쿼리 3번 날리는게 싫으면 모델함수(30) 하고 컨트롤러에서 재계산하고 뷰로 전달. 뷰에는 단순하게 foreach로 출력하는 부분만 담당합니다. (자바스크립트로 한다면 php 구문은 아예 없을 수도...) ^^ |
박쥐
/
2018/09/06 20:30:38 /
추천
0
제 경우는 Model 에서는 비즈니스 로직을 제외하고 순수하게 데이터를 CRUD 하는 등 기본적인 처리 등을 구현하고 Service 라는 레이어를 별도로 만들어 Service에서만 Model 을 주입받아서 비즈니스 로직을 처리 합니다. Controller 에서는 Service 를 불러와서 비즈니스 로직에 맞게 처리 합니다. 물론 Controller 에서 비즈니스 로직을 처리해도 되지만 이 경우 중복 코드를 어떻게 해결할지 곤란한 상황이 생깁니다. Java의 Spring 프레임워크를 한번 공부해보세요. 디자인 패턴에 대해서 더 잘 알게되어 PHP하는데 많은 도움이 됩니다.
|
D-Days
/
2018/09/11 15:08:19 /
추천
0
정답이 없는 문제 인듯 합니다. A도 B도 C도 다 가능하지만, 기본적인 철학에서 A에서 정의 하는것이 좋다라고 한다면 그 철학을 따르는 것이 좋지 않을까요.? 그래야 남이 봤을때 아 이건 A를 살펴보고 수정하면 되겠다 라고 직관적으로 판단이 가능해 지니까요.
자신만의 코드라면 어디에 넣은들 무슨 상관이 있겠습니까.. ^^ |
원론적으로는 컨트롤러에서 전부 계산 합니다
모델의 궁극적인 형태는 그대로 빼서 다른데다 넣어도 그대로 사용 가능 해야 할 정도로 로직이 적게 들어가야 합니다
[다른 의미로는 재사용율이 매우 높아야 합니다]
뷰는 더 근본적으로 계산없이 출력만 한다는 느낌으로 해야 합니다.
요약하면 10일전 데이터 20일전 데이터 30일전 데이터를 컨트롤러에서 각각 분류해서 한번에 뷰에 넘겨주어야 합니다.
다만 어디서 뭘 할지는 개발자의 재량입니다
계산만 따로 헬퍼로 만드는 분도 있습니다
이건 정답이 없으니 계속 고민해 보셔야 합니다 홧팅~