PHP çerçeve soru

8 Cevap php

Şu anda bir tarayıcı tabanlı MMO üzerinde çalışıyorum çünkü üretim (Windows + IIS + ASP.NET / C # + SQL Server karşı, ben MSDN Universal olsa bile) ile başlamak son derece düşük maliyet LAMP yığınını seçtiniz . Bu hiç de kolay bir görev gibi Ancak ben bunun için bir PHP çerçeve gerekir. Ben özel bulut barındırma çözümü (ve gelişimi için VMWare görüntüsü) kullanacak ve gerektiği gibi yapılandırabilirsiniz gibi, Linux üzerinde çalıştırmak için yeteneği dışında başka bir şey ile sınırlı değilim.

Özel bir sırayla:

  1. Kolayca ölçeklenebilir olması vardır; bu crucial. Oyun sürekli bir başarı olursa sonunda host sağlayan ötesinde sunucu büyümek ve birkaç yük dengeli sunuculara taşınmış olması gerekir. Bu minimum çaba ile yapılabilir ki çok önemlidir. Ben bu katı kuralları takip gerektirebilir biliyorum, bu yüzden size önerilen çerçeve için herhangi bir biliyorsanız gerekli ne olacağını açıklayın yok.
  2. Böylece kimlik doğrulama, ACL, veritabanı erişimi, MVC, ve: Tüm temel görevler için modüller sağlamak zorundadır. Bir veya iki eksik modül sürece kolayca yazılı ve entegre edilebilir gibi, gayet iyi.
  3. Bu uluslararasılaşma desteklemelidir. Ben programcı çaba bir sürü olmadan diller arasındaki uygulama ve anahtarlama çeviri araçları sağlamak için değil, herhangi bir web çerçevesi için hiçbir bahane olduğunu düşünüyorum.
  4. De çok iyi topluluk desteği ve tercihen ticari desteği olmalıdır. Evet, QCodo / QCubed çok güzel olduğunu biliyorum, ama bu görev için yeterince olgun değildir.
  5. Pürüzsüz AJAX desteği gereklidir. Çerçeve AJAX-yetenekli widget ile geliyor veya AJAX ekleyerek bir kolay yolu var olmadığı sürece AJAX kolayca yapılabilir gibi, önemli değildir. Tam olarak emin değil - jQuery + Dojo'sunu veya tek başına bunlardan birini kullanmayı planlıyor.
  6. Genellikle güvenilir ve diğer gereksinimleri ile müdahale etmezse otomatik sihirli okunabilirliği artırır ve çaba rahatlatır zaman şeyler yapıyor, özellikle güzel olurdu. Bu CakePHP durum gibi görünüyor.

Ben karşılaştırmalar çok okudum ve ben gerçekten çok sıcak bir tartışma olduğunu biliyorum. Genel cevap "deneyin ve size uygun olanı kendiniz bakın" dir. Ancak, bu görev için kolay ve ben benzer gereksinimleri ile bina uygulamaları ile deneyimi için aramıştım diyemeyiz. Şimdiye kadar ben genel kriterlere göre Zend ve CakePHP arasında bağlıyım, ancak, tüm bilinen çerçeveler kendi avantajları ve dezavantajları ile farklı yaklaşımların her biri bir şekilde ya da başka aynı işlevselliği sunuyor.

Düzenlemeler:

  1. Ben MVC tür yeni duyuyorum, ancak ben onu öğrenmek için hazırım ve bir çerçeve MVC yeni başlayanlar için kolay ise umurumda değil. Ben MVC ve diğer mimariler (ya da denilen konum ne olursa olsun) tavsiye öğrenmek için çok zaman var.
  2. Ben (ben söylendi gibi bazı iyi olanlar olsa da,) sadece bir kütüphanelerin koleksiyon bulunuyor olsa bile, bir yardımcı "çerçeve" olarak Zend kullanacağız.
  3. Şu an PHP yarışmacının vardır: CakePHP, Kohana, Zend yalnız.

8 Cevap

Ölçeklendirme bir web framework çözmek için bekleyebilirsiniz bir sorun değildir. Yakın sınırsız bütçelerle bile başarılı MMOs Sharding ve örneklemesini başvurdular. En iyi yaklaşım, modüler olarak uygulamanızı tasarlamaktır. Ihtiyaç duyulduğunda, ayrı sunuculara önemli fonksiyonları taşıyabilirsiniz. Sohbet, envanter ve ihaleleri ölçüde bağımsız özellikleri ve örneğin, aynı sunucu üzerinde barındırılan olması gerekmez. Bazı oyun açıklarını önlemek için, sunucular arasında bir mesajlaşma hizmeti ihtiyacı olacak ve büyük web çerçeveler hiçbiri bu sağlar.

PHP web çerçeveler Aşil topuğu kalıcı hafıza eksikliğidir. Tüm web framework her istek için yeniden başlatmalısınız çünkü CakePHP çok yavaş. APC gibi kodu önbelleklerini sadece PHP kaynak dosyalarını ayrıştırmak için ihtiyacı ortadan kaldırır.

Ben kuvvetle diğer dillerde web çerçeveler düşünün öneririm. Python, Ruby ve Java tüm mükemmel seçimlerdir. Bu dillerin hepsi ucuz Linux sunucularda çalışacak ve yukarıdaki sınırlama olmaz.

Ben Zend ve CakePHP baktım görmek, ama ben farklı bir yöne işaret etmek istiyorum.

http://kohanaphp.org/

Kohana Hala PHP kullanıyordum ediyorsam ben kullanmak ne olduğunu. Onlar CodeIgniter'ı aldı ve php çok daha az dosya tabanlı hissediyorum ve çok daha fazla nesne tabanlı kılan bir şekilde çatallı. Onlar (Ben ki, belki onlar var olduğunu bilmiyorum) büyük bir çiftleşmiş çözüm var, ve ayrıca ACL dışında tartışılan her şey için modülleri var.

Her neyse, ben onu incelemeye değer olduğunu düşünüyorum.

On Scalability
I noticed some conversation on speed. Although I think Kohana handled things very fast for us, I don't think this as much something to do with the framework as it has to do with other tools.

Önce nginx için apache bırakarak benim php uygulamaları çok üzerinde hız artmıştır. PHP fastcgi olarak çalışan Nginx çok daha hafif ve http://ukclasslist.com gerçekten artan yük katıdır. Biz hala yerel apache kullanmak ve bizim sunucu üzerinde çalışan kopya bizim yerel sürümünden daha hızlıdır.

Eğer hala, özellikle veri yığınlarını kapma, hız ile sorun yaşıyorsanız memcache içine bakmak gerekir.

Ben pesonally Kohana hayranıyım. Ben önce bu CodeIgniter'ı ettik ve Kohana (gördüğüm kadarıyla) bir sürü sınırlamalar olmadan aslında CodeIgniter'daki tüm iyi şeyler. v3 Kohana en son sürümüdür ve daha sağlam ve v2 daha esnektir.

Performans, diğer çerçeveler göre bir çerçeve ve kendi içsel güçlü ve zayıf yönlerini nasıl kullandığınıza bağlı olarak değişir. En iyi bahis derlenmiş PHP komut önbelleğe APC (yakında PHP 6 parçası olmak) veya eAccellerator kullanmaktır.

Her şeyden önce, bu PHP çerçeveler iyi bir kaynaktır:

http://www.phpframeworks.com/

Orada onları iyi bir karşılaştırma olduğu gibi kolayca fikir alabilirsiniz.

İkincisi, ben şiddetle phpro.org de MVC bu büyük öğretici geçiyor tavsiye ederim:

http://www.phpro.org/tutorials/Model-View-Controller-MVC.html

Codeigniter iyi bir toplum desteği vardır ve yanı sıra ölçek inanılmaz bir çerçevedir. Artı uygulamayı dağıtmak için kabuk erişimi olması gerekmez. Ve MVC entegrasyon yazı uygulamaları gerçekten kolaylaştırır.

Aslında birinde CakePHP'ye ve Zend Framework ikisine de sahip olabilir. Zend framework şeyden bir kütüphaneye biraz daha yakın. Yani onun zor değil Cakephp Zend kütüphanelerini kullanmak için. Her iki dünyanın en iyisi.

here is an example bunu yapmak için bir bileşen veya kontrolörü.

Also it sounds like proformance would be very important. you may find this interesting http://avnetlabs.com/php/php-framework-comparison-benchmarks

As for scalability maybe this question can help

Burada iyi bir başlangıç ​​noktasıdır http://phpro.org/tutorials/Model-View-Controller-MVC.html.

Try Agavi. Sadece orada iyi PHP framework. İhtiyacınız olan her şey var ve sadece, genişletmek yapılandırmak veya fabrika aracılığıyla çekirdek sınıfların uygulanmasını değişebilir.

Serbestçe tanımlanabilen ortamlar (geliştirme, hazırlama, üretim vb), bağlamlar (Web, SOAP, Konsol vb), HTML, JSON, PDF gibi (özel düzenleri / katmanlar / yuva / parametreleri / HTTP başlıklarını ile render seti) çıktı türleri veya $ WHATEVER ve sadece en iyi yönlendirme sistemi.

Yapılandırması için XML kullanır ve aslında ana dosyaları, şema doğrulama ve XInclude'lar ile USE bunu yapar. Sıkı doğrulama varsayılan olarak (ve sadece GET / POST, ama başlıklar, dosyaları ve çerezleri gibi tüm diğer girdiler de) Nice giriş doğrulama sistemi. Bazı i18n/i10n incelikler ve yerleşik SOAP büyü eklemek ve mevcut en esnek ve güçlü bir PHP çerçeve (değil "web" sadece çerçeve) var.

Biraz belgelere kısa, ama Kohana, CakePHP, Zend ve tüm diğer çerçeveler karşılaştırıldığında sadece true MVC uygulaması vardır ... Sadece bir göz var ve IRC veya kullanıcı soru sormak e-posta listesi. Dik bir öğrenme eğrisi sonra uzun bir süre için diğer (PHP) çerçeveler bir göz vardı son kez. :-)