2011-12-25 2 views
0

현재 웹 응용 프로그램에 CodeIgniter 프레임 워크를 사용하고 있으며 내 응용 프로그램 디자인에서 까다로운 부분에 직면 해 있으며이를 해결할 수있는 좋은 접근 방법이 무엇인지 알고 싶습니다.MVC 공통 기능

나는 코멘트를 가질 수있는 3 개의 다른 객체 (컨트롤러)를 가지고 있습니다. 나는이 3 가지 객체 (주석 읽기, 주석 쓰기 등)의 공통 기능이기 때문에 궁금했다. 그래서 제 질문은 어떻게 설계되어야합니까? (모든 공통 제어기 메소드를 배치 할 위치와 모델 메소드를 처리하는 방법). MVC에 대한 올바른 접근 방식은 무엇입니까? 어떻게 그것을 건조하게 유지 하는가?

+0

이것은 각 컨트롤러를 페이지로 취급하는 프레임 워크에 대해 마음에 들지 않습니다. 여러 페이지에서 비슷한 기능을 수행해야하는 경우에는 기본 컨트롤러 (극도로 부 풀릴 수 있음) 또는 코드를 복제해야합니다. 나는 페이지의 각 부분마다 자체 컨트롤러가있는 모듈 식 디자인을 사용하는 것이 훨씬 더 나은 방법이라고 생각합니다. – powerbuoy

+0

베이스 컨트롤러에 모든 것을 부착 할 필요는 없습니다. 도서관, 도우미 또는 스파크를 사용하십시오. CodeIgniter에서 이것을 처리 할 수있는 옵션이 6 가지 있습니다. –

답변

1

Phil의 블로그 게시물 인 =)을 읽었을 것입니다.

다른 컨트롤러간에 로직을 공유하려는 경우 주석 라이브러리 및 주석 모델을 만들고 다른 클래스 각각에로드 할 수 있습니다. 한 곳에서 모든 코멘트를 저장하기를 원한다면 당신의 데이터베이스로

Codeigniter Libraries

는, 당신은 아마 이런 식으로 뭔가를 할 수 :

이 COMMENT_TEXT comment_relation comment_relationId

을 comment_id .. 관계 및 관계 ID는 다른 테이블과 특정 내용을 참조합니다.

저는 이것이 좋은 접근 방법이라고 생각합니다.

+0

:) 감사합니다! 나는 도서관에 충실 할 것이라고 생각한다. – Dmitri

2

3 개의 컨트롤러를 기본 컨트롤러에서 상속 받도록 설정하면 해당 작업이 수행됩니다. 또한 사용 사례에 따라 CommentController가 있으면됩니다.

희망이 있습니다.

+0

기본 컨트롤러가 올바른 접근 방식이 아닐 수도 있습니다. 댓글 기능 중 일부가 판매 사이트에있는 경우 다른 댓글이 앱에있는 경우 어떻게해야합니까? MY_Controller에서 주석 처리 기능을 사용하는 것은 이치에 맞지 않습니다. 콘트롤러는 정의에 의해 (CodeIgniter에서) 사용자가 액세스 할 수있는 엔드 포인트이기 때문에 주석을위한 컨트롤러 만 이해할 수 없습니다. –

+0

차이점에 대한 템플릿 방법을 사용할 수 있습니다. 각 주석 관련 작업이 서로 다르면 반복하지 않으려는 생각은 메서드의 이름이며 의미가 없습니다. 그래서 나는 모든 방법이 비슷하다고 생각합니다. – ivowiblo

+0

또 다른 옵션은 세 개의 컨트롤러가 "공통"논리를 처리하는 클래스에 대한 참조를 갖도록하는 것입니다. – ivowiblo

1

FrontController를 가지고 FrontController 내에 공통 함수를 배치하고 다른 컨트롤러가이 FrontController를 확장하도록 할 수 있습니다. 나는 이것이 어떤 식 으로든 도움이 될 것이라고 생각한다.

관련 문제