PHP build / entegrasyon araçları: Eğer bunları kullanıyor musunuz?

4 Cevap php

After reading the "Modern PHP workflow" article in the November 2008 edition of php|architect magazine which discussed unit testing (phpUnit), build tools (Phing) and continuous integration (Xinc), I'm inspired the learn more about some of the tooling available for PHP, especially Phing.

Geçmişte sık sık bir subversion müsvedde olarak canlı site çalışan ve sadece kodunun son sürümünü dağıtmak için üretim kutusunda bir "svn update" çalıştırarak bir üretim sunucusuna dağıtım ele ettik.

PHP kodu için araçları oluşturmak kullanıyor musunuz? Ne gibi avantajlar Eğer onlar tahrip doğrudan dağıtımı üzerinde sunduğuna inanıyoruz? Ne için dışarı bakmak gerekir, ya da ben ne FRİKİKLERİNDEN yüz olabilir?

4 Cevap

Ben Phing ve Ant hem de kullanılan ve ikincisi çok daha fazla tercih ederim. Ben başlangıçta nedeniyle o Ant kadar olgun değil ama dürüst olmak gerekirse PHP yazılmış olması Phing gitti. Sonunda, büyük bir topluluk ile olgun Buildsystem olması daha değerlidir.

Ant / Phing ile yapılan şeyler:

  1. Belirli bir dil için bir üs çıkış loalize itibaren, bağımlılıkları vardır (diğer kütüphaneleri, dizinleri, vb) sağlamak
  2. Bunları varsa, şablonlar derlemek, vb
  3. Teslim kod sürümüne bağlı olarak, gerekli sürüme kadar hedef veritabanı getirmek
  4. birim testleri, vb çalıştırmak

Ben Phing ile görmek büyük bir husus yönlendirme bir gereksiz tabakası oluşturur olmasıdır. PHP bir betik dili, ve bu nedenle doğrudan çalıştırmak olabilir. XML yapılandırma Phing kullanımı dil için kötü uyum: Bir daha okunabilir bildirge yapılandırma sağlamaz, ancak dilin esnekliği herhangi bir ödün pahasına. Daha az dinamik ve derleme gerektirir anlamda Java bu esneklik yoktu beri Ant (Bu yol için ilham) ile yapar.

Ne yazık ki PHP uzayda çok iyi alternatifler görmedim, ve diğer dillerden farklı araçları inşa yani başka iyi desteklenen seçeneği evrimi her zaman yakında gerçekleşmesi olmayabilir olarak gerekli ya da kültürün bir parçası değildir var.

Ben bu nedenle daha agresif araçları oluşturmak desteklemek kültürlerden PHP could ne yakın seçenekler sopa istiyorum. Ben normalde kullandığı Gradle. Rake da (ve diğer benzer seçenekler olabilir) hile istediğiniz dil ile bağlı büyük bir iş yok. Eğer şey bu tür içine eğer Ayrıca Webdriver desteği gibi şeyler tartmak gerekir. Şeffaflığı koruyarak Aksi takdirde PHP ve / veya BASH kullanarak hafif bir çözüm oluşturmak her şeyi kapsamalıdır

Ben oldukça harika bakar Phing de baktı. Proje için ben aslında istimal üzerinde çalışıyorum Apache's Ant. Ben bazı şeyleri yapmak için kullanabilirsiniz:

  1. Birleştirin ve Javascript ve CSS sıkıştırmak (kullanılarak yapılır sıkıştırma YUI Compressor
  2. (Örneğin config.php config.php.production yeniden adlandırmak) üretim yapılandırma dosyaları ile standart yapılandırma dosyaları değiştirin
  3. (Örneğin karınca yapı dosyası, build.xml gibi) çıkarın un-gerekli dosyaları

Ben güzel olabilir doğal PHP, çünkü Phing Ant üzerinden bakarak değer olduğunu düşünüyorum. Ayrıca sadece üretim ortamına taşıdığınızda performans sorunları için dışarı bakmak etrafında hareketli dosyaları kopyalamak / fazla bir şey yapıyorsun. Ben YUI kompresör benim yerel makinede iyi koştu ama nispeten küçük VPS süper yavaş bir sorunu vardı.

Bir proje üzerinde ben şimdi phpUnderControl testleri çalıştırmak ve bir şey kırık olduğunda hızlı geri bildirim almak için kullanıyorsanız üzerinde çalışıyorum. Biz de böyle Watir yazılmış bazı diğer testler için kullanmayı planlıyor.