Bir PHP çerçevesinden diğerine geçiş


10

Veri modelinden hemen hemen her şeye inşa edilmiş V1 temellerinin ve prensiplerinin çoğunu aşması nedeniyle, ürünü bir V2 olarak yeniden düşünmesi gereken bir noktaya yaklaşan bir web şirketi ile çalışıyorum. Kullanıcı arayüzleri. Çeşitli nedenlerden dolayı, bu evrim CakePHP'den (V1'in inşa edildiği) Symfony veya Zend'e geçiş içerebilir.

İnsanların önemli bir trafiğe sahip ve gelir elde eden bir web sitesi için bu tür bir geçişi nasıl yönetebileceğine dair bazı deneyimli görüşler istemek istiyorum. Profesyonelin farklı PHP çerçeveleri ve neden bu geçiş gerekli olabilir hakkında bir tartışma açmak istemiyorum. Aksine, birkaç ay boyunca V1'in yanında sıfırdan bir V2 oluşturmak için bazı pratik alternatifler olup olmadığını duymak ve bu yoğun dönem boyunca değerli kodlama süresini kilitlemekle ilgileniyorum. Böyle bir alternatifin bir örneği, bir uygulamayı daha uzun bir süre boyunca parçalar halinde taşımak olabilir.

Bu tür geçişleri yönetmiş veya bunlara karışmış olabilecek insanlardan herhangi bir görüş için minnettar olurum.

Şimdiden teşekkürler.

Yanıtlar:


2

Bu, şirketinizin işi olan ticari bir uygulama ise, tamamen 3. taraf bir çerçeve olmadan devam etmek daha iyi olabilir. Sonra v3 zamanı geldiğinde, yine aynı problemle karşılaşmayacaksınız. Ayrıca, çerçevedeki güncellemelere yanıt olarak kodunuzu ayarlamaya devam etmeniz gereken bir durumda olmayacaksınız. Çerçeveler, işleri hızlı bir şekilde hazırlayıp çalıştırmak için mükemmeldir, ancak bu a) işinizin çekirdeği ve b) uzun vadede korunuyorsa, çerçevenin değeri azalır.


1
Teşekkürler - Faydalı perspektif, çerçeveler hayatı çok daha kolay hale getirmesine rağmen, onları kullanmama fikrini eğlendirmek zordur. Ayrıca özelleştirilebilirler ve gerçek bir ihtiyaç olmadıkça her zaman güncellenmeleri gerekmez (örneğin güvenlik açıkları, X için destek eksikliği, vb.). Bu yanıtı, çerçeve anahtarının neden gerekli olabileceğini ele almak yerine gerçekten bir "çözüm" ile ilgili olarak kabul etmek.
Tom

1
Bu cevap hiç bir çözüm değil.
James

6

Önce yeni çerçeveyi çok iyi öğrenin ve ihtiyaçlarınızı karşılayacağından ve yeni çerçevenin paradigmalarını gerçekten gözden geçirdiğinizden emin olun. Çok fazla kod atmanız gerekecek ve sorun değil. Önemli olan, yeni çerçeveyi kullanılması gerektiği gibi kullanmanız, özelliklerinden tam olarak yararlanmanız ve eski çerçevenizden düşünme biçimlerine bağlı kalmamanızdır. Zend'i "CakePHP yolu" nu kullanmaya çalışmayın *

Örneğin, önceki MVC olmayanlardan MVC çerçevesini kullanmaya başladığımda, modellerin, görünümlerin ve denetleyicilerin nasıl çalışması gerektiğini gerçekten anlamadım ve bazı korkunç görünümlü kodlar yazdım çünkü yeni bir şeyler yapmanın yolu. Daha iyi bir çerçevede kötü yazılmış bir uygulamaya sahip olmaktan daha düşük bir eski çerçeveye sadık kalmak daha iyi olur.

* Ben de bilmiyorum, bu yüzden ne kadar benzer / karşılaştırılabilir olduklarını bilmiyorum.


+1 içinDon't try to use Zend "the CakePHP way
Tim Post

insanlar '+1' dediğinde genellikle cevabı
oylayarak

Üzgünüm, internet hıçkırık. :) TCP üzerinde taşıyıcı güvercin burada.
Tim Post

Yararlı cevap için teşekkürler. Hem Zend hem de CakePHP'de dondum ve yorumunuzu kabul etsem de, prensip olarak, pratik konuşma deneyimi olmadığında "kabul edemem".
Tom

5

Dikkate alınması gereken ilk şey, bir ürünü sıfırdan yeniden yazmanın asla yapmamanız gereken bir şey olmasıdır . Bu, özellikle mevcut sürüm size zaten para kazandığında geçerlidir. Temel olarak, sadece 6 ay önce bulunduğunuz yere geri dönmek için 6 ay geçireceksiniz. Ancak şimdi, daha fazla böcek var (ya da en azından farklı böcek), zaten eski kodda sabit ve altı ay nerede gerisindeyiz olmuştu yeniden tanıtılan hatalar yapabilirdim de olmuştur, sen olmuştu eski kod tabanına özellikler ekleme.

CakePHP, Zend ve Symphony büyük ölçüde aynıdır (yani hepsi PHP'nin üstünde MVC tarzı çerçevelerdir), bu yüzden birinden diğerine ne gibi bir avantaja sahip olacağınızdan emin değilim. Özellik setinde kesinlikle farklılıklar var, ancak gerçekten bu kadar zaman ayırmaya değer mi? Zend'de sıfırdan yeniden yazmak için harcadığınız süre boyunca veya her neyse, Cake'e gerekli özellikleri ekleyerek aynı miktarda zaman harcayabilir misiniz?

Bence, tamamen yeni bir çerçeveyle sıfırdan başlamak yerine, mevcut kodunuzu zaman içinde yavaşça yeniden düzenlemekten daha iyi olur.

Tabii ki, bu sadece benim görüşüm. Mevcut (çirkin, eski) kodu düşürmenin ve sıfırdan başlamanın cazip olduğunu biliyorum, ancak zaten çalışmakta olan yerleşik ürünler için genellikle kazanılacak çok az ve kaybedecek çok şey var.


Tam olarak ne düşünüyordum. Burada yeniden yazmanın bir anlamı yok, çünkü ekonomik bir karar olacağına dair güçlü bir durum yok gibi görünüyor.
EricBoersma
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.