Varolan bir uygulama içine Zend Framework entegre ediyorum. I include() tabloların onlarca yerine zerdüştlerin autoloading mekanizması uygulama üzerinden geçmek istiyorum.
Gerçi autoloading mekanizması için özel bir şartı var. Bana ayrıntılı sağlar.
Mevcut uygulama, örneğin, (ZF bağımsız) bir çekirdek kütüphanesi kullanır:
/Core/Library/authentication.php
/Core/Library/translation.php
/Core/Library/messages.php
Bu çekirdek kütüphane her zaman bakir kalması ve uygulamaları bir dizi hizmet vermektedir. Kütüphane gibi sınıfları içerir
class ancestor_authentication { ... }
class ancestor_translation { ... }
class ancestor_messages { ... }
in application, Kütüphane dizin de var:
/App/Library/authentication.php
/App/Library/translation.php
/App/Library/messages.php
Bu ata sınıfları uzatmak ve aslında uygulama örneği olsun olanlardır içerir.
class authentication extends ancestor_authentication { }
class translation extends ancestor_translation { }
class messages extends ancestor_messages { }
Genellikle, bu sınıf tanımları boş. Onlar sadece kendi atalarını genişletmek ve örneğini sınıf adını sağlar.
$authentication = new authentication();
Bu çözümün amacı, kolayca çekirdek kütüphaneleri yama zorunda kalmadan uygulaması açısından özelleştirebileceksiniz olmaktır.
Şimdi, gerek autoloader bu yapının farkında olmak gerekir. Sınıfın bir amacı, authentication talep edildiğinde, otomatik yükleyici gerekir:
1. load /Core/Library/authentication.php
2. load /App/Library/authentication.php
Benim geçerli yaklaşım, özel bir işlev oluştururken, ve belirli bir ad alanı öneki için Zend_Loader_Autoloader bu bağlayıcı olacaktır.
Ben bakan olduğumu Zend bunu yapmanın bir yolu zaten var mı? this question olarak kabul edilen yanıt tür olduğu anlamına gelir, ama bu ifadeler sadece kötü bir seçim olabilir.
Bunu yapmak Zend Yükleyici'ye uzantıları var mı?
Eğer Can - Ben ZF yeni am - Bu işlevselliği ile Autoloader uzanan, çerçeve ruhuna uygun, zarif bir şekilde düşünmek? Ben hazır uygulanması için gerekli arayan değilim, bazı noktalar (Bu, böyle çağırır ...
xyzyöntemine bir uzantısı olmalıdır) zaten yeterli olacaktır.