2010-04-20 5 views
0

MVC 구조에서 OOP을 사용하여 학습하는 동안 가능한 한 우수 사례를 따르려고 노력하고 있습니다. 그래서 저는 여러분에게 MVC 구조에 대한 약간의 조언을 드리겠습니다. 여기 나를 조금 귀찮게한다.회원 관리자에 대한 OOP + MVC 조언

필자는 작성해야 할 여러 가지 양식 (주로 자체 데이터)을 작성하는 사이트를 작성 중이므로 구성원과 관련된 모든 양식이있는 구성원 컨트롤러를 설정하기로 결정했습니다 개별적인 방법으로 표현됩니다. 여기에는 로그인/로그 아웃 방법과 프로필 데이터 편집 등이 포함됩니다.이 방법 외에도 회원이 로그인되어있는 동안 사이트의 모든 페이지에서 상수 인 회원의 제어판 위젯을 생성 할 수있는 방법이 있습니다. 유일한 것은,이 컨트롤러의 다른 모든 메서드는 모두 동일한 종속성과 양식 템플릿을 가지고 있으므로 생성자에서이 모든 것을 생성하는 것이 좋겠지 만 control_panel 메서드는 동일한 종속성 등이 없으므로 이 목적을 위해 생성자를 사용할 수 없으며 대신 각 메소드에서 종속성과 동일한 템플릿 조각을 다시 선언해야합니다. 이것은 분명히 이상적이지 않고 DRY 원리를 따르지 않지만, 나는 그것이 control_panel 메소드로 무엇을해야하는지 궁금합니다. 멤버와 관련되어 있기 때문에 컨트롤러의 첫 번째 장소에 넣었습니다.

저는 여기에있는 것들을 너무 복잡하게하고 있습니다. 그냥 control_panel 메서드를 간단한 도우미 클래스로 옮기는 것이 합리적입니까? - 예를 들어, 당신이 다루는 Registration_Controller을 가질 수

내가 할 것이 무엇
class Member_Controller extends Website_Controller { 

    public function __construct() 
    { 
     parent::__construct(); 

     if (request::is_ajax()) 
     { 
      $this->auto_render = FALSE; // disable auto render 
     } 
    } 

    public static function control_panel() 
    { 
     //load control panel view 
     $panel = new View('user/control_panel'); 

     return $panel; 
    } 

    public function login() 
    { 
    } 

    public function register() 
    { 
    } 

    public function profile() 
    { 
    } 

    public function household() 
    { 
    } 

    public function edit_profile() 
    { 

    } 

    public function logout() 
    { 
    } 
} 

답변

1

, 하나의 컨트롤러에 모든 것을 밀어 방지하는 것입니다, 대신 별도의 기능을 따라 : 다음

컨트롤러의 기본적인 방법이다 Authentication_Controller, Profile_Controller 등을 사용하는 경우에만이 방법을 사용하면 하나의 컨트롤러에 많은 책임이 따르는 대신 응용 프로그램의 각 부분이 담당하는 부분을 쉽게 시각화 할 수 있으므로 혼동 및 기타 유지 관리 문제가 발생합니다. 적어도 IMHO, 그것은 나를 위해 일했다.

제어판에 대한 구체적인 질문으로 돌아 가자. 예, 컨트롤러에서 꺼내는 것이 더 좋습니다. 특별히 언급하지 않은 경우에는 특히 그렇습니다. 모든 언급에 대해 도우미 클래스를 가질 수 있습니다. 반복 가능한 디스플레이 로직. 컨트롤러의 컨텍스트 내에서 무언가가 이해가되지 않으면 꺼내십시오.

Cake와 Zend FW와 같은 멋진 프레임 워크가 있습니다. MVC 애플리케이션을 설계/개발하는 데 더 쉬워지며, 즉석에서 작동하는 다양한 구성 요소가 제공됩니다.

MVC와 Fw는 필수 사항은 아니지만 모든 것이 범위와 특수한 요구에 해당합니다. 때로는 많은 도움이 될 때가 있지만 대부분 제가 사용하는 경우가 있지만 때로는 지나치게 복잡 해지는 경우도 있습니다. 간단하게 유지하십시오.)

건배, M.