SORU
10 Aralık 2010, Cuma


Neden bir yakın etiket ihmal eder?

Kötü uygulama dosya sonunda 0 ** PHP yakın etiket kullanmak için okumaya devam ediyorum. Başlık sorun şu bağlamda alakasız (ve bu şimdiye kadar sadece iyi olan sav) gibi:

PHP Modern versiyonları php output_buffering bayrak.ını Eğer çıkış arabelleği etkin olduğunda, geri kod tarayıcı için hemen gönderilmez çünkü html çıktısı sonra HTTP başlıkları ve çerezleri ayarlayabilirsiniz.

Her iyi uygulama defteri ve wiki bu 'kural' ama kimse iyi bir sebep sunuyor.başlar Php bitiş etiketi atlamak için iyi bir neden var mı?

CEVAP
21 Aralık 2010, Salı


Başka bir neden hatırlayamıyorum iken, normal ders daha önceki gönderme başlıkları, oldukça geniş kapsamlı sonuçları olabilir. Aşağıda şu anda benim aklıma ilk gelen bu oldu bunlardan sadece birkaçı:

  1. Geçerli PHP sürümleri çıktı tamponlama sahip olsa da, gerçeküretim sunucularıkod üzerinde herhangi bir geliştirme ya da test makineleri çok daha önemlidir dağıtımı olacak. Ve her zaman en son PHP trendlerini hemen takip etmek eğilimindedir.

  2. Baş ağrısı üzerinde anlaşılmaz olabilirişlevsellik kaybı. Diyelim ki, bir çeşit ödeme ağ geçidi, ödeme işlemcisi tarafından başarılı onayından sonra belirli bir URL'YE yeniden yönlendirme kullanıcı uygulama. Eğer PHP hata, hatta bir uyarı, ya da aşırı bir çizgi biten bir çeşit olursa, ödeme işlenmemiş kalabilir ve kullanıcı hala durumda tutulmuş gibi görünebilir. Bu da neden gereksiz kötülük nedenlerinden biridir ve eğer yönlendirme kullanılacaksa, dikkatli kullanılması gerekir.

  3. "Sayfa yükleniyor" yazın bile en son sürüm Internet Explorer hataları,. iptal alabilirsiniz Bu nedenle birAJAXvardır json yanıt/birkaç gün önce karşılaştığım gibi, bazı PHP dosyaları fazla Satır sonları içerir çünkü, olmaması gereken bir şey içerir.

  4. Eğer biraz varsadosya indirmeuygulamanızda da bu nedenle kırabilirler. Ama dikkat edin, hatta yıllar sonra, bu yana belirli kırma alışkanlık indirme bağlıdır sunucusu, tarayıcı, türü ve içerik dosyası (ve muhtemelen diğer bazı faktörler istemiyorum sıkıcı).

  5. Son olarak, birçok PHP çerçeveler de dahil olmak üzere Symfony, Zend ve Laravel (yok söz bu içinde coding guidelines ama şöyle takım) PSR-2 standard (madde 2.2) gerektirir ihmal kapanış etiketi. PHP manuel kendisi (,*1*8), Wordpress, Drupal ve daha birçok PHP yazılım sanırım, bunu tavsiye. Eğer sadece standart (ve kod PHP-CS-Fixer Kur) aşağıdaki gibi bir huyun varsa sorunu unutabilirsiniz. Aksi takdirde her zaman aklında sorun tutmak gerekir.

Bonus: birkaç sorunlar (aslında şu anda bir tane) bu 2 karakter ile ilgili

  1. Hatta tanınmış bazı kütüphaneler ?> sonra fazla Satır sonları içerebilir. Bir örnek Smarty, 2.* hem de en son sürümleri bile. ve 3.* şube bu. Yani, her zaman olduğu gibiüçüncü taraf kod için dikkat et. Bonus Bonus: gereksiz PHP uçlarını silmek için Bir düzenli ifade: PHP kod içeren tüm dosyaları boş bir mesaj ile (\s*\?>\s*)$ değiştirin.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Php

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CrazyMan

    CrazyMan

    14 Mayıs 2008
  • IGN

    IGN

    19 EYLÜL 2006
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011