Gelecekte yolunu eklemek daha kolay bir değiştirme için mutlak yolunu kullanabilir?

3 Cevap php

config.php kök düzeyinde koymak, bu dosya herhangi sayfalarda dahil edilecektir.

Sonra config.php de

<?php
define( 'ROOT_DIR', dirname(__FILE__) );
?>

Belirli bir yerde belirli bir dosya eklemek istediğinizde çok farklı alt / a.php, sub / sub / b.php dizinleri tüm diğer sayfalara, ben sadece gerek

include( ROOT_DIR.'/include/functions.php' );

Windows Server, ROOT_DIR C:/inetpub/vhosts/domain.com için değer katacak

Bu bir iyi / güvenli bir yoldur?

Ben diğer üst düzey klasöre b.php taşıdığınızda bu yolla, ben bakım için iyidir dahil dosya yolu, herhangi bir değişiklik yapmanıza gerek yok gibi görünüyor.

Any cons? Like SEO wise, or any other reason... What you guys think.

3 Cevap

Ben (mutlak yolları kullanılarak) konum yönteme bir avantaj PHP her istek için yolunu çözmek gerekmez olmasıdır yorum olacaktır. Sen o kadar da biraz daha iyi performans bu şekilde görebilirsiniz.

PHP 5.3 kullanıyorsanız Ayrıca, sadece __DIR__ yerine dirname(__FILE__) içinde kullanabilirsiniz.

Eğer 5.3 kullanarak değilseniz eğer, bunu bir atış verebilir. Bir çok gelişmeler birçok yeni kullanışlı dil özelliklerini söz değil, 5.3, Windows platformu için yapılmış.

Ben sitenizin taşınabilirlik önemli ölçüde ekler beri böyle bir şey yaptığını derece tavsiye olduğunu düşünüyorum. Ben bu SEO üzerinde herhangi bir etkisi nasıl olabilir görmüyorum.

Ancak, bu yöntem sizin yolları dahil hiç değişmez olanak doğru değildir. ROOT_DIR Açıkçası bu dahil edilmiştir sonrasına kadar tanımlı değil olduğu gibi yine config.php için dahil yolunu değiştirmek zorunda kalacak.

Bunu yaparken kaçınmak istiyorsanız, size ROOT_DIR yerine $ _SERVER ['DOCUMENT_ROOT'] kullanmalısınız. Bu aynı şeyi dönecektir ve bu komut tüm mevcut olduğu gibi, config.php, yanı sıra tüm diğer içerir kullanılabilir.

Alternatif olarak, edit the include path in php.ini. Ancak, bu includes a) Tüm aynı klasörde ve b) sizin sunucuda php.ini erişim hakkına sahip olduğunu varsayar.

Ben gibi sankonlarına kullanmanızı öneririz ...

C:/inetpub/vhost/account/html = points to => domain.com C:/inetpub/vhost/account/includeded_files

define('PATH_INCLUDE','C:/inetpub/vhost/account/included_files');