Php sınıfları bir kütüphane oluşturma - kütüphane kök konumunu nasıl ele?

0 Cevap

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 {.......

0 Cevap