ZF2 스켈레톤을 기반으로 새 프로젝트 용 새 ZF2 응용 프로그램을 설정하기 시작했으며 Models에 대한 자습서를보고 있습니다.ZF2 모듈간에 공유되는 모델
tl; dr : 여러 다른 모듈 사이에서 더 높은 수준 (외부/모듈)의 어딘가에 모델을 배치하려면 어떻게해야합니까?
우리는 여러 모듈 설정과 같이이 있습니다
/
/module/ModuleName
/module/ModuleName/config
/module/ModuleName/src
/module/ModuleName/src/ModuleName
난 그냥 폴더 /module/ModuleName/src/ModuleName/Model/TableName.php
설정에 대해,하지만 그때 깨달았 : 해당 테이블뿐만 아니라 다른 모듈에 액세스 할 수 있도록해야합니다. 그래서 내가 무엇을해야하니?
Models 폴더를 /module/Model
에두면 좋을까요, 즉 모듈 (현재 설정에 따라 site/model)로 처리 될 것입니다.
장소간에 모델을 복사하여 붙여 넣어야합니까? 어딘가에 /vendor/library/Company/Model
에 모델을 다시 붙여야합니까? 이것에 대한 모범 사례가 있는지 확실하지 않습니다!
질문 2 :이 튜토리얼에서는 ServiceManager를 사용하여 동일한 인스턴스를 사용하도록 데이터베이스 모델을 인스턴스화하는 방법을 제안합니다. 5 개의 컨트롤러가있는 모듈을 각 컨트롤러가 완전히 별개의 테이블 (4 개의 테이블 각각)에 액세스하는 경우 어떻게됩니까? 그것은 나에게 그것이 각 페이지로드 (모듈의 다른 컨트롤러에 대한)에 16 개의 테이블을 중복으로 초기화하는 것으로 보입니다. 단일 테이블 초기화는 페이지로드에 55ms를 추가합니다. 이 주변에 방법이 있습니까 ?? 내가 튜토리얼이 테이블 게이트 웨이를 초기화하는 것을 기반으로 컨트롤러의 액션으로 설정을 어떻게 옮길 지 확신하지 못한다.
답장을 보내 주신 Andrew에게 감사드립니다. 당신 말이 맞아요. # 2, 나는 wincachegrind에서 잘못된 것을보고있는 것처럼 보입니다. 좋은 소식! 몇 가지 튜토리얼에서'UserMapper'를 많이 보았습니다 - 단지 예제일까요, 아니면 실제 ZF2일까요? # 1에 관해서는 : 그래서 만약에'Manufacturing \ Model \ WorkflowTable '=> function ($ sm) {..}'을 등록하면,'$ this-> getServiceLocator() -> get() 'Manufacturing \ Model \ WorkflowTable')'다른 라이브러리에 있습니까? 모델을 기본 모듈로 사용하는 것이 더 표준적인 방법일까요 ?? – Benno
예, 모든 모듈에서 호출 할 수 있습니다. 모든 Service Manager 구성이 결합되어 모든 모듈에서 아무 것도 가져올 수 없습니다. – Andrew
UserMapper는 제가 사용했던 예일뿐입니다. 사람들이 DataMapper 매퍼를 사용하는 일반적인 시나리오입니다. 패턴 – Andrew