2010-07-17 2 views
2

각 응용 프로그램마다 ZF 라이브러리 코드 사본을 갖고 있거나 드라이브의 한 영역에 코드를 포함하고 포함 경로에 있는지 확인하는 것이 가장 좋습니다. 각 응용 프로그램을 자체 복사본으로 만드는 것이 배포 문제 (예 : Windows에서 개발 및 Linux에서 배포)를 피하는 가장 좋은 방법 인 것 같습니다.Zend Framework 라이브러리 모범 사례?

Netbeans을 IDE로 사용하고 있는데, 새로운 Zend 프로젝트가 생성 될 때 파일을 복사하지 않습니다 (라이브러리 폴더가 비어있는 상태에서 모든 하위 폴더에 Zend 폴더가 있어야 함). 나는 프레임 워크에 대해 하나 개의 코드베이스를 사용하는 모든 응용 프로그램은 거기에서 그것을 참조)

, 당신은 최신 버전으로 업그레이드 할 경우 모든 ... 설치에

답변

1

는, 당신은 거라고 그렇게해야합니다.

+0

공정한 점. 그럼 배포 문제는 어떻게 처리합니까? 다른 서버로 갈 때 경로를 참조하는 코드를 변경하십시오. 또는 어쩌면 당신은 사용할 수 있습니다 ... 나는 PHP 용어지만, application.ini 잊어과 위치를 가리키는 다른 설정이 있습니까? –

+1

모든 응용 프로그램에는 라이브러리 용 '라이브러리'폴더가 있습니다. 젠드 (Zend) 나 독트린 (Doctrine)을 위해 서버에 공유 라이브러리 폴더가있다. 따라서 모든 배포에서 공유 라이브러리의 Zend 폴더를 앱의 로컬 라이브러리 폴더로 심볼릭 링크합니다. 우리는 자동 배치에 Capistrano를 사용하므로 물건을 간단하게 만듭니다. –

1

모든 다른 응용 프로그램에서 사용되는 모든 Zend Framework 버전을 포함하는 공용 폴더가 있습니다. 각 앱에서이를 참조합니다. 그래서 우리가 같은 디렉토리 구조를 가지고 :

htdocs/common/zend-1.10.1/ 
htdocs/common/zend-1.10.2/ 
htdocs/apps/app1 
htdocs/apps/app2 

우리가 프로덕션 환경에있는 그러나 경우 - 인스턴스 APP1은 그것의 자신의 서버에 전개 된 위해, 우리는 단순히 루트/htdocs에 폴더 (그래서 모든 업로드 APP1하기 app1 폴더의 내용을 서버의 htdocs에 저장). 그런 다음 공용 폴더를 만들고 특정 응용 프로그램에서 사용중인 모든 라이브러리를 업로드합니다.

우리는 공통 폴더로 define(COMMON_PATH, $_SERVER['DOCUMENT_ROOT'].'/common')을 사용하므로 다른 디렉토리 구조에는 추가 구성이 필요하지 않습니다. 그런 다음 우리 application.ini에서 사용할 수 있습니다. zendpathorwhatever = COMMON_PATH "/zend-1.10.2

이렇게하면 우리가 사용하는 각 zend 프레임 워크 버전 중 하나의 사본 만 만들 수 있습니다. 제작을 위해 필요한 항목 만 업로드하면됩니다.

응용 프로그램 요구 사항마다 사용되므로 각 응용 프로그램에는 항상 자체 라이브러리 폴더가 있습니다. 모든 응용 프로그램이 라이브러리를 사용하고 있다는 사실이 밝혀지면 공용 폴더에 저장합니다.

전반적으로 관리하기 쉽고 SVN Externals에서 사용하는 경우 꽤 우아한 해결책으로 밝혀졌습니다.