Merhaba,
yapı CodeIgniter'dan beri hazır ve stabil olarak kullanılmakta süreklide gelişimi sağlandı. Çokta gelişmiş olarak çalışmakta. Birazdan örneklerde de değineceğim.
Facebook için bir tane modular paket oluşturdum
buradan indirebilirsiniz.
her bir müdülün kendine ait bir json dosyası mevcut.
FacebookServiceProvider.php üzerinde paket tanımlamaları yapılıyor, hem laravel için hem modular yapı için. Dizin ve paket bilgisi buradan kayıt ediliyor ve o dizin içerisindekiler taranarak hem gruplanıyor -widgets,modules,plugins vb.- hemde içinde bulunan json dosyaları okunuyor. Bu işlem kurulum aşamasında bir kez yapılacak daha sonra zaten önbellekten alacağız.
Yukarıda ki işlemleri, Modular.php sınıfım yapıyor, daha sonra Plugins, Widgets vb. yönetici sınıflarım Modular.php üzerinden serialize olarak kendisine ait içerikleri alıyor ve işlemeye başlıyor. Buraya kadar zaten çalışan hazır bir sistem.
Bizim için önemli olan paketin modelleme sistemi, bu konu hakkında neler söylenebilir yada eksik/fazla yaptığımız neler olabilir.
Örnek bir widget kullanımı,
Text kullanımı: {{ widgets::facebook@get slug="test" }}
View::make('widgets.facebook::view');
path: widgets\facebook\views\view