2013-03-13 1 views
1

Symfony2 구조와 번들로 모델을 찾고 있었지만 아무 것도 없습니다.Symfony2에/like 모델이없는 이유는 무엇입니까?

Symfony2에 모델이없는 이유는 무엇입니까?

MVC가 잘못된 방법입니까?

실제로 CodeIgniter가 모델을 사용할 필요가 없다는 것을 알고 있기 때문에 나는 궁금합니다. 어떤 상황에서는 컨트롤러 나 모델에 모든 것을 배치 할 수 있습니다.

누군가 더 깊이 설명 할 수 있습니까?

+2

저는 CodeIgniter에서 Symfony로 바꿨습니다. 이것이 제가 작성한 최고의 결정 중 하나였습니다. CodeIgniter는 일종의 Model 시스템을 가지고 있습니다 : http://ellislab.com/codeigniter/user-guide/general/models.html ..하지만 일반적인 ORM은 아닙니다. – hacfi

답변

4

Symfony2 이전의 Fabien Potencier는 Symfony에 속한 모델을 생각하지 않기 때문입니다. 그래서 그는 대신 HTTP 프레임 워크라고 불렀습니다. "What is Symfony2?"

가 [...] 당신이 Symfony2이 컨트롤러 부분보기 부분에 대한 도구를 제공에 대해 정말 알고 있어야합니다,하지만 모델 부분 :이 그가 쓴 문서를 참조하십시오. 손으로 모델을 만들거나 ORM과 같은 다른 도구를 사용하는 것은 사용자의 몫입니다. 물론 Doctrine2와 Propel과 같이 가장 잘 알려진 ORM에 대한 긴밀한 통합이 존재합니다. 그러나 이들은 선택적 종속성입니다. Symfony2 핵심 기능은 어떠한 ORM에도 의존하지 않으며 절대 사용하지 않을 것입니다.


는 Doctrine2 ORM 클래스에 매핑 데이터베이스의 제어를 인수하기 위해 저장소를 사용합니다. 저장소에 사용자 정의 메소드가 있으려면 create your own repository을 사용할 수 있습니다. 이는 저장소가 일종의 모델로 간주 될 수 있음을 의미합니다.

+3

Doctrine2 ORM은 멋진 프로젝트이며 Symfony Framework Standard Edition이 함께 제공됩니다. – hacfi

2

그들은 원하지 않았기 때문에.

엄숙한 대답이지만, 프로그램하기에는 돌로 설정이 없습니다. 여러 가지 방법론이 있으며, 원할 경우이를 따라갈 수 있지만 아무도 당신을 만들지 않습니다. 이 경우, Symfony2가 결정한 모델의 개발자는 필요하지 않았습니다.

MVC가 잘못되었음을 의미하지 않습니다. 나는 세단 형 자동차를 소유하고있다. 그러나 만일 당신이 SUV를 소유하면, 그것이 틀리게하고있는 것을 의미 하느냐? 일을 끝내기위한 다른 방법.

1

적절한 MVC에는 "모델"이 없기 때문에. 모델은 계층입니다. 프레젠테이션 레이어 (컨트롤러, 뷰 및 템플릿 포함)와 동일합니다.

서비스,지도 작성기 및 도메인 개체 대신 찾고 싶은 내용은 무엇입니까? 그것들은 모델 레이어의 더 일반적인 부분입니다.

+1

당신의 로직에는 컨트롤러가 없으며 단지 "컨트롤러 레이어"입니다. 그것에 대해 생각해보십시오. ;) – Derfder

+0

@Derfder 컨트롤러는 표현 계층의 일부입니다. 어떤 단어로 혼란 스러웠습니까? –

관련 문제