PHP as a Blunt Instrument
Ben PHP son zamanlarda bir sürü etrafında kızıyorlar alıyorum duydum. Epeyce projelerde, ben deli php kod üsleri gördük - kişi, kod yazdı halüsinojenik uyuşturucu olsaydı çok kötü gerçekten merak ediyorum. Bazen, ilk geliştiriciler not yapmak için ne gibi biraz daha yol olsaydı kod gibi olurdu merak ediyorum.
Ancak, ben de% 100 OOP yapılması ve korumak için bir zevk idi bazı çok iyi organize PHP projeleri gördük, ama onlar tarafından yazılmış değil "php programcıları."
Ben bizim junior devs tüm Java Anti-Patterns için bir link verebilir. Yaygın hatalardan kendilerini ödünç Java birçok özelliği vardır çünkü bu sayfa hakkında güzel şeylerden biri Java-spesifik örnekler olduğunu. Ben php için benzer bir liste bulmak için umuyordum, ama bir google arama anlamlı bir şey ortaya koymamıştır.
Orada bir kaç soru what a developer should know when programming PHP için orada zaten, ama ben olumsuz odaklanmak istedim.
Eğer kaçınılması gerektiğini PHP gördük ve daha iyi bir şekilde aynı şeyi yapmak için ortak bir çözüm nedir ortak şeyler nelerdir?
Bence bana bariz örneklerinden bazıları söz olacak ama özel PHP değildir:
- SQL bağlamak etmeyin. Ifadeleri veya uygun kaçışa hazırlamak kullanın.
- Körü körüne HTML içine PHP embed etmeyin - çiftleşmiş / MVC kullanın.
- Körü körüne ham filtresiz kullanıcı girişi sonrası yok - XSS saldırıları için fırçalayın.
- Elle tüm mesajların ve GETler ayrıştırmak denemek etmeyin - bir web framework kullanın.
Burada PHP özel düşünecektim bazı örnekler olacaktır:
- Dosyanın yok çok katmanlar / bağlama gerektiren ve koşullu bağlama kaçınıyorum içerir. Aksine, aklı başında bir adlandırma kuralı var ve organizasyon ile tutarlı olması.
- Eğer yardımcı olabilir sürece yerine yerine ADODB gibi bir veritabanı çerçeve kullanmak, PHPs ham veritabanı API kullanmak etmeyin.
- Mantıklı boolean testleri bekliyor, sonra tek bir yerde ve başka bir yerde bir mantıksal bir dize değişkeni ayarlayarak PHP'nin dinamik yazarak aşırı etmeyin.
Peki, sevdiğiniz PHP vardır don'ts ve bunu nasıl doğru yaparsınız?