2009-10-02 2 views
6

이것은 주로 PHP에 관한 질문입니다. 궁금한 점은 : (프로덕션) 서버에 배포 할 때 필요한 모든 라이브러리가 응용 프로그램과 함께 제공되는지 어떻게 확인합니까?PHP를 사용하여 배포하는 동안 라이브러리 종속성을 어떻게 처리합니까?

더 구체적인 예 : Zend Framework에서 실행되는 응용 프로그램이 있고 응용 프로그램을 서버로 롤아웃 할 때마다 배포 프로세스에서 해당 시스템에 새로운 "설치"를 만듭니다. 따라서 Zend Framework를 내 응용 프로그램과 함께 묶은 다음 파일을 적절한 위치에 함께 복사해야합니다 (자동으로 수행됩니다). 현재 배포 할 때 Zend의 SVN 시스템에서 파일을 가져 오기 위해 svn : externals 정의를 사용하고 있습니다. 그러나 SVN에 의존하고 싶지 않고 각 배포시 외부 SVN에 트래픽을 넣고 싶지 않습니다. .

Java 세계에서 나는 중앙 유물 리포지토리를 사용하여 그런 물건을 다루는 Maven에 익숙하다. 그러나 Maven4PHP 버전이 있다는 것을 알고 있습니다. 그러나 PHP 기반 솔루션을 더 찾고 있습니다. 또한 PEAR이 응용 프로그램 (libs 포함)을 단일 배포 가능으로 묶는 요구 사항을 실제로 이행하지 않기 때문에 PEAR이 좋은 방법이라고 생각하지 않습니다.

이미 알고있는 도구가 있습니까? 아니면 내가 알아야 할 위대한 기술이 있습니까?

도움을 주셔서 감사합니다.

마이클 PHP로 작성하고 아파치 Ant를 기반으로 Phing라는 빌드 시스템이있다

답변

3

.

나는 개인적으로 매우 잘 외부와 살 수 있습니다.

+1

네, 저는 Phing을 알고 있습니다! 종속성을 해결할 수있는 기본 작업이 있습니까? 아니면 내 일을 쓰는 것입니까? 감사! –

+0

@Michael 나는 더 간단한 접근 방식으로 phing과의 의존성을 다룬다. 그것은 의존성 작업이 될 것만 큼 강력하지 않을 수도 있지만, 임포트 작업을 포함하도록 설계된 간단한 빌드 스크립트 인 phing helper를 가지고 있습니다. 프로젝트 도우미에서 foreach 인 resolve-deps 작업을 정의합니다 종속성을 정의하는 속성이 할당 된 외부 빌드 스크립트에 대해 phing 작업을 실행합니다. –

0

아직 제작 준비가되어 있지 않지만 Phark 프로젝트를 계속보고 싶을 수 있습니다. 그것은 PHP에 Bundler의 포트입니다.

Simplify your external dependency management 슬라이드를 보면서 나는 PEAR 설치 프로그램으로 사용할 수있는 pantr 도구를 발견했습니다. pantr as PEAR installer을 사용하면 프로젝트 별 파일에서 의존성을 지정할 수 있습니다.

기사 Version Control != Dependency Management

3

Pyrus 내가 vendor branching이 매우 간단하여 예에서 문제를 해결할 것이라고 생각이라는 새로운 PEAR 설치 프로그램을 사용하는 방법에 대한 몇 가지 정보를 가지고 있지만, 당신은 또한 대규모 저장소를 좋아하지 않으면 내가 추천했던 composerwhat it solve과 같은 현대 장난감을 계속 보려고합니다. (어쩌면 phark라고 들었습니다.)

+0

+1 작곡가를 언급 한 적이 있지만, 이것은 오래된 질문입니다. 그러나 지금까지 PHP 프로젝트의 절대 다수는 의존성 관리를 위해 작곡가를 사용합니다. –

관련 문제