2014-07-17 1 views
1

웹 응용 프로그램을 작성 중이며 스스로 해체 된 개발자임을 밝히고, 일을 빨리 작성하고 나중에 유지 관리에 대해 걱정합니다. 나는 현재 laravel로 작업 중이며, 데이터베이스 상호 작용이 상당히 많습니다. 예를 들어 컨트롤러의 데이터베이스 개체와 직접 상호 작용하는 것 같습니다. 이것이 최선의 선택인가, 아니면 해당 관련 검색어에 대한 모델의 함수에서 이러한 웅변 메서드를 래핑하기 위해보다 체계적으로 구성되어 있는지 여부입니다. 예 :웅변 ORM 컨트롤러 또는 모델

class HomeController extends \BaseController { 

    public function index() 
    { 
     $user = User::find(1); 
     return $user; 
    } 

} 

이 더 나은

class HomeController extends \BaseController { 

    public function index() 
    { 
     $user = new User; 
     $result = $user->getSingleUser(1); //Being a method in the User.php model 
     return $result; 
    } 

} 

나는이 아주 아주 기본적인 예를 실감하지만, 조직의 목적을 위해 데이터베이스와 멀리 컨트롤러에서 "비즈니스 로직을"분리해서하는 것이 가장 좋습니다로 제공 될 것입니다 ?

답변

1

조직적 목적으로 컨트롤러 과 비즈니스 로직을 분리하는 것이 가장 좋습니다.

이 더 나은 역할을 할 것이다,

예 - 당신은 코드를 더 관리 할 수 ​​있도록, 올바른 영역으로 로직을 분리해야한다.

0

MVC 패턴이 그 때문입니다. db 요청을 깊은 내부에 저장하십시오. 원하는 경우 모델 계층을 db 계층과 분리 할 수도 있습니다. 응용 프로그램 구조를 더 잘 분리하면 코드가 더 쉽게 관리 할 수 ​​있습니다.

+0

실제로 "모델 레이어"는 [전체] (http://martinfowler.com/eaaCatalog/serviceLayer.html)입니다. 당신이 언급 한 것은 보통 "도메인 계층 (domain layer)"또는 "도메인 모델 (domain model)"이라고 불리는 프레임 워크가 아닌 문헌입니다. –

+0

당신이 이것을 어떻게 부르는지 느껴보십시오. 디커플링과 분리는 옳은 방법입니다. 물론 프레임 워크의 모델은 전체 일 수 있지만 비즈니스 로직을 나타내지 않는 클래스를 모델이라고 부를 수 있습니까? ;-) –

+0

어디에서 전화 하시겠습니까? "모델"은 수업이 아닙니다. –