2013-08-15 2 views
0

Symfony2에서 webapp이 포함 된 번들을 만들었습니다. 거기에 내 MySQL 데이터베이스에 매핑되는 일부 엔터티가 있습니다. 그들은 Acme\MyBundle\Entities에 있습니다.Symfony2의 데이터베이스에 매핑하지 않고 비즈니스 로직을 어디에 넣어야합니까?

이제는 MyBundle에서 사용하지 않는 일부 도우미 클래스를 만들었으므로 별도의 번들 (예 : Acme\MyHelperBundle)으로 아웃소싱했습니다. 여기까지는 모든 것이 명확합니다.

하지만 정확히 비즈니스 로직 파일을 어디에 두어야합니까? 나는

  • Acme\MyHelperBundle\Entities 또는
  • Acme\MyHelperBundle\Resources 또는
  • Acme\MyHelperBundle\Resources\src
  • 또는 다른 위치에 넣어합니까?

그리고 이러한 도우미 클래스에 적합한 네임 스페이스는 무엇입니까?

+0

왜 한국 전기 \ MyHelperBundle \ BusinessLogic를? – zizoujab

+0

이것이 좋은 습관이라면? 그것이 내가 묻는 이유입니다. –

답변

2

모델 폴더를 만들고 여기에 비즈니스 로직을 넣고 클래스의 서비스를 만들고 프로젝트의 모든 위치에서 해당 클래스를 사용하는 클래스를 만듭니다.

+0

그래서 모델 폴더는 무엇입니까? 'src','Entity'? 너는 무엇을 제안 하겠는가? –

+0

정말 당신에게 달려 있습니다. 많은 번들은 단순히 번들의 루트에 Model 디렉토리를 만듭니다. – d0001

+0

'Class.php'를 'MyBundle \ Entity'에서 예. MyBundle \ Resources \ src'에 클래스를 찾을 수 없다고 표시됩니다. 나는 네임 스페이스 Acme \ MyBundle \ Entity를 네임 스페이스 Acme \ MyBundle \ Classes'로 설정하고'use Acme \ MyBundle \ Classes \ MyClass'를 통해 사용했지만 작동하지 않습니다 :( –

1

나는 실제 규칙이 없다고 생각합니다. 도우미 클래스가 서비스로 선언 된 경우 (모든 번들에서 사용하려는 경우) 관리자 폴더를 만들 수 있습니다. 그래서 내가 번들에 있고 관리자가있을 때, 나는 내가 어디에서나 재사용 할 수있는 논리를 가지고 있다는 것을 알고있다.

파일을 저장하는 위치에 따라 다르지만, 새로운 요청을 생성하는 UserManager.php와 같은 도우미라면 (그리고 서비스로 선언하면) Manager 폴더는 좋습니다 시작할 장소.

당신은 fosElasticaBundle

PS 같은 많은 번들이 폴더 관리자 찾을 수 있습니다 나의 영어에 대한 미안, 난 충분히 분명 희망 :

관련 문제