Tom'un cevap için tepki göz önüne alındığında, ben Zend Framework gibi bir şey bakmak tavsiye ederim. Onun ORM aşamalarında uygulanabilir bir al ya da bırakın bir mimariye sahiptir.
Benim şimdiki işveren geldi, onlar sadece önceden ayını tamamlamış olmuştu ama bir ya da iki önceki sürümleri ve güncel sürümü altı ay kadar uzun olmuştur gerekiyordu daha gelişme olmuştu aracılığıyla olmuştu bir uygulama vardı. Ancak, kod tabanı karışıklık oldu. Örneğin veritabanı erişimi mantık ve iş mantığı arasında hiçbir soyutlama yoktu. Ve, onlar beni sitesi ileriye, yeni işlevsellik bina mevcut özellikleri uzanan, ve kod mevcut hataları tespit taşımak istedim. Ayrıca, veri giriş ve çıkışlarla ilgili sanitasyon herhangi formunu kullanarak değildi şeyleri zorlaştırmak için.
Ben sorun haline Wade başladı, ben onlar tabii ki tam bir yeniden gitmek için gitmiyorum çünkü ben adımda uygulanabilir soyut kaygılar için bir çözüm gerekir fark etti. Benim ilk yaklaşımı benim için ağır kaldırma yapmak istiyorum özel bir ORM ve DAL yazmak oldu. Bu mevcut kod tabanı üzerinde davetsiz vermedi ve bu yüzden beni mütevazi bir şekilde yeni mimariye uygulamanın tüm bölümlerini taşımak için izin çünkü harika çalıştı.
Ancak, bu yeni yapıya sitemizin kullanıcı alanının büyük bir kısmını taşıdık olan ve (aynı zamanda özel bir ön-uç kontrolör ve mvc uygulanmasını içerir geldi) benim özel çerçeve üzerinde tüm bir uygulama inşa ettikten sonra, ben anahtarlama am Zend Framework (Ben diğer çerçeveler bazıları da bu durumda işe emin değilim ama bu benim seçimim).
Zend Framework anahtarlama Çünkü eski kod tabanının hakkında kesinlikle hiçbir kaygıları var:
- I can build new models and refactor
old models (built on my custom
framework) unobtrusively.
- I can refactor the existing
controllers (such as they are) to be
wrapped within a class that behaves
in a manner consistent with Zend's
MVC framework so that it becomes a
minor issue to actually begin using
Zend's Front-End Controller.
- Our views are already built in
Smarty so I don't have to worry
about separating controller and view
logic, but I will be able to extend
the Zend Framework so that I can
render existing templates in Smarty
while building new templates in
straight PHP.
Temelde, Zend Framework onun yeni kod ve refactored kodu mevcut kod davetsiz gerekmez, çünkü mevcut projeler içinde kullanmak için bir sevinç yapar götürün ya da bırakın bir mimariye sahiptir.