Eğer hata ayıklama uğruna fonksiyon günlüğe yapmak istiyorsanız Xdebug uzantısı içine bakmak isteyebilirsiniz. Orada zamanında at fonksiyon çağrıları önünü iyi yolu, ve herhangi bir otomatik durdurma büyük zamanı yükü katacak.
Yerine gerektiği gibi-onu açmak, hem de diğer sürü alabilir XDebug kullanma
(XDebug dolayısıyla birim test ve kapsama analizi yapmak PHPUnit ile kullanılır.)
The Problem with __call
__call soruna eğlenceli bir çözüm olarak görünebilir, ancak bu ile 3 sorunları vardır, yani
Önemli Yürütme Tepegöz. senin yaptığını __ çağrı - anlamıyla birini değil katacak> call_user_func_array, ama two fonksiyonu her yürütme çağırır.
Backtraces çözülemez hale: Aramaya çalıştığınız gerçek işlev __ sizin backtraces onların arguent listeleri ile gelen, özellikle çağrı ve son derece sert Backtracing yapma call_user_func_array dahil bir denizde kaybolur.
Aptal Gizli Fonksiyonlar: Sen onu arayarak ya da görerek doğrudan kullanıcıyı durdurmak için _ ile önek tarafından işlevlerin "gizleme" Geri PHP4 tarzı gidiyoruz çünkü işlev adı, onlar istemek ne adlandırılacak olursa __ çağrı Tetiği alışkanlık, böylece zaten geliştiriciler çeşitli yerlerde zaten doğrudan aramak için cazip olacak gerçekten korkunç işlev adları, dolu bir sınıf var. (Daha sonra __ çağrı kurtulmak istiyorsanız eğer, kodu kırmak değil gibi tüm bu işlevleri yeniden adlandırmak zorunda kalacak!)
Böylece, bu uygulamak için php kodu kullanan eğer kod temeli gelecekteki herhangi bir kullanıcı NOT ile çalışmak istiyoruz ki, epically korkunç koda neden olur. Sen çok daha iyi bunu gerektiğinde şeffaf eklenebilir (Xdebug gibi) bir şey almak, ve kodunuzu kirletici ölçüde tasarruf edilir.