PHP bir işlevi deprecate nasıl?

5 Cevap php

Ben işe hangi ile ekibi, tüm veritabanı ile iletişim kurmak için kod üzerinde PHP'nin ibase_ * fonksiyonlarını kullanarak eski kod temeli var. Biz sadece orijinal işlevini çağırarak yanında başka bir şey yapmak istiyorum bunun için bir sarıcı oluşturulan ve ben yaptım bir kitle sargı yerine kullanılabilir olduğundan emin olmak için tüm kodu arama değiştirin.

Şimdi, nasıl biz gelecekte ibase_ * fonksiyonlarının kullanımını engelleyebilir mi?

Tercihen, ben hala onları kullanılabilir olmasını ister, ama kullanıldığı zaman bir ihtara veya uyarıya atmak yapmak istiyorum.

Saf PHP (PHP özel bir sürümünü derlemek için gerek değil) bir çözüm tercih edilir.

5 Cevap

Ben doğru anlamak, yerleşik bir PHP işlevi kullanıldığında bir hata tetiklemek istiyor? Bu durumda, Override Function fonksiyonuna bir göz atın.

trigger_error()

function my_deprecated_function() {
    trigger_error("Deprecated function called.", E_USER_NOTICE);
    // do stuff.
}

Ben kendim kontrol ettim, ama benim imleri bu bulamadım: http://wiki.php.net/rfc/e-user-deprecated-warning

Edit: Tamam bu henüz çalışmıyor - böylece yerine E_USER_DEPRECATED sadece E_USER_NOTICE gibi bir şey kullanabilirsiniz:

<?php
class Foo
{   
    public function __construct()
    {
        trigger_error('Use Bar instead', E_USER_NOTICE);
    }
}

$foo = new Foo()

Bu, bu ile sona erecek:

Notice: Use Bar instead in /home/unexist/projects/ingame/svn/foo.php on line 6

Lütfen fonksiyonları bir sınıfın parçası iseniz, o zaman önerilmeyişine uyarmak için yapıcı trigger_error kullanabilirsiniz.

Fonksiyonları tek bir dosyada ise dosyanın başka bir yerde dahil her alternatif, daha sonra dosyanın üstünde bir deprecation uyarı tetikleme hatayı göstermek istiyorum.

Son olarak, kalktı fonksiyonların herhangi ilk satırında hata atmak olabilir.

Bunun yerine kullanımı üzerine bir çalışma zamanı uyarı yetiştirme, sonra soruna bir kod rapor oluşturmak, bu fonksiyonun kullanımı için kod tabanı tarayabilir ki, bir senaryoyu yazarken düşünebiliriz. Arada bir, onu çalıştırın.

Eğer bir sürüm kontrol sistemi kullanıyorsanız, bir taahhüt-kanca gibi komut ayarlayabilirsiniz. Ben muhtemelen tamamen onu kontrol engellemek kimse bir komut dosyası, kalktı fonksiyonları içeren, kontrol edilir, ama gerçekten onu zorlamak istiyorsanız, bir ön-kanca olabilir zaman sadece bir e-posta gönderen bir post-kanca, tavsiye ederim .