문제

플러그인에서 사용하는 테이블의 이름 지정 규칙은 일반적으로 플러그인의 이름으로 시작한 다음 모델이 복수화됩니다. 예를 들어, Pollpoll이라는 모델과 Polltag라는 다른 모델이있는 Poll이라는 플러그인이 있다고 가정 해 봅시다. 그들은 또한 HABTM 관계를 가질 것이므로 그 테이블 이름의 협약은 무엇입니까? 폴링 _poll_polls_poll_tags는 그것이 약간 중복되지만 첫 번째 poll_가 플러그인의 이름을 나타내기 때문에 의미가 있지만 poll_polls 및 poll_tags는 모델과 관련이 있습니다.

1.3의 플러그인에 대한 명명 규칙도 변경 되었습니까? 위에서 언급 한 것이 정확합니까?

도움이 되었습니까?

해결책

Cake 1.3에 대해 잘 모르겠지만 (아직 사용하지는 않지만), 이것이 옳다면 이것은 컨벤션을 깨고 결합을 정의하는 완벽하게 허용되는 사례와 모델 관계 및 플러그인의 외국 키를 정의하는 것처럼 들립니다.

플러그인에 가입 테이블이 필요한 이유는 무엇입니까? 디자인 문제처럼 보입니다. 아마도 이것이 필요한 경우가있을 수 있지만 플러그인과 habtm 관계가 있다면 추가 할 것입니다. modelname 플러그인 테이블의 열, 플러그인을 사용하려는 각 모델에 새 테이블을 만들지 않고 플러그인 테이블에 열립니다.

다른 팁

실제로 "플러그인에서 사용하는 테이블은 일반적으로 플러그인의 이름과 모델이 복수화 된 모델로 시작하는 것은 아직 컨벤션이 아닙니다.

그 아이디어가 소개 된 유일한 곳은 들어 있습니다 책의 예, 실제로, "네임 스페이스 컨트롤러를 부모 애플리케이션과 충돌하지 않기 위해 플러그인 컨트롤러를 비교적 고유 한 이름으로 지정하는 것이 좋습니다. 컨트롤러 이름으로 창의력을 발휘하거나 플러그인 이름을 클래스 이름으로 전제하는 것이 좋습니다. . "

테이블/모델/컨트롤러/보기 이름은 일반적인 CakePHP 명명 규칙을 따라야하며 네임 스페이스 충돌을 피하기 위해 합리적인 예방 조치를 취해야합니다. 따라서 플러그인 막대에 "foo_order"모델에 대한 "foo_orders"테이블을 갖는 것은 완벽합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top