Elbette, 'test, sertifikalı' bit bazı ortamlarda güzel. Bizim durumumuzda, denetim gereksinimleri, biz ya bir sertifikalı yazılım yığını kullanmak, ya da biz kendi başımıza gitmek ama biz bunun içine beslenir her küçük bileşene hızlı güncellemeleri yapıyoruz göstermek zorunda. Yani, aklı amaçlar için, biz tarihsel Linux dağıtımlarının standart teklifleri ile gittim. Bu sorun onlar yıl eğri arkasında olma eğilimi olmasıdır. Örneğin, çoğu dağılımları sadece son 5,1 (!) Ile sıkışmış sonra PHP 5.3 benimsemiştir. Eğer modern kodlama teknikleri kullanan çağdaş uygulamaları geliştirmek için çalışıyoruz, artı PHP performans ve güvenilirlik açısından bir ton kadar veriyoruz zaman bu sadece kabul edilebilir değil.
Özellikleri de oldukça güzel olduğunu söyledikten sonra. @ Keven zaten iş kuyruğunu bahsetti. O biz çok kolay uyumsuz çalışacak görevler her türlü boşaltma ve ana talebi süreci uçan tutabilir, bizim için harika. Olayların belirli türleri ne zaman bir örnek olarak, bizim uygulamalardan biri bizim bug tracker görevleri oluşturur. Bu web servisi tarafından yapılır ve hata izci horrendously yavaş olduğu gibi, bu birkaç saniye sürebilir. Aksine bizim uygulama bekleme kullanıcıları yapmak yerine, ancak, biz sadece bir iş sıraya ve arka planda çalışmasına izin. Aynı şekilde, bizim standart e-posta sınıfı kullanıcı bekleyin yapım işi kuyruğunu yerine kullanır iken bir SMTP sunucusuna bizim kod konuşur. Ve bütün bu bile, vb, vb, büyük raporlar üreten veritabanı bütünlüğü kontrolleri çalışan, önbelleklerini yeniden inşası gibi şeyler için yararlılığını dokunmadan değil
Sayfa önbellek sadece bir tam sayfa önbelleğe ve onunla yapılabilir durumlar için mükemmeldir. Biz PHP'nin kendi önbelleğe kontrollere daha iyi kontrole sahip çünkü biz, bizim WSDLs ile kullanabilirsiniz. Aynı şekilde, indirme sunucu görüntüleri gibi, belirli içerik türlerini önbelleğe alma için harika. Ve biz büyük ölçüde yavaş ağ üzerinde başka bir yerde oturan yavaş bir veritabanı sunucusuna bir sorgu yaparak kaçınarak istekleri her türlü hızlandırmak için yerel memcached sunucusu gibi veri önbelleğini kullanır.
@ André bahseder gibi ve tabii ki, orada, raporlama özellikleri bazı çok güzel hata ayıklama, izleme, ve olay vardır.
Kritik iş uygulamaları ile çok önemlidir dağıtımları ve kurtulma yapmak için bazı güzel özellikleri de vardır. Ben bir gün bu denemek niyetinde, ama şimdi, ben hala ZS kullanmadan önce araya araçlarını kullanıyorum.
Şimdi, birlikte diğer çeşitli araçlar cobbling tarafından bu özellikleri (özellikle, tüm önbelleğe alma bit) en alabilirsiniz. Ama sonra bir şey güncellendiğinde uygun entegrasyon test yapıyor dahil, araştırma ve öğrenme tüm bu şeyler, hepsini yüklü ve birlikte çalışma olsun, ve sonra hepsini korumak zorundayız. Bu bir lot iş ve zaman var - zaman ben şahsen çok kod yazmaya harcamak istiyorum.
Tüm söyledikten sonra, olumsuzlukları vardır. Biri için, işler bazen ... yarı-pişmiş ve / veya kötü tasarlanmış hissediyorum. Varlığından olmayan bir öğeyi almak için deneyin, örneğin, veri önbelleği API döndürür false boolean. Ve, bir öğesi de getiriliyor olmadan varsa kontrol için hiçbir işlevi yoktur. Bu ne demek sanırım: güvenle alamaz çünkü güvenli bir Boole değeri saklamak olamaz. Bu kötü belgelenmiş APC uyumluluk katmanı içerir, ancak APC varlığı işlevini kullanmak için çalışırken bir tanımsız-fonksiyon hatası üretir.
Başka bir örnek olarak, bizim geliştirme istasyonları için Mac kullanmak, ancak PHP sunucu yazılımı üzerinde binlerce damla orada tüm bu profesyonel geliştiriciler tarafından çalıştırmak eğilimindedir eski donanımla uyumluluk üzerinde bir ölçüde yanlış endişe dışında, Zend gemi seçti (sadece kalkınma için) Mac sürümü 32-bit olarak only. Bu yüzden her yerde 64-bit çalışan 32-bit bir uygulama geliştirmek zorunda konum. Bu oldukça az hata neden ve oldukça geliştirme, test, evreleme, QA ve üretim ortamlarında özdeş bir yazılım yığını olan ZS, temel amaçlarından birini öldürür bizim uygulama, otomatik testler başarısız oldu. Ben bu değişen bunları konuşmaya çalıştım, ama onlar hızla beni görmezden başladı.
Başka büyük bir iş kuyruğu sadece HTTP istekleri ile işlerini işleyebilir olmasıdır. API (çok daha mantıklı bir komut satırı çağrısı gibi) diğer yöntemleri sağlamak için kurulmuş, ancak HTTP işleri hepsi olur. Bu, tasarım, uzun süren olma eğilimindedir ve böylece web bağlam dışına alınmalıdır görevleri ile web sunucusu bağlantılarını bağlamak için zorlar. Ve bu bir tarayıcıya URL ziyaret ederek işleri tetikleyecek edememek dünyayı tutmak için çemberler üzerinden atlamak için sizi zorlar. Bu sadece aptalca bir karar.
Diğer örnekler Zend Monitor, shebang hattı, önbellek sağlık ve performans raporlama tam (mutlak) eksikliği tetiklediği zaman Mac tatili PHP ikili için php-cli sargıya API yoluyla gönderilen özel olayların kötü işleme vardır araçları (bu ZS 6 değişiyor dedi ama), ve utanç verici eksik belgeler. I could go ....
Şimdi, belli ki, sürüş boyunca gelip bu olumsuzlukları ve boşa zaman ve kaynaklar bizim için faydaları galip değil, ama biz harcadığımız para miktarı için, ben kesinlikle daha bekliyoruz.