Ben birbiriyle php sınıfları bir koleksiyon oluşturmak üzereyim. Şimdi onların mutlak yolu, yani kullanarak dosyaları eklemek istiyorum
Ben olsaydım
'/com/mysite/licences/Generator.class.php'
Ben bu gibi dosyaları eklemek istiyorum:
include '/com/mysite/lib/Utils.class.php'
I don't bu gibi eklemek istiyorum, ben bu kafa karıştırıcı ve çirkin olduğunu düşünüyorum
include '../licenses/Utils.class.php'
'Com' public_html kök olmadığı sürece bu, ok çalışır. Ben mevcut dosya sistemindeki 'com' yerini tutun her dosya LIBRARY_ROOT eklenecek öneki çeşit gerekir varsayıyorum. Yani bu gibi görünebilir
include LIBRARY_ROOT.'com/mysite/lib/Utils.class.php'
Bunu yapmanın en iyi yolu nedir?
-----------------MY SOLUTION----------------
UPDATE :
Bu çözüm işe yaramadı gibi görünüyor çünkü ya set_include_path ('/'); kapanış php etiketi sıfırlamak için görünür?> değil de dahil olmak üzere dosya bir.
Bu ne yaptım
Dosyasistemiyle kökünde aşağıdaki gibi adında bir dosya oluşturdum
com.mysite.setup.inc.php
Uzun isim paket isimleri için Java formatında, bu adlandırma çatışmaları önlemek için bu gibi. Aradım Eğer başka dosya da kök klasöründe Setup.php denilen olacağı mümkündür Setup.php.
com.mysite.setup.inc.php şunları içerir:
<?php
/**
* Setup file for each class
*/
//Path
set_include_path('/');
//Other common setup
?>
Bu hep böyle, tüm sınıflar bu gibi çağırabilirsiniz kök klasöründe olacaktır:
include '/com.mysite.setup.inc.php';
Kütüphane taşındı alırsa yapmanız gereken tüm değişiklikleri yansıtmak için güncelleme com.mysite.setup.inc.php olduğunu.
Ne olsun tek dahil her çirkin önekleri eklemek gerek temiz bir adlandırma kuralı. Biz artık herhangi bir sınıf dosyasında böyle içerebilir.
include '/com.mysite.setup.inc.php';
include 'com/mysite/lib/Utils.class.php';
include 'com/mysite/lib/text_utilities/Text.class.php';
include 'com/mysite/encryption/Cipher.class.php';
class MyClass {.......