"Bazı dosya.php" Require_once Should

4 Cevap

Aşağıdaki örnek PHP'nin Require_once yapı için uygun mudur?

function foo( $param )
{
    require_once "my_file.php" ;
    //
    // do something here
}

Yoksa sadece dosyanın başında Require_once yapıları için daha uygun?

Dahil olan dosya sadece işlevi bağlamında yararlı olsa da, okunabilir ve bakımı için üst içerir olması daha iyi değil mi?

4 Cevap

Bu kodlama tarzı ve görüş meselesi aşağı gelir. Şahsen ben bu yüzden kolayca sonra bazı kötü bir şey gömülü betiklerinizden karıştırmasını dahil nerede, dosyaları dahil hangi görebilirsiniz benim dosyaların çok üstünde benim require_once ifadeleri tutmak. Eğer sadece belirli işlevler için gerekli olan birkaç büyük gerekli komut varsa Ancak, daha sonra bir işlevin içinde require_once koyarak sadece üstünde bir not koymak için emin olun, bir performans durma noktasından Tamam olurdu sayfa.

<?php
//require_once "my_file.php" (see function foo)

function foo($param) {
  require_once "my_file.php";
}

Bu dini bir tartışma şeydir.

PROS for require and include statements at the top of the file:

  1. bağımlılıkları açıkça bir tutarlı, güvenilir bir yerde belgelenmiştir.

  2. artan okunabilirlik / idame

  3. (Eğer bu doğrudan geliştirici etkilemez iddia rağmen) OP kod önbelleğe basittir

CONS for require and include statements at the top of the file:

  1. Da dahil olmak üzere dinamik çalışma çeşit yapıyorsanız (örneğin __ autoload () gibi), dosyanın üstünde bir kodlanmış ifadesi imkansızdır.

  2. Kod sadece bir icra yolu bir her zaman dahil olan, dahil kullanıyorsa, koşulsuz bir kaynak israfıdır.

  3. include veya require deyimi uzun bir liste bir dosyayı düzenlerken sadece gürültü geliştirici geçmiş kaydırmak gerekir. Tabii, bağımlılıkları uzun bir liste kodu daha küçük daha odaklanmış parçalar halinde kırılmış olması gerektiğini bir işareti olarak görülebilir, bu nedenle bir kod koku kılan, çünkü belki bir PRO olarak bu bir dönüş olabilir.

Belki de sadece belirli durumlarda dahil dosyası gerekiyor, ve bunu büyük bir dosya eğer, hiç gerek yok eğer dahil önlemek istiyorum. Yani, sadece bir if - else deyimi bir dalında bir require_once için gidebiliriz sanırım.