저는 CakePHP를 조사하려고하는 자바 프로그래머입니다 - 현재 어플리케이션 구조/디자인에 문제가 있습니다. 핵심 논리를 어디에 둘 것인지 이해할 수 없었습니다. 내가 JavaEE 어플에서 개발하고 때 CakePHP - 서비스 로직을 넣을 곳
는, 일반적인 방법은 다음과 같습니다 :모델 클래스는 데이터 엔티티 표현 간단한 콩 (제품, 사람 등)이다 - 대부분의 getter/setter를 가진 데이터 구조와 같은;
컨트롤러 클래스는 필요한 데이터를 집계하여 전용 뷰 템플릿에 주입 한 다음 사용자에게 전송하는 데 필요한 간단한 클래스입니다.
DAO (DataAccessObject) 또는 저장소 클래스는 엔터티를로드하여 데이터베이스에 저장할 수있는 클래스입니다.
서비스 클래스는 일반적으로 컨트롤러, 다른 서비스 또는 예약 된 작업에 의해 호출되는 특정 비즈니스 논리 메서드를 포함하는 단일 요소이며 다른 한편으로는 DAO/Repository 메서드를 호출하여 데이터를 페치하거나 수정합니다. 나는 사용자가 어떤 제품을 선택하고 작성해야이
Person
에 대한new Order
"내 카트/바구니에 넣어 '클릭 실체Person
,Product
및Order
을 가지고있는 경우이Product
이 추가되어야한다 예를 들어
Order
(Person
은 나쁜 채무자가 아니고, 점포 등에는 Product
가있는 것을 확인할 수 있습니다) -이 모든 작업은 일부 컨트롤러에서 호출하는 OrderService
의 방법으로 수행됩니다. 모든 서비스와 컨트롤러가 지금은 약간이 모두 CakePHP의에서 수행하는 방법에 대해 당황하고 등 필요한 서비스
에 대한 링크를 가질 수 있도록
일반적으로 IOC의 어떤 종류 (제어의 반전이)가 사용됩니다. 이 비즈니스 로직 등은 어디에 두어야합니까?
설명 해 주셔서 감사합니다. ActiveRecord 패턴에 대해 언급하면 좀 더 명확 해집니다. 귀하의 개인적인 견해에 관해서 - 어떤 PHP 프레임 워크가 MVC 아이디어와 우수 사례를 따르는 것이 더 낫다고 생각하십니까? –
@RodionGorkovenko, 현재 가장 좋은 코드 연습은 Symfony2입니다. 그러나 그것은 치료 수업에서 가장 똑똑한 것과 같습니다. 그리고 Sf2는 [MVC 프레임 워크가 아닙니다] (http://fabien.potencier.org/article/49/what-is-symfony2)입니다. 하지만 MVC 디자인 패턴을 사용할 수 있어야합니다. "MVC 프레임 워크"라고 주장하는 대부분의 PHP 프레임 워크는 MVC의 RubyOnRails 해석 (뷰는 템플릿이며 ORM 모델 임)을 따르고 있으며 모든 단점이 포함되어 있습니다. –
@ tereško의 답변을 사랑해주십시오. 계속 지켜주세요! –