문제

"최신 PHP 워크플로" 기사를 읽은 후 php|architect 매거진 2008년 11월호 단위 테스트에 대해 논의했습니다 (phpUnit), 빌드 도구() 및 지속적인 통합(신크), PHP에 사용할 수 있는 일부 도구, 특히 Phing에 대해 자세히 알아보는 데 영감을 받았습니다.

과거에는 라이브 사이트를 전복 작업 복사본으로 실행하고 프로덕션 상자에서 "svn update"를 실행하여 최신 버전의 코드를 배포함으로써 프로덕션 서버에 대한 배포를 자주 처리했습니다.

PHP 코드용 빌드 도구를 사용하시나요?Subversion에서 직접 배포하는 것보다 어떤 이점이 있다고 생각하시나요?무엇을 주의해야 하며 어떤 문제에 직면할 수 있나요?

도움이 되었습니까?

해결책

나는 Phing과 Ant를 모두 사용해 보았고 후자를 훨씬 더 선호합니다.나는 처음에 Phing이 PHP로 작성되었기 때문에 Phing을 선택했지만 솔직히 말하면 Ant만큼 성숙하지는 않습니다.결국 대규모 커뮤니티를 갖춘 성숙한 빌드 시스템을 갖는 것이 더 가치가 있습니다.

Ant/Phing으로 수행된 작업:

  1. 기본 체크아웃에서 특정 언어로 현지화하고 종속성이 있는지 확인하세요(다른 libs, 디렉터리 등).
  2. 가지고 있다면 템플릿 등을 컴파일하세요.
  3. 체크아웃된 코드 버전에 따라 대상 데이터베이스를 필요한 버전으로 가져옵니다.
  4. 단위 테스트 실행 등

다른 팁

Phing에서 볼 수있는 큰 문제는 불필요한 간접 층을 생성한다는 것입니다. PHP는 스크립팅 언어이므로 직접 실행할 수 있습니다. Phing의 XML 구성 사용은 언어에 적합하지 않습니다.보다 읽기 쉬운 선언 구성을 제공하지만 언어의 유연성을 희생하는 비용으로. ANT (그 경로에 대한 영감)를 사용하면 Java가 동적이지 않고 컴파일이 필요하기 때문에 유연성이 없기 때문에 의미가 있습니다.

불행히도 나는 PHP 공간에서 많은 훌륭한 대안을 보지 못했고, 다른 언어 빌드 도구는 문화의 필수적이거나 문화의 일부가 아니므로 다른 잘 지원되는 옵션의 진화는 곧 발생하지 않을 수 있습니다.

그러므로 나는 어떤 PHP에 더 가까운 옵션을 고수합니다. ~할 수 있었다 건축 도구를보다 적극적으로 지원하는 문화에서하십시오. 나는 보통 사용합니다 gradle. 갈퀴 또한 어떤 언어를 속이고 싶은지에 따라 훌륭한 일을합니다 (다른 유사한 옵션이있을 수 있음). 또한 해당 유형의 물건을 사용하는 경우 Webdriver 지원과 같은 것들도 무게를 측정해야합니다. 그렇지 않으면 PHP 및/또는 Bash를 사용하여 가벼운 솔루션을 생성하면 투명성을 유지하면서 모든 것을 덮어야합니다.

나는 Phing을 보았다. 내가 진행중인 프로젝트의 경우 실제로 사용하고 있습니다 아파치의 개미. 나는 그것을 여러 가지 일을하는 데 사용합니다.

  1. JavaScript와 CSS를 결합하고 압축하십시오 ( 유비 압축기
  2. 프로덕션 구성 파일로 표준 구성 파일 교체 (예 : config.php.production to config.php)
  3. 필요없는 파일 제거 (예 : 개미 빌드 파일, build.xml)

나는 Phing이 Native PHP이기 때문에 개미를 볼 가치가 있다고 생각합니다. 또한 제작 환경으로 이동할 때 성능 문제를 찾아서 파일을 복사/이동하는 것 이상의 작업을 수행하는 경우. YUI 압축기가 내 지역 기계에서 잘 달린 문제가 있었지만 비교적 작은 VPS에서는 매우 느 렸습니다.

지금 진행중인 프로젝트에서 우리는 사용 중입니다 phpundercontrol 무언가가 깨질 때 테스트를 실행하고 빠른 피드백을 받으려면. 우리는 그것을 사용하여 다른 테스트와 같은 다른 테스트를 실행할 계획입니다. Watir.

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