Zend Framework Bağlılık - karşı herhangi bir argüman?

6 Cevap php

Ben şimdi yıldır oldukça bir dizi için üzerinde çalışıyoruz bu büyük bir CMS yenileme duyuyorum. Ürünün kendisi harika ama bazı bileşenler, örneğin Veritabanı ve çeviri dersleri, değiştirilmesi acil ihtiyaç - kısmen zamanla bir kaos biraz haline geldi, 2002 kadar geri self-made, ve bir güvenlik denetimi hayatta sorun olabilir .

Yani, (Ben CMS temel yapısını değiştirmek niyetinde değilim gibi, daha tam ya da, komponent Kütüphaneleri) ve Zend Framework iyi sevme ile sona erdi çerçeveleri bir dizi yakından bakıyor oldum. Onlar sağlam bir MVC modeli sunuyoruz ama içine zorlamayın, ve tabii ki (siz Rusça birden çoğul vardır biliyor muydunuz ilgi çok aldık profesyonel bileşenleri bir sürü teklif ve kullanarak onları çevirmek olamaz Basit bir ($number == 0) or ($number > 1) Ben değil mi? geçiş, ancak Zend_Translate Sadece kütüphane ile inşa edilmiş görünüyor thorougness düzeyini göstermek için. işleyebilir.)

Ben Zend yapımı olanlarla sistemin temel bileşenleri yerine başlıyor, tam anlamıyla dönüşü olmayan noktada şimdi duyuyorum. Gerçekten ikinci düşüncelere sahip değilim - ve ben kesinlikle bir alev savaş kışkırtıcılığı arıyorum değilim - ama ileriye gitmeden önce, ben bir an için geri adım ve anything ipe karşı konuşan olup olmadığını bakmak istiyorum Zend Framework yakından büyük bir sistem.

Ben Zend hakkında ne gibi:

  • Bildiğim kadarıyla, çok kaliteli kodunu gördüğünüz gibi
  • Son derece iyi, en azından işler (henüz detaylı API belgeleri kullanmak zorunda değil mi) çalışmak nasıl tanıtımları konusunda belgelenmiş
  • Çerçeve iflah görmekte çıkarı olan bir şirket tarafından desteklenen
  • Peki toplumda alınan, önemli bir kullanıcı tabanına sahip
  • Sevdiğim kodlama standartlarını kullanır
  • Ünite testleri tam bir set ile birlikte gelir
  • Ya da en azından, doğru seçimlerden biri - - Modern, profesyonel PHP geliştirme açısından doğru yapmak için bir seçim gibi bana geliyor.

Ben kapsülleme ve daha kolay çerçeveler geçiş yapabilmek için kendi sınıflarına ZF işlevselliğini soyutlayarak düşünüyordum, ama bu, çünkü iyi bir fikir olmaz sonucuna varmışlar:

  • Bu soyutlama gereksiz bir seviyede olacağını
  • Bu, performans mal olabilir
  • bileşenleri ile tanıdık bir geliştirici baz varlığı - - Bir çerçeveyi kullanarak büyük avantajı kısmen iptal olacaktır

Dolayısıyla, ZF bağlılık derin bir olacaktır. Böylece benim soru:

Is there anything substantial speaking against committing to the Zend Framework?

Eğer 2011 yılında kötülük gitmek ve kapalı bir kaynak kütüphane yapmak için Zend A.Ş. 'nin planların içeriden bilgi var mı? Zend Inc run by vampires yeryüzüne devralmak isteyen kötü vampirler tarafından çalıştırılır? (Bu Zend aslında vampirler tarafından işletilen yorumların kurulmuştur.) Size bunun için tüm projeler aktardım ne zaman fark etmeye başlar kod tabanı kavramsal kusurları var mı? Kalite kod görünümünü bir yanılsama mı? Kod iyi görünüyorsun, ama benim dört çekirdekli istasyonunda aşağıda bir şey üzerinde çok yavaş çalışıyor mu?

Accepting answer

Teşekkürler ayrıntılı geribildirim için bir çok herkes. Ben bir lütuf kurmak ve tüm yanıt verenler arasında eşit olarak dağıtmak isterdim.

ZF yönelik olumlu birçok görüşleri arasında, bir çok iyi kurulmuş bir karşı vardı. Ben çok ciddiye aldı ve alternatifleri, özellikle Yii ve Kohana yakın bir görünüm vardı. Bu karşılaştırma itibaren ve ürünleri ZF ile ilgili ve rakip biraz daha görüşler okuma, ben daha minimalist çerçeveler göre Zend bazı alanlarda şişirilmiş olarak görülebilir görebilirsiniz. (Ben de bu "kabartmak" maksimum esneklik sağlamak için iyi bir neden ile çok olduğunu görebilirsiniz. Fakat maksimum esneklik istiyor ve ardından gelen karmaşıklığı, ya da açık kurallar ile basit bir yaklaşım ile anlaşma olsun soru, geçerli bir tanesidir.)

Çerçevesi için ben ana kullanımı bir component library olarak var çünkü Neyse, ben, eldeki proje için Zend için gidecek. Ben zerdüştlerin MVC modeli benimsemek istemiyorum, ben sadece bu yüzden üzerinde Uluslararasılaşma için yüksek kaliteli bileşenler, Oturum kullanım ve ihtiyaç. Ben (örneğin beş farklı sözlük formatları için destek) yeniden dağıtılabilir bir ürün, zerdüştlerin esneklik inşa ediyorum çünkü benim için açığız. Ayrıca, ZF I (patters Hayır zorla kullanımı, dosya yapıları ...) bildiğim kadarıyla gördüğünüz gibi, herhangi bir başka çerçeve bu teklifi istiyorum serbestlik derecesini verir sadece çerçeve gibi görünüyor.

Ben gerçek MVC özelliklerinden yararlanmak isteyen, ve tamamen olsa da uygulama binası, adlandırma, stil ve prosedürler üzerinde bir çerçevenin sözleşmeler teslim ettiği gelecekteki projeler için, ben mutlaka Zend için gidiyor, ama olmayabilir bir daha minimalist için Yii veya Kohana gibi çerçeve.

6 Cevap

Zend Framework is the best choice. Best framework API of them all, readable code, language conventions, good docs, comunity, support et all
My dislikes of it (subjective, mabe people are going to downvote me for it) are:

  • Zend_Form, bu kullanım var, ama genel olarak ben sadece benim HTML API'leri ve dekoratörler kavga yapı istiyorum, çok rahatsızlık verici olduğunu.
  • Zend_Db_Table, güçlü, ancak sizin hedeflerinizi gerçekleştirmek için bir sürü iş ihtiyacı ve Raylar tembel olmayı öğretti. Hayır, ben bu yüzden birbirlerine ve bunları bağlamak, sonra bir model için 3 sınıfları, tablo için bir, satır için bir tane, bir tane satır için yazmak istemiyorum. I might noktada table data gateway gerekiyor, ama şimdi gerçekten hızlı bir active record ile bu verileri arayüzü istiyorum.
  • aktif kaydı. Geç statik php 5.3 bağlama ile bu değişebilir ...

Ben nihayet dek birkaç ay için, bu iki kullanmak gerçekten zor çalıştı.

Ben (Ruby on fikirlerin) onları yendi

  • use plain view helpers instead of Zend_Form as in:
    echo $this->formText('email', 'you@example.com', array('size' => 32));
  • modelleri gibi kendi Active Record olan (http://www.phpactiverecord.org)
  • validate and filter on the model
  • I ihtiyacı hissettim asla rağmen gerçekten aşırı köşe durumlarda, bir geri Zend_Form + Zend_Db_Table düşebilir.

EDIT
There are some new kids worth checking out, like Laravel

ZF gerçekten diğer çerçeveler üzerinde kazanır bir şey yönlendirici, denetleyici ve görünümleri, sözleşmeler, temiz, okunabilir kod, bir süreçtir.

Eğer 20 + geliştiricileri ile bir büyük, dev proje için arıyoruz sürece, ben olur - Seni olsaydı - sadece avoid Zend Framework için bir kol ve / veya bacak feda dahil her şeyi yaparım.

  • Eğer öğrendim güzel bir seçenek kullanışlı görünebilir - sadece kütüphanede zaman ve geliştirici çaba bir atık gibi görünüyor diğer 1k + ayarı bulmak noktaya. Yakında ayarları, arayüzler ve soyut sınıflar tarafından boğulmuş, Özelleştirme Okyanusu'nun ortasında kendinizi bulabilirsiniz.
  • Belgeler değil, sadece ayrıntılı, ama sonuç olarak çok uzun ve (benzer kitaplığın kendisi) karmaşıktır. Ben 3. bölümü sınıfları yoluma içine almak için bana yardımcı değil istiyorum.
  • En önemli faktör tabii ki, benim için gelişme hızı oldu. Çevrenizdeki kolejlerin bir demet olmadan, Zend Framework ciddi bırakılan olup olmayacağı dikkate alınmalıdır.
  • Pek çok kişi kodunu uygulama, Zend konu izci isteklerini yapmak pek çok kişi vardır. Bugüne kadar, ben hatları bu milyonlarca arkasında ciddi bir vizyon görmek için henüz ettik.

Benim iki sent gerçekten bir noktaya aşağı gelir: (? Doğrusu, çünkü) bu PHP şirket tarafından desteklenmektedir rağmen, kişisel kullanım ve küçük ve orta ölçekli projeler için çok şişirilmiş.

Ekibim şu anda orta ölçekli bir proje için Yii kullanıyor. Ya mükemmel değil, ama yol daha kullanışlı ve geliştirici-dostu büyük kardeşi ile karşılaştırıldığında.

Ben ZF karşı herhangi bir büyük argüman yok - aksine; Tabii, ben tüm bileşenleri kullanılmış değil henüz (not sure anybody has), ama kaynaklar geçiyor zaman "kötü" bir baktım bir şey görmedim.

When beginning a new project, I would generally go with Zend Framework myself, actually, if I'm the one who has to choose...


There's at least one argument I would like to add to your list :

  • Zend Framework can integrate with other components : you talked of using components of ZF in your application, but didn't talk about the opposite.
    • Harika bir örnek oldukça kolay ZF ile kullanılabilir Doktrin (the default ORM of Symfony), - ve benim görüşüme göre, Zend_Db daha iyidir!

Bunun yanı sıra, ben senin noktaları herkes aynı fikirde olduğunu söylemek gerekir.


About the encapsulating ZF classes into your own classes : yes, you could do that (I sometimes do), but I wouldn't recommend doing it for everything : in most cases, it will probably not be necessary.


About the future :

  • Zend Framework BSD lisansı altında yayınlandı - ne var kapalı-kaynaklı olamaz anlamına gelir.
  • Zaten onun sonu anlamına geleceğini Kapanış - PHP toplum bağlamında, aptalca bir hareket olurdu
  • Work on ZF 2.0 is just starting (With PHP 5.3 as a requirement, btw)
    • Belki de, uygulama için programınıza bağlı olarak, bu ilginç olabilir?
    • Ayda en az bir çift önce developping başlamak gerekmez eğer en azından ...

Biz neredeyse bir yıl boyunca ZF ile gelişmekte oldum, ve ben gerçekten onunla hiçbir önemli sakınca görmezler. Bir öğrenme eğrisi biraz vardı, ama bunu anladım bir kez, ben de bu çerçeve gerçekten araya koymak nasıl fark.

Diğer çerçeveler ile karşılaştırıldığında, bazı insanlar bir dezavantajı olarak bir model kütüphane eksikliği işaret olabilir. Aslında kullanmak için ne söyledi, ve ZF ile Doktrini entegre sürtünmesiz ediliyor tercih ederim. PHP 5.3, gelişmekte olan ve bir ORM istiyor iseniz, ben son derece Doktrini 2 tavsiye ederim (ihtar: alfa test hala).

Diğer büyük bir şey almak ve ne istediğinizi seçin veya istemiyorsanız mümkün ediliyor. Ben Zend_Form büyük bir hayranı değilim, ama ben istemiyorum eğer bunu kullanmak zorunda değilsiniz. Ayrıca, gerçekten kolayca çerçeve içine kendi arşivlerine kanca sağlayan bir çok gevşek yapılı eklenti mimarisi var.

Yani, ben bunun çok büyük bir hayranıyım.

Ben Zend Framework eksik tek şey uygun bir VEYA mapper. Zend_Db çok hantal olur, büyük veritabanları (birçok tablolar) ile ilgili, özellikle de ok ama bazı eksiklikleri vardır. Ama (Pascal MARTIN tarafından belirtildiği gibi, örneğin zend-framework-orm veya Doctrine) entegre edilebilir bir çift OR orada mappers vardır.

Ama evet, Zend çok güçlü, mükemmel ve ben aslında / arayüz ve işlevsellik açısından olması gereken ne olması gerektiğini PHP bazı yollar hissediyorum.

Ne özellikle dışında bariz gibi Dojo zengin istemci uygulamaları ve SOAP support için için destek.

Ben tek geliştirici olarak bir proje üzerinde ZF kullanılır. Öğrenme eğrisi oldukça dik olmasına rağmen, yukarıda açıklanan sorunların çok fazla karşılaşıyoruz yoktu. Genel olarak ben çerçevesi çok esnek bulundu ve bileşenlerin gevşek bağlama yapıyor ZF şekilde benim ihtiyaçlarına uygun değildi kolay zaman kendi işimi yapmak için yaptı.

Ama son zamanlarda Python kullanmaya başladık, ben kullanımı python derim ;)