Web sürüm 2, PHP tutmak ya. Net taşımak?

8 Cevap ûnet

Ben bana göre elle yapılan bir çerçeve ile PHP 4 yerleşik bir web sitesi var. Kod 3 yaşında ve ben (de o değişiklik yapmak için çaba gerektirir) sınırlı duyuyorum.

Bu web sitesinin yeni versiyonunu yapmaya karar verdi. Benim bilgim bu yana artmıştır, ve şimdi ben çerçeveler bir sürü var olduğunu biliyoruz ve bu IOC olduğunu ve ORM de ... Sorun benim tüm araştırma, {[olduğunu (2)]}. Öte yandan, benim işim de (çoğunlukla. Net winform 2.0) ben mümkün çok iyi IOC ve diğer çözümlerini görmek ve ben bu. Net en iyi uygulamaları ile yazılım geliştirmek için daha fazla olgun olduğunu düşünüyorum.

Ben PHP için çok iyi IOC bulamadı. ; ORM gelince, ben güzel görünüyor, Propel gördük, ama (Zend bence ... çok büyük görünüyor Symfony dokümantasyon up-to-date, hata sürü içerir değildir) çok tam bir Çerçeve bulamadı vb

Eğer ben sadece başka bir çerçeve deneyin ve PHP web tutmak, ya da. Net geçmek için iyi bir fikir olacağını düşündürmektedir musunuz?

Reasons of this question

  • Sistem çalışıyor ama (daha fazla kullanıcısı var çünkü) yavaşlamaya başladı. Veritabanı çok ... vb normalleştirilir
  • Kod kötü değil - iş mantığı HTML ayrılır - ama sorun bazı düzen değişiklikleri yapmak için daha da zor yani kontrolörler görünümü içinde olmasıdır.
  • Hiçbir birim testleri yapılmış ve bu değişiklik yapmak için çok "stresli" bulunuyor.
  • Orada sistemde hiçbir günlüğü, ve her şeyin düzgün çalışıp çalışmadığını görmek için bir anlık almak zor.

More information (added the 3 nov 2008)

  • Ben biliyorum. Benim alternatif. Net değil RoR neden 2.0 Net budur.
  • Ben hız sorunu için ama mevcut aracı / çerçeve için bir başka dil telkin edildi.
  • Çünkü teoride harika ama pratikte değil veritabanı normalleştirme, çok sayıda tablonun yavaş (bizim hata öğrenmek!)
  • Bu bir hobi, ama ben başından (tüm aktif değil) kayıtlı beri 000 üzerinde 25 kullanıcımız var çünkü ben ciddiye alır.

Current suggestion from people over here

Ben ne yaptım tutmak ve yavaş yavaş bazı üstlenmeden yapmaya çalışacağım düşünüyorum. Ben sürpriz oyların en güncel sistem tutmak olmuştur olduğumu ama iyi: P Bu kısa vadede benim için basit olabilir.


Thx nickf herkese benim metin yazım denetimi vardır.

8 Cevap

Eğer bütün çerçevesini kendiniz yaptıysanız, ben sadece PHP 5 için yükseltme ve oradan ileriye gitmek öneririz. Çoğu PHP 4 kodu PHP 5 "sadece iş" olacak; PHP 4 yetenekleri kenarında sınıfları ve referanslar birkaç şey demek ki - istisnalar yeni ayrılmış sözcükler, ve PHP 4 5 farklı yolda dayanır kodu kullanan kod vardır.

Bir hobi proje ve ben söyleyebilirim projenin mevcut durumu hakkında biraz mutsuz hissediyorum: kesinlikle net denemek - Ben jsp ya da uygun dil / platform / runtime hemen başka türlü öneririm aynı nedenle.: eğlenceli ve deneyim. Bir süre sonra php dönmek için karar bile bir şeyler yapılabilir nasıl "yeni perspektif" devam edeceğiz. Öte yandan, eski kod ve yöntemleri gidelim zor olabilir. Silbaştan - ilk tüm hata düzeltmeleri, küçük tweaks ve hileler kaybedersiniz, çünkü tam bir yeniden zordur. Ve genellikle aynı sonucu alamadım. Eğer zaten bir (gelişmiş) sürüm 2.0 oluşturmak ve go ahead ... kendinizi germek istiyorum gidiyoruz Ama, yeni bir şeyler deneyin. Eğer başarısız olsa bile, en azından sitenizde hakkında blog için bir şey var :)

edit: It would also be possible to port only parts of the code or develop the new fetatures in .net - as long as can "bear" the two seperated codebases. And you might also want to look into http://www.codeplex.com/Phalanger, a .net compiler for php. (Haven't tried that yet.)

PHP 5 PHP 4 hareketli, ekstra bilgi yanıt muhtemelen olan bazı sorunları ele için çerçeve yeniden yazmak için bir altın bir kez.

Ayrıca, çok katmanlı mesafeyi artırmak için fırsat kullanabilirsiniz. Örneğin, muhtemelen fazla normalleşmeye ilişkin bazı yavaşlamalar, söylüyorlar. Lütfen çerçevesi yeterince uzak veri erişimi soyutlayarak eğer Eh, o katmana (örneğin memcached gibi) bazı önbelleğe eklemek ve uygulama şey bilmek gerekmez gerekir.

Ayrıca oldukça kolay bir şekilde günlüğe eklemek için aynı çabayı kullanabilirsiniz. Eğer bir nesne katmanı kullanıyorsanız, genel veri depolama günlüğü eklemek ve ücretsiz pratik günlüğü bir sürü alabilirsiniz.

Diğer yavaşlamalar veritabanı indeksleme inadequte nedeniyle olabilir. Ve bu çerçevede ilgisi yoktur. Eğer MySQL kullanıyorsanız, yavaş sorgu günlüğü çevirmek ve bunlardan bazıları üzerinde AÇIKLAYINIZ çalıştırın. Sen sütun değil indeksleme gerekir ki görmelisiniz.

Ve kendisini PHP yavaş bir dil değildir. Yavaşlık başka olacaktır. :-)

Kod miktarına bağlı olarak, PHP içinde kalmak için iyi bir fikir olabilir. Eğer. Net geçmek için karar eğer bu temelde tamamen yeniden olacaktır. Eğer tamamen farklı bir kalkınma paradigması altında, tamamen farklı bir dil ile, tamamen farklı bir çerçeve kullanarak olurdu çünkü, sizinle getirebilir bir sürü değildir.

Ben kuvvetle ORM olarak LINQ to SQL veya LINQ LINQ ile ASP.NET MVC öneririz.

Iyi bir PHP ORM için, Doctrine bakmak gerekir. Bu yüklemek için daha kolay olması ve ile yazmak ve daha iyi belgelere sahip görünüyor. Sorgu yazmak için yolu LINQ hatırlatmak olabilir.

Hakkında Zend Framework, büyük ama gerçekten ilgili değildir; Tüm bileşenlerin daha fazla veya daha az bağımsızdır. Bu Kek PHP veya ROR gibi monolitik çerçeve daha bir kütüphane:

Sen ZF 's MVC çözümü kullanmadan Zend_Openid kullanabilirsiniz.

Ayrıca her şeyi yeniden olmadan mevcut uygulama Zend kullanmaya başlayabilirsiniz.

Ve neden bu seçimlerin kendinizi sınırlıyor? Neden Ruby on Rails denemiyorsunuz? Ben yerleşik bir ORM var!

Ben sadece, yavaş yavaş PHP5 bölüm bölüm değiştirmeye çalışın (büyük bir web sitesi ise) yavaş ama değil bütün web sitesi yeniden yeni bir çerçeve ile uydurarak çalışacaktı.

Eğer veritabanı sorunu için, size yavaş olduğunu biliyorum veritabanını de-normalize kalkınma environnement başlamak olabilir.