이전 코드베이스를 Symfony 2.2 프레임 워크로 옮깁니다.비즈니스 로직을 배치 할 곳은 Symfony 2 모델 레이어입니까?
제 기사에서 내 기사 엔티티에 현재 기사의 URL을 반환하는 getUrl() 메서드가 있습니다.
Symfony에서 나는 라우터 서비스를 사용하여 이러한 URL을 생성해야합니다.
엔티티 내부에서 라우터에 액세스 할 수 없으므로 프레임 워크가 실제로 지원하지 않는 것이 좋지 않습니다.
Twig 도우미 path()을 사용하여 Twig 템플릿 자체에서 라우터를 호출하고 URL을 구성하는 데 필요한 아티클 인스턴스의 모든 인수를 제공 할 수 있습니다. 그러나이 방법은 URL 형식 규칙을 변경하기로 결정할 경우 매우 좋지 않습니다.이 모든 호출을 찾아 다시 작성해야합니다 (DRY이 아님).
저는 비즈니스 로직 캡슐화를 여기에 저장하고 뷰 레이어에 모든 용기를주지 않으려합니다.
이 상황에서 어떻게 진행해야합니까?
고마움 팔! 이 접근 방식에 대해 생각해 보았습니다. 좀 더 경험이 많은 사람의 확인이 필요했습니다.) 다른 클래스에서 모델 엔티티를 관리하는 것이 정말 마음에 들지 않지만이 옵션은 실용적인 옵션 일뿐입니다. –
액티브 레코드 ORM을 사용 중이라면, 이는 확실히 외국 접근 방식처럼 느껴집니다. 하지만 시간이 지남에 따라 걱정을 나누고 이전에 어떻게 관리했는지 의아하게 생각할 것입니다. –
@SlavaFominII 이것은 좋은 해결책입니다. 동일한 "모델"개체를 가지고 있다면 같은 Manger에 저장하거나 애플리케이션의 모든 엔티티에 대한 관리자 (즉, 서비스)를 보유하고 있으며, 때로는 불가능할 수도 있습니다. – DonCallisto