Zend PHP çerçeve

7 Cevap php

Diğer PHP çerçeveler ile kıyaslandığında bu çerçevenin avantajları ve dezavantajları nelerdir?

7 Cevap

Zend Framework çok yararlı çerçevesidir. Ben daha bir kütüphane gibi tasarlanmış, çünkü bir 'çerçeve' aramak için tereddüt ediyorum. O bunu çok uygun üzerinde çalıştığınız ne olursa olsun, proje, yeni veya eski yapar bileşenleri almak ve seçim yapmanızı sağlar yeteneği bulunuyor.

Ben de PHP 5 Framework özveri için teşekkür ederiz. CakePHP gibi diğer çerçeveler kullanmış ve PHP 5 yeni özellikler onların kullanımı hayal kırıklığına uğradım. Özellikle, ZF soyutlama, kalıtım gibi nesne yönelimli kavramları çok kullanır ve yöntem bir dizi Standard PHP Library oluşturur uygular. Örneğin, bir Zend_Db_Table adaptör aracılığıyla veritabanına bir aramanın sonuçları yerine temel bir dizi bir "satır" nesnesi döndürür. "Satır" kendi kullanışlı yöntemler sağlar, ama aynı zamanda SeekableIterator ve Sayılabilir hem de uygular. Bu sayımı (Sayılabilen) gibi ortak PHP fonksiyonları doğrudan "satır" nesnesini kullanmak ve forach (SeekableIterator) döngüler verir. Burada da bir değiştirilmiş örnek documentation,

$rowset   = $bugs->fetchAll("bug_status = 'FIXED'");

$rowCount = count($rowset);

if ($rowCount > 0) {
    foreach ($rowset as $row) {
        echo $row->bug_status . '<br>';
    }
} else {
    echo 'no rows matched the query';
}

ZF de Zend Db Tablo satır kümesi gibi temel sınıfını genişletmek sizin için izin vererek özelleştirme büyük bir olanak sağlar. Bu ile satır işlevsellik eklemek ve Zend varsayılan olarak sınıfları kullanmak için alabilirsiniz. Bu bana değil sadece bir "sınıf" arkasında verileri boks, çok daha katı nesne yönelimli kod almanızı sağlar.

Küçük bir nokta, ama kayda değer, onların çözümü oluştururken Zend Framework hesap mevcut tasarım kalıpları içine almış olmasıdır. Zend Db Tables sınıfları Table Data Gateway ve Row Data Gateway ilham alır. Ben mevcut çözümler başvurmak ve onlardan öğrenmek anlamına gelir çünkü bu benim için yararlı olduğunu.

Benim yanıt ZF veritabanı yönü merkezli, ama güç bir sürü de, diğer hizmet (Lucence, Amazon, Flickr, Yahoo, vs) ve ortak fonksiyon sınıfları (PDF, Döviz, SOAP, JSON tüm bulunabilir düşünüyorum , vb.)

Son olarak, çok sayıda insan ZF projeleri kurma zorluğu hakkında endişe belirtmiştik. Ben de bir kez yapılandırılmış çalıştırmak eğilimindedir olsa bile, bir ZF projeyi başlatırken bazı tümsekler olamayacağını kabul etmek eğilimindedir. Ancak, son sürüm, 1.6, tam bir ZF proje için gerekli tüm öğeleri kurmak için uygun bir şekilde Zend_Tool adında yeni bir araç içerir. İşte Zend Tool setup tutorial denemeye etmektir.

Ben onun 1.0 sürümü ile Zend Framework proje başardı, ve ben Zend_Db'nin ve diğer bileşenleri bir sürü kod yazdı.

Diğer insanlar zerdüştlerin teknik avantajları yorumlarken olmuştur, onun kullanım-at-olacak, vb tasarım gözden olsun birkaç avantajı vardır:

  • Zend Framework proje kalitesi için çok güçlü bir hedefi vardır. Orada 8.500 birim test fonksiyonları üzerinde ve test kodu (kod satırları ile ölçülen) projesinde toplam PHP kod yaklaşık% 42'sini oluşturmaktadır.
  • Kodu temiz IP. Başından itibaren, Zend Framework hedefi herhangi bir patent veya telif hakkı iddiaları ücretsiz kodu sağlamak için oldu.
  • New BSD License (GPL, yani daha fazla) ticari kullanım için dost yapım, Zend Framework lisans temelidir.

Biz Zend çerçevesi ve CakePHP ağır kullanımı orta derecede faydalanmak. Benim algıları çok uzak:

  • Son derece iyi yazılmış ve tasarlanmıştır. Sadece nasıl yaptıklarını görme bunun dışında bir sürü alabilirsiniz
  • Diğer kod ile çok güzel oynuyor iyi etki için bunu istediğiniz gibi, sizin kadar veya az kullanabilirsiniz
  • Size veren bazı şeyler paha biçilmezdir - Lucene bağlamaları, Google hizmetleri vb
  • Onun MVC şeyler daha az zamanda diğer çerçeveler daha geliştirilmiştir
  • Tam bir MVC framework var girişe yüksek bir engel olduğunu ve size daha az ücretsiz veriyor, ama flip tarafı, istediğiniz kadar çalışmak için yapılabilir olduğu gibi kullanmak için

Kısacası bu sözleşmeye karşı yapılandırma (Ray-a-sever tersi) yanadır. Benim Toolbag içinde sahip değil düşünemiyorum, ama biz onunla tamamen bir proje başlatmak için gittin her zaman, sadece bize çok istedi ve biz bizim ilk depo şablonlar sağ orada Zend ile CakePHP intikal ettik harici olarak.

Ben, PHP eski bir el MVC yaklaşımı yeni değilim, ama. Ben diğer çerçeveler karşılaştırıldığında ettik iken, ben çerçeve benim uygulamaları getiriyor tutarlılık ve sadeliği ile en çok mutlu olduğumu söylemek zorundayım.

Evet, şimdi bir iskelet proje oluşturulur ve benim veritabanları ile kullanmak bazı yapı komut ettik, bunu kurulum hakkı elde etmek için bir bağlama olabilir, ama olabilir. O, benim veritabanı oluşturma kaynak denetimi kontrol, sonra modeller oluşturmak için benim build dosyası çalıştıran benim yapılandırma ayarı dosyasını basit bir durumda bulunuyor. Daha sonra kaynak denetimi için geri kontrol ve oradan başlamak, yeni bir proje oluşturmak mümkün değilim.

Ben bir yerde bu temel proje var sonra MVC yaklaşım, büyük uygulamaları yaratmak için son derece temiz.

Bunun üstüne kütüphanenin diğer bileşenleri eklemek, Zend_Mail, Zend_Date, Zend_Form (bana çok sıkıcı şeyler kurtardı ki), Zend_Registry, Zend_PDF, liste gerçekten uzayıp gidiyor.

Tüm çerçeveler öğrenmek zaman alacak, ama benim zaman ve para için, ZF ileriye iyi seçenektir. Bu kod bazı tutarlılık ve kalite getirmek için çalışıyorum, genel olarak da PHP için son derece iyi geliştiriciler için iyidir.

DOJO ve JSON görünüm modlarının eklenmesi hızla Firebug kullanarak hata ayıklamak kolay bazı gerçekten iyi istemci tarafı uygulamaları (yeni FirePHP / WildFire bileşenini kullanarak) ortaya koymak anlamına gelir.

Ben sadece gerçekten yaklaşımını takdir ediyorum.

Ben Zend Framework mükemmel bir kütüphane olduğunu söyleyerek reefnet_alex yankı edeceğiz, ancak MVC arıyorsanız o zaman bir çalışma sitesini yapılandırmak için küçük bir iş değildir. Bu kez MVC şeyler mükemmel ve kendi kuralları kullanarak sizi zorlamak en çerçevelerin aksine sonsuz esnek yapılandırılabilir, söyleniyor.

MVC için değil arıyorsanız o zaman tam özellikli ve olgun bir çerçeve için iyi bir seçenek yoktur.

Php için bildiğim diğer tek çerçeve cakePHP olduğunu. cakePHP rayların güzelliğini taklit varsayalım bir MVC çerçevedir.

O MVC şeyler değil geniş bir yelpazesini kapsar, ancak gibi Zend görünüyor. Ben kişisel tercihinize aşağı geleceğini düşünüyorum. Ben iyi gibi görmek için her Zend ve kek çerçeveler örnek bir uygulama inşa öneririz.