Daha önce
https://laravel.gen.tr/d/471 modüler sistem ile ilgili bir konu açmıştım ancak yeterli ilgiyi görmedi.
Binlerce her dilde yazılmış içerik yönetim sistemi inceledim ancak şu modül konusunda gerçekten güzel bir yapı göremedim.
Wordpress için her plugin birbirinden bağımsız çalışıyor ve bağımlıkları da kendi içinde tutuyor.
Örneğin facebook için yazılmış iki farklı plugin var. Biri Facebook yorum eklentisi diğeri Facebook login eklentisi. Eklentilerin içlerine baktığınızda Facebook'un SDK'sı iki plugin içinde bulmak mümkün.
Ve bu SDK her iki pluginde include edilerek kullanılıyor. Kısacası böyle bir yazılım mantığı olmaz.
Geçelim, Laravel ve Codeigniter ile yazılmış cmslerin modüllerine, bunlarda da bağımlılıklar bu şekilde çözülmüş.
Kimisi her bir modülün için de composer dosyası bulundurmuş ve vendor dizinleri her modülün kendi içerisinde. Baktığınızda bağımlılıkları yönetmek için güzel bir yöntem ancak her bir modülde vendor/autoload.php dosyasını include etmek demek 8-9 dosyayı include etmek demek. Alt tarafı 10 modülde 80-90 dosya sadece vendor a ait olacak. Böyle de bir mantık olmaz..
Elbette ki, bir dosyayı alıp dizin içine atıp işi bitirmek var, bir de composere şunu yaz şu kodu çalıştır demek var.
Kısacası tüm içerik yönetim sistemlerinde kullanıcı kolaylığı performansın önüne geçmiş.
Bende iki haftadır düşünüyorum hem
performansı iyi olsun hemde
kurulum kolaylığı olsun ama işin içinden çıkamadım. Modül konusunda bu iki kelime anladığım kadarıyla birbirlerine çok zıt.
Drupal içinde buna benzer bir konu açılmış,
http://www.adililhan.com/drush-ile-drupale-bagimliliklariyla-birlikte-modul-yukleme