Ne framework (ler) Eğer güçlü, genişletilebilir dev platform için önerirsiniz?

6 Cevap php

İlk olarak, bana Yet Another Çerçeve Soru özür edelim. Ama bu her zamanki kadar farklı olduğunu düşünüyorum "Ben seçmeliyim ne framework?" Bunu garanti etmek.

İşte benim durum: Geçen yıl için ben özel bir çerçeve kullanarak oldum. Küçük CMS gelen büyük sitelerde ve hatta orta ölçekli sosyal ağ için her şey üzerinde kullanılır oldu. Bu harika çalıştı ama ben şimdi onun sınırlamaları görecek. Yani, bir 3. parti çerçeveye geçmek için karar verdik. Basit çerçeveler (CI, Kohana, Kek) ben duydum ne çok esnek görünüyor - bu yüzden ZF doğru götürdü. Ama, ben de ZF çok esnek ve çalışmak böylece zor olabilir duydum. Bu bir tek beden uyan tüm çözüm arıyorum olduğunu ileri ne zordur; Ben çok büyük projeler için küçük projeler üzerinde çalışan bir kurulum gerekir. Ben temel geliştirici değilim, ama ben eşim sonunda sistemini öğrenmek ve daha az karmaşık programlama görevleri ile yardım edebilmek gerekir.

Ben Doktrini araştırılmış ettik ve ben onu seviyorum. Yani boşlukları doldurmak için ZF ile ana çerçeve olarak (Doktrin) ile Symfony'de doğru eğilerek ediyorum. Artı, ben herhangi bir 3. parti kütüphaneler için bu platformu paralel kendi parçalar eklemek için yeteneği gerekir. Biz gerçekten Altyapıları her birkaç projeleri geçiş için göze alamaz gibi, bu sağlam, genişletilebilir bir platform sağlamak beni umuyoruz.

Ben şimdi olduğum gibi aynı durumda olan başkaları tavsiye arıyorum. Herhangi bir tavsiye büyük mutluluk duyacağız.

Edit: I've posted my solution below in hopes of helping other people in the same situation

6 Cevap

Biraz araştırma yaptıktan sonra ben Symfony ile gitmeye karar verdik. İşte nedenleri şunlardır:

  • ZF daha az ayrıntılı
  • Nedeniyle YAML dosyaların kullanımına çok özelleştirilebilir görünüyor (henüz ben onlardan bunalmış hissediyorum asla)
  • Özel sınıfların autoloading (o ZF kurmak zor değil gerçi) ZF gibi herhangi bir ekstra iş gerektirmez
  • Geliştirici araç çubuğu büyük ve onlar ver 1.3 bunun için bazı güzel özellikler ekliyoruz
  • Diğer çerçeveler (ZF, eZComponents) den parçaları kullanmak yeteneği bana sorun ben ne gerek bulma olmayacaktır emin hissettiriyor
  • Doktrin ile birlikte geliyor ve (aslında Doktrin ver 1.3 'de varsayılan ORM olacak) kurmak çok kolay
  • Symfony için çok daha büyük bir topluluk var gibi görünüyor. "Zend Framework öğreticiler" karşı ve sonuç sayısında büyük bir fark göreceksiniz Google "symfony öğreticiler"
  • Plenty of documentation: tutorials (the Jobeet tutorial so far is very good), API references, and a more human readable description of the framework and its underlying principles
  • Yahoo! kendi projeleri bir kaç için kullandı - bu bir çerçeve Imho geri Big Ad görmek güzel

Edit: umarım aynı durumda başkalarına yardım uğruna, burada Symfony'de hakkında sevmiyorum bazı şeyler şunlardır:

  • Does not follow the PEAR naming scheme (ZF does)
  • Dahili sınıflar "sf" ile başlar. Bu sınıf adının ilk harfini büyük harf terstir
  • Değişkenler ve fonksiyonlar written_like_this, henüz sınıf yöntemleri camelCased - bu bana özensiz görünüyor

Bunlar olsa tüm kozmetik konular; Bir şeyler my yol yapmak ister çünkü beni rahatsız şeyler. Ben üçüncü parti yazılım kullanmak her zaman bazı fedakarlıklar yapmak için istekli olması gerektiğini biliyoruz.

ZF kesinlikle güzel bir çerçeve, ama ben birincil çerçeve olarak Symfony kullanarak ve benim ve takım için en iyi seçim ZF parçaları ile arasında uzanan hissediyorum.

Edit

Başlangıçta bu ilanıyla 2 yıl beri ve hala hit oluyor beri ben hızlı bir güncelleme vermek istiyorum düşünülmektedir. Son 2 yıl içinde symfony 1.x kullanarak 30 proje, ve ben nasıl bir performans ile çok mutluyum - Ben muhtemelen yaklaşık 25 dahili. Tam bir yığın MVC framework, Doktrini ile ortaklık gibi, ben ona attı hemen hemen her şeyi ele. Ve başa çıkamayan olursa olsun, bu benim kendi özel kodu eklemek için kolay oldu. Aslında, ben symfony en sevdiğim buydu - uzatmak için ne kadar kolay. Ben büyük ölçüde geliştirme zamanı azalır eklentileri ve Doktrin davranışların bir sürü bina sona erdi. Ve yönetici jeneratör araçları god-send olmuştur. Ben hala burada ve orada birkaç proje için Symfony 1.4 kullanıyorum, ama esas Symfony2'ye kullanarak artık odaklanmaya karar verdik. Bu Symfony 1 tamamen farklı bir canavar, ama gerçekten onun mimarisi takdir. Daha da önemlisi, symfony 1.x. daha genişletmek için daha kolay gibi görünüyor Ben 1.x 'in bazı özellikleri özlüyorum, ama bu çerçeveler geçiş yapmak zorunda Sacrafice bulunuyor.

Çünkü güçlü sözleşmelerin ZF kullanarak gibi. Eğer beklediğiniz gibi her şey olacağından emin olabilirsiniz. Sınıf isimleri, fonksiyon isimleri, değişken adları, dizin yapısı, ... hepsini. Ona sopa eğer gerçekten gelişimini hızlandırır. Eğer uyum varsa daha ZF internals kontrol ederken, kendi koduna bakarak gibi ;)

Dürüst olalım. ZF hızlı değildir. Değil hızlı vb nette, CodeIgniter, Ama fark her şey için bir sınıf olmasıdır. Yoksa, sen uygulayabilirsiniz a uzatabilirsiniz sınıf veya arayüz var.

Tüm diğer çerçeveler (2 saat, vb 30secs günlüğü, twitter) "wow" etkisi kazanmak için çalışın. Bir gerçek hayat uygulaması develioping Ama, size ihtiyacınız olduğunu, bu irade, esnek ve kapsamlı mimarisi kullanımı olduğunu, biliyoruz.

Zend Framework: Huge, Flexible, Modular. I'd use only if am building a enterprise big ultra system.

But, I'm using Yii Framework and I like it. Because: Very Fast, Simple, Widgets (easy to reuse component, this is very nice).

Bir kurumsal çerçeve değil, ve gerçekten çoğu durumda gereken tüm temel özelliklere sahip, çünkü Yii, kullanımı easer.

*

EDIT: Now that I nearly understand HOW to improve the ZendFramework using your own code (as asked here Adding 3rd Party lib to Zend and here Using 3rd Party lib within Zend), I switched back to ZendFramework. I currently design my application and each day which I work and test anything with ZendFramework it gets more and more familiar and it easily quickens my developement. My advise: Use ZendFramework.

*

Şu anda aynı sorun var:

My story: I was using CakePHP until I wanted to expand my project's size. CakePHP was not as flexible as I wanted it to be. So i tried to use ZendFramework.

Ben 'Hızlı Başlangıç' kılavuzunu okuyun ilk kez, ben basit bir ziyaretçi defteri uygulaması için bu kadar çok dosya sahip biraz korktum.

ZendFramework 'ile oynarken bir süre sonra benim kendi özel çerçeve içinde bir 3. parti lib olarak ZF kullanmaya karar verdi.

The problem is, IF you use Zend's MVC components you might be forced to use 30% of the whole framework, because the MVC components are one of the biggest part of the ZF. I mean if I use that much of a framework WHY shouldn't you use the rest, too?

Bundan sonra, 3. parti lib olarak ZendFramework kullanmadan benim KOMPLE özel çerçeve yazmaya karar verdim.

Şimdi kod tasarımı hakkında skeçler dolu kağıtları dağlar, önünde oturuyorum.

Ben başka kararlar hakkında bugüne kadar sizi takip edecek.

Ben dürüst gerçekten tarzına bağlıdır düşünüyorum. Sonu yok bu sorunun tüm cevap olacak.

ZF klasik ve kanıtlanmış tasarım ilkelerine dayanır. O da çok uzayabilir, ama "kongre" daha fazla "yapılandırma" gerektirir. Ben şahsen doğanın 3. parti kodu güvenmiyorum, ben çalışıyorum teknolojisi ile daha tanıdık olma uğruna, daha fazla ayrıntı hayranıyım. Ama bu sadece benim.

Ben de başarıyla CakePHP'ye kullanılan ve büyük bir başarı ile çalışmış bir şirket için diğer iki çerçeveler tescilli ettik. Onlar hepsi sadece sizin için iyi hissediyor ne almak, benzer şeyler yapmaya çalışıyoruz.

Ben şahsen, büyük ve küçük projeler için başarılı CakePHP'ye kullandım ancak sizin istediğiniz şekilde ödün yapmak çoğu zaman zordur. Kek kullanarak benim nedenleri topluluk destek üst çentik olması aslında ikamet etmeye devam, güvenlik güncelleştirmeleri sık sık, ve bu paket olmasına rağmen, sadece can (senin üzerine (birim testi gibi) meta-paketleri zorlamayın bin bu yerleşik paketi) kullanarak ilgi değilseniz.

Toplamda, ancak ben Senfoni fantastik olduğunu zaman ve tekrar tekrar duydum, son birkaç aydır benim için güzel bir sistem yapılmış, bu nedenle belki de ilk düşünceleri ile para olabilir. Boru hattı Senfoni için NetBeans desteği ile, ben de daha önce uzun geçiş ihtiyacını bulabilirsiniz.