2012-05-25 2 views
1

Symfony2를 처음 접했고 여러 테이블 (엔티티)을 업데이트 한 클래스를 어디에 저장해야하는지 잘 모르겠습니다.Symfony2에서 멀티 엔티티 클래스를 저장할 폴더는 무엇입니까?

설명서 및 튜토리얼을 읽으면 엔티티 클래스 내에 다른 테이블 참조를 두어서는 안된다. 컨트롤러 클래스 안에 넣을 수도 있지만, 다시 한번 많은 사람들이이 클래스는 비즈니스 로직을 포함하지 않고 가능한 단순해야한다고 말했습니다. 리포지토리에는 쿼리 데이터 용으로 사용되며 업데이트 또는 삽입 용으로 사용되지 않기 때문에 리포지토리에 없습니다.

여러 엔티티 (테이블) 작업을위한 다른 유형의 클래스를 저장해야하는 표준 폴더 구조가 있습니까? 비즈니스 로직을 실제로 컨트롤러 클래스에 저장해야합니까?

답변

1

Symfony2는 이와 관련하여 매우 유연합니다.

네가 맞다. 엔티티는 하나의 "테이블"만을위한 것이다.

컨트롤러에서 별도의 클래스로 코드를 옮기는 좋은 방법이기 때문에 Services을 살펴 보시기 바랍니다. 기본적으로 서비스를 호출하고 제공하는 기능을 사용합니다. 이렇게하면 컨트롤러가 줄어들 것입니다.

+0

서비스? 나는 서비스가 이것을 위해 사용될 수 있다고 생각했지만 확실하지 않았습니다. 나뭇 가지 확장과 같은 서비스를 사용했습니다. 나는 이것이 최선의 선택이라고 생각한다. 인보이스에 제품을 추가하는 서비스를 만들면 인보이스 금액이 업데이트되고 목록에 제품이 추가되며 내역 테이블에 내역이 추가됩니다. – Apot

+0

예, 적어도 이것은 제 해석입니다. 나는 프로젝트가 어떻게 구조화되어야하는지에 대한 명확한 예를 발견하지 못했다. 나는 Github의 번들을 매우 유용하다고 생각합니다. 특히 FriendsOfSymfony (FOS)의 것들은 Symfony 표준에 매우 충실합니다. – cvaldemar

관련 문제