OO bir orta uygulaması yeniden

3 Cevap php

I bir oo uygulaması olarak oldukça büyük prosedürel php roughly 2000 lines of code uygulamayı yeniden yazmak için alabileceğiniz bazı apraoches nelerdir. Ve ben bile bunu denemelisiniz, ya da ben mevcut app üstüne inşa etmeli? I programlamayı öğrenirken ben yazdım ve ben şimdi onu genişletmek istiyorum.

3 Cevap

Herhalde MVC içine app dönüştürme, aşağıdakileri yapmalısınız:

  1. (Bu veritabanı sorgulama, veri çıktısı, istek parametreleri işleyen?) Her işlevin amacını belirlemek
  2. O şeylerden birden fazla şey yapıyor fonksiyonları içine bölerek tüm yukarıda fonksiyonlarını refactor çalışın.
  3. Her bir fonksiyon için, bir yöntem olarak bu işlevi içerebilir, uygun bir üst nesne / sınıf bulmaya çalışın

    function addUserRecord($dbHandle, $userData) {[...]} 
    // Becomes
    class User {
        private $db;
        public function addUser($data) {
            [...]
        }
    }
    
  4. . Dışarıdan erişilebilir her ayrı * php-dosyası için, karşılık gelen bir denetleyici bir eyleme çevirmek:

    http://foo.bar.com/user/addUser.php // becomes
    http://foo.bar.com/user/add-user

    Gelen kontrolör kullanarak Zend_Framework

    class UserController extends Zend_Controller_Action {
        public function addUserAction () {
           [...]
        }
    }
    
  5. Bu tür görüşlerin içine yankılanan gibi, tüm çıkış belirli malzeme taşımak.

Zor kısmı, muhtemelen uygun modeller oluşturmak için olacak, ama çok önemli olduğunu ve uygulamanın temeli olacaktır.

Eğer yeni özellikler eklemek veya önemli ölçüde uygulama genişletmek isterseniz gitmek gibi o mevcut kod tabanını geliştirmek. Bunu kontrol her zaman daha iyi kodu kontrol edin. Ama bu büyük bir rewrite yapmak için zaman iyi bir kullanım olmaz.

Önemli iş gereksinimleri mevcut eski kod tabanı tarafından karşılanmaktadır kanıtlamak testleri yazmak size çok yardımcı olacaktır. Sonra uygulamayı kırarak değil bilgide eski kodunu değiştirebilirsiniz. Bir şey kırmak yaparsanız, ne kabaca neden biliyor, ve hızlı bir şekilde bunu düzeltmek mümkün olacak.

well designed OOP avantajları sizin bileşenleri kolaylıkla yeniden ve takım çalışması simplyfies o olmasıdır. Ne nerede biliyor nerede Ant sonra tekrar, kod desteklemek için daha basit, ve OO sadece classnames bunu bulabilirsiniz. Eğer ihtiyacınız varsa Yani siz karar verin. Bazen more is less ...