Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?
CodeIgniter ile çalışan gelişmiş bir içerik yönetim sistemini Laravel için PSR-0 ile dönüştürüyoruz. Kolları sıvadık, Allah utandırmasın.

Kolaylıklar dilerim.
Teşekkür ederim. Mantık konusunda bir kaç soru sormak istiyorum.
Bir önce ki mesajımda içerik yönetim sisteminin paket yapısını paylaştım. Her bir Build için ServiceProvider oluşturmak doğru değil çünkü esnek bir sistem olmaz yada içerik yönetim sistemimize sonradan eklenecek buildlerde de kullanıcılardan ServiceProvider kaydetmelerini beklemekte yanlış. Haliyle iki kullanım yöntemi sunacağım sizlere.

ServiceProvider oluşturmaz isek, mevcut sınıflar yada sonradan eklenecek tüm paketler kullanılmak istendiği yerde tanımlanmak durumunda.
Facedes yada Service Provider tanımlanmayacağı için bağımlıkları kafanızdan yönetmeniz oldukça güçtür. Bunları tanımlarsa zaten sorun yok.

use Jack\Build\Asset\Asset;
$this->asset = new Asset();
$this->asset->locationPath("assets/site_ismi");
$this->asset->setPath("", "");

Biz ne öneriyoruz;
Jack::Build("Asset")
->locationPath()
->setPath();

Kendi kütüphanenizi Jack'e tanımlamak ve kullanmak.
Jack::Register("Build", "SmsMenager", "src\benim_paketim\build\sms\SmsMenager");
Jack::Build('SmsMenager')
->message()
->number()
->send();

Jack ile sistemde kullanabileceğiniz neler olup olmadığını öğrenebiliyorsunuz.
Jack:getListPackage();

Sonuç
Build | Asset | v1.0.0 | src\jack\build\asset
Build | Template | v1.0.2 | src\jack\build\template
Build | SmsMenager | v2.3.0 | vendor\name\name\src\benim_paketim\build\sms\SmsMenager
Service | Thumb | 4.0.1 | src\jack\service\Thumb

Jack sınıfı Fluent Interface ve Singleton design pattern içeriyor.
Burada Jack yapıcı sınıf, Build ise tutucu method. Size Laravel içerisinde tekrar tekrar instance tanımlaması yapmanızı engelliyor, zincir method sistemi sunuyor ve sonradan Jack::Register ile ekleyeceğiniz kendi kütüphaneleriniz için Laravel ile köprü görevi görüyor. Ve en önemlisi bizim yapımızı olduğu gibi miras alabiliyor extend etmek durumunda kalmadan sadece yapılarda implement etmesi gerekmekte. Bir çok design pattern kullandık. Bu konuda seçimlerimiz başarılı.
Jack sınıfının içeriği oldukça geniş görmeden anlatmak biraz zor. O nedenle iki kullanım konusunda sizin fikirleriniz nelerdir.
Bittikten sonra kit olarak sunacağım. İçerik yönetim sisteminde olmazsa olmaz kütüphaneleri içeriyor. Kendi Cms'nizi inşa ederken büyük oranda rehberiniz olacak.