Eski bir kodlama stili php script nasıl düzeltebilirim

6 Cevap php

Belki bu sormak için doğru yer değil, fakat eski moda bir stil php komut dosyası tespit başlatmak konusunda herhangi bir tavsiye var olup olmadığını merak ediyordum.

Bir kaç gün önce eski bir PHP proje geliştirmek için bir teklif aldı ve tarafından eski moda Ben yapı OOP kodlama yöntemi kullanmak vermedi ve kesin bir çerçeve yok anlamına gelir.

Ben nereden başlayacağınızı karıştı ve eski bir komut geliştirmek için orada ne yöntemleri bilmek istedim duyuyorum.

Not: Bu yeni bir proje başlangıç ​​çok para harcamak istemiyorum.

Yani eski bir php komut dosyası güncellemek için hangi yöntemleri önerirsiniz?

6 Cevap

Joel Spolsky yazıyor:

"[Netscape made] the single worst strategic mistake that any software company can make: They decided to rewrite the code from scratch."

http://www.joelonsoftware.com/articles/fog0000000069.html

Yani, ne olursa olsun eylem kurs, öncelik mevcut kodu ile çalışmaktır. Üstlenmeden kullanabileceğiniz en iyi yöntemlerden biri olacaktır.

Kod tabanı güncel değilse size kesinlikle gerekir ki, ne yapamaz? Ne kadar ve özellikle mümkün olması için bu eylem için yükseltmeniz gerekiyor ne? Bu iki soruları düşünün.

Bu "eski" demek ne bağlıdır. Eski PHP 4 için yazılmış gibi? Veya non-OOP'deki kadar eski? (Ya da her ikisi?)

Old as in PHP4:
As long as you sift through it and either suppress warnings or actually fix deprecated function calls everything should be fine. This is just simply boring work. Easy and cheap.

Old as in non-OOP:
One could theoretically develop a very stable and scalable app without OOP or a definite MVC (or other) framework. As a matter of fact, if the app is small in scale, there's no reason to add the spaghetti and meatball complexity of OOP or a framework. Re-writing everything in OOP with some framework is hard and expensive. And quite probably overkill.

Eğer, bize belki de bir örnek daha fazla ayrıntı verebilir.

Hatta usul kodu, OOP unsurları vardır. Sen değişkenleri ve aynı varlık ilgili prosedürleri tespit edebilirsiniz. Bunu yeniden hakkında gidebiliriz, ama senin önerdiğin gibi, onlar tutumlu, özellikle bunun bir sabit zaman bulgu değerine sahip olacak.

Bunu yaptığınızda, bir çok adım süreci. Tipik olarak, çalışmaya devam etmek, mevcut bir ürünü var. Sıfırdan yeniden sonunda bunu yapıyor ucu olsa bile, nadiren bir seçenektir.

  • Mümkün (çok geçer sürer) bir autoloader, ifadeleri içerir kılavuzunu hendek ve uygulamaya başlanması
  • Sihirli tırnak ve simüle etmek için bir yardımcı komut dosyası oluşturma küresellerle kayıt. Bu, mevcut kod çalışan tutarken, böylece PHP ile kapatabilirsiniz olduğunu
  • Varsa Yavaş yavaş, aşırı strip_slashes veya add_slashes aramaları silmek. Yardımcı script dosyanın başına bunu sağlar.
  • Lütfen değişkenleri uygun kapsam belirleme sahip olduğunuzdan emin olun
  • Sunum kodunu ayırın. Smarty veya alternatif şablon sistemi düşünün
  • Taşı DB her şey için parametre değiştirme PDO ve kullanımı çağrıları
  • Koduna bakmak ve bir ön denetleyicisi üzerinden stubbing düşünmek

Daha sonra proje bakmak ve ben mantığı kendisini değiştirmek için gidiyorum nasıl belirler. Hiçbir fonksiyon tüm varsa sık sık, benim ilk geçiş statik yöntemler içine ortak davranışlar sarılmasıdır. Çok fazla çaba olmadan kadar yeniden almak, bu yüzden henüz organizasyon ile ilgili değilim.

Fazlalık azalır sonra, o organizasyon için olsun. Bu benim sınıf modeller dışında planlama ve temiz yöntemlerle içine fonksiyonlarını üstlenmeden başlar bu aşamada bulunuyor. Bu da otomatik testler (phpunit) için zamanı. Ben bazı denetleyicileri eklemek ve şablonları entegre, makul eminim kez, sonra bir ya da iki daha fazla geçiş engelleme ... bitti.

Benim için, tüm ben olmak istiyorum nerede, nerede belirlenmesi, ve birkaç küçük adımlarla idam edilebilir bir plan yapmak bulunuyor. Herkes kendi amaçları vardır, bu yüzden kendi dışında takip etmek sihirli planı var.

Perhaps Your code right now looks like this alt text

Ve bu gibi görünüyor istiyorum

alt text

Peki onun sadece bir komut değil, bütün Projesi i kodlama standardını OOP dönüştürmek olsaydı.

Kodlarını okuyun. Onlarla konuşun.

Varolan kod açısından istenen değişikliği bak. Onlarla konuşun.

Ne istediğinizi yapmak için değiştirmek ne kadar az o karar verin. Onlarla konuşun.

Bunu yap. Onlarla konuşun.

Onlar daha kolay değiştirerek daha yeniden yazma yapılabilir işlevsellik için sorduğumuzda, bunu.

Üstlenmeden ile yardımcı olabilecek bir IDE ile çalışın.