2014-04-15 1 views
0

나는 프로젝트 마녀를 개발하고 콘솔 논리, restfull API, 관리자 및 클라이언트 웹 사이트를 가지고있다.ZF2 아키텍처. 모듈 또는 api, admin, client ect를위한 별도의 프로젝트

저는이 모든 것을 단일 ZF2 응용 프로그램으로 작성하기 시작했습니다. 나는 클라이언트 웹 사이트 및 콘솔 로직, API API 모듈 및 관리 웹 사이트에 대한 관리 모듈에 대한 응용 프로그램 모듈을 사용하고 있습니다. 그리고 나서 단위 테스트를 작성했습니다. 모듈이로드 될 때마다 (예 : 콘솔 스크립트 마녀를 호출 할 때 IMAP을 통해 이메일에서만 작동합니다.) 내 api 문서 도구를 사용하면 경고 메시지가 인쇄됩니다. 서버 이름 없음).

앱 성능이 저하되고 한 부분이 변경되면 다른 부분이 손상 될 수 있습니다. 또한 모든 부분은 정말 다릅니다 (Console, Restfull 및 html 출력, 다른 플러그인, 공급 업체 등).

이제 어떻게이 문제를 해결할 수 있을지 생각합니다. 구조를 유지하고 싶습니다. API는 http://mysite/api, 관리자는 http://mysite/admin, 클라이언트 사이트는 http://mysite/이고 콘솔 스크립트는 php index.php action입니다.

어떻게이 문제를 해결해야합니까? 모든 부품을 ZF2 응용 프로그램을 분리하기 위해 분할해야합니까, 아니면 동일한 프로젝트를 사용해야하지만 다른 오토로더를 사용해야합니까? 아니면 다른 좋은 습관이 있습니까?

답변

0

존재하는 것으로 생각되는 성능 문제를 해결하기 위해 전체 응용 프로그램을 다시 설계하지 마십시오. ZF2의 모듈 부트 스트랩 오버 헤드는 매우 낮습니다. 모듈이 실제로 서로에 대한 의존성이 없다면 애플리케이션을 기준으로 벤치마킹 한 다음 하나의 모듈을 사용 불가능으로 설정하여 모듈 간의 차이점을 확인하십시오. 별로 다르지 않다면 그대로 두겠습니다.

+0

의견을 보내 주셔서 감사합니다. 예 성능은 현재 서비스 아키텍처에서 가장 큰 문제는 아닙니다. 구성 문제가 있습니다. 예를 들어 json 오류를 반환하도록 API/module.php를 변경 한 다음 나중에 json에서 웹 사이트 오류도 반환된다는 것을 알았습니다. 각 모듈을 호출하기 만하면됩니다. 어쩌면로드 된 모듈과 라우트간에 종속성을 만드는 방법이있을 수 있습니다 (예 : 모든 동작에로드되는 swagger 모듈이 있고 설명서를 볼 때만 사용됨). –

+0

경로가 모듈에 저장되므로 일치하는 경로에 따라 모듈을 조건부로로드 할 수 없습니다 (모듈을 모두로드해야 첫 번째 경로를 얻을 수 있습니다). 모듈이 정말로 완전히 별개의 것이라면 아마도 별개의 앱이어야하지만, 이것을 판단 할 수있는 최고의 사람입니다. –