dl

(PHP 4, PHP 5, PHP 7, PHP 8)

dlBelirtilen PHP eklentisini çalışma anında yükler

Açıklama

dl(string$eklenti): bool

eklenti bağımsız değişkeni ile belirtilen PHP eklentisini yükler.

Belli bir eklentinin yüklü olup olmadığını sınamak için, hem yerleşik (php.ini ile yüklenen) hem de devingen olarak (dl() ile) yüklenen eklentileri bulan extension_loaded() işlevini kullanın.

Uyarı

Bu işlev komut satırından çağrıldığında yalnızca CGISAPI, gömülü SAPI'ler ve CLI için kullanılabilir.

Bağımsız Değişkenler

eklenti

Bu bağımsız değişken ile eklentinin platforma özgü kütüphane dosyasının ismi belirtilir. Örneğin sockets eklentisini Windows platformunda yüklemek için php_sockets.dll ismini kullanmak gerekirken Unix platformlarında sockets.so kullanmak gerekir (bir paylaşımlı modül olarak derlenmişse).

Eklentinin yükleneceği dizin platforma göre değişiklik gösterir:

Windows - php.ini içinde açıkça belirtilmemişse, eklenti öntanımlı olarak c:\php5\ dizininden yüklenir.

Unix - php.ini içinde açıkça belirtilmemişse, öntanımlı eklenti dizinin yeri şunlara bağlıdır:

  • PHP'nin --enable-debug seçeneği ile derlenip derlenmediği;
  • PHP'nin ZTS (Zend Thread Safety) desteği ile derlenip derlenmediği;
  • geçerli yerleşik ZEND_MODULE_API_NO sabiti (Zend yerleşik modülü API numarası; genelde API modülünün değişiklik tarihidir. 20010901 gibi).
Bu durumlar hesaba katılarak eklentilerin öntanımlı yeri şöyle saptanır: <kurulum-dizini>/lib/php/extensions/ <debug/no-debug>-<zts/non-zts>-ZEND_MODULE_API_NO. Örnek: /usr/local/php/lib/php/extensions/debug-non-zts-20010901 veya /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner. Eğer modül yükleme işlevsel değilse (php.ini içinde enable_dl off yapılarak iptal edilmişse) bir E_ERROR iletisi çıktılanıp çalışma durdurulur. Eğer işlev, kütüphane yüklenemediğinden dolayı başarısız olursa bir E_WARNING iletisi çıktılayarak falsedöndürür.

Örnekler

Örnek 1 - dl() örnekleri

<?php
// Platforma göre eklenti yüklemek
if (!extension_loaded('sqlite')) {
if (
strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
dl('php_sqlite.dll');
} else {
dl('sqlite.so');
}
}

// veya PHP_SHLIB_SUFFIX sabiti de kullanılabilir
if (!extension_loaded('sqlite')) {
$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

Notlar

Bilginize:

dl() Unix platformlarında harf büyüklüğüne duyarlıdır.

Ayrıca Bakınız

To Top