Çoğu web geliştiricileri gibi bu gün, ben iyice web uygulamaları ve siteleri için katı MVC mimarisinin avantajlarını yaşıyorum. PHP ile MVC yaparken, autoloading tabii ki son derece kullanışlı oluyor.
Eğer her biri kendi autoloading kullanan farklı taban modülleri birleştiren bu besbelli daha esnek olduğu gibi ben, spl_autoload_register
over simply defining a single __autoload()
fonksiyonunun bir hayranı oldum. Ancak, ben yazmak yükleme işlevleri hakkında büyük hissetmemiştim. Onlar yüklemek mümkün sınıflar için bakmak için dize denetimi ve dizin tarama bir sürü içerir.
Örneğin, ben PATH_APP
olarak tanımlanan bir temel yolu olan bir uygulamayı, ve adında dizinleri ile basit bir yapıya sahip diyelim models
, views
ve {[( 3)]}. Ben sık sık dosya IndexView.php
adında sayede bir adlandırma yapısını istihdam ve IndexController.php
uygun dizine iç ve modelleri genellikle varsayılan olarak belirli bir düzeni var. I-spl_autoload_register
kayıtlı olur bu gibi, bu yapı için bir yükleyici fonksiyonu olabilir:
public function MVCLoader($class)
{
if (file_exists(PATH_APP.'/models/'.$class.'.php')) {
require_once(PATH_APP.'/models/'.$class.'.php');
return true;
}
else if (strpos($class,'View') !== false) {
if (file_exists(PATH_APP.'/views/'.$class.'.php')) {
require_once(PATH_APP.'/views/'.$class.'.php');
return true;
}
}
else if (strpos($class,'Controller') !== false) {
if (file_exists(PATH_APP.'/controllers/'.$class.'.php')) {
require_once(PATH_APP.'/controllers/'.$class.'.php');
return true;
}
}
return false;
}
Bundan sonra bulunamadı değilse, ben modelleri dizinde alt dizinleri taramak için başka bir işlevi olabilir. Ancak, tüm / else-ing, dize kontrol ve dizin tarama bana verimsiz görünüyor ve bunu geliştirmek istiyorsanız.
Ben diğer geliştiriciler istihdam olabilir hangi dosya adlandırma ve autoloading stratejileri çok merak ediyorum. Ben autoloading alternatifi değil iyi teknikleri verimli autoloading için istihdam için özellikle arıyorum, ve ben.