1- Service providerler sırayla ele alınır ve önce tüm provider lerin register methodları sırayla çalıştırılır. Sonra boot methodları sırayla çalıştırılır. Doğal olarak register methodunda farklı providerlere ait işlemler yaparsak, o anda yüklenmemiş olma ihtimalleri oluşuyor. Bundan dolayı register içerisinde sadece bind işlemlerini yapıyoruz. Boot methodu ise, öncesinde tüm provider lerin register methodu çalıştığından, framework ün diğer özelliklerine erişebileceğimiz alan oluyor.
Örnek: Elimizde A, B, C ve D service providerleri olsun. Çalışma sıralaması:
- A register()
- B register()
- C register()
- D register()
- A boot()
- B boot()
- C boot()
- D boot()
Örnekte görüleceği üzere eğer B register içinde iken C register de tanımlanan birşeye erişmek istersek bunu yapamayız çünkü henüz o kısım çalışmamış. Fakat B boot içinde iken C register de tanımlanan - bind edilen birşeye erişmek istersek erişebilir - kullanabiliriz.
2- Aslında view composer içinde yapılan tanımlamanın hata vermemesi gerekir. Verdiğiniz örnekte kurulumda öncelikle migrate komutunun çalışarak tabloların create edilmesi gerekiyor. Akabinde eğer kayıtların nitelikleri view composer içinde kullanılıyorsa tablo içinde kayıtta olması gerekir, olmama ihtimali varsa kullanmadan collection da verebilirsiniz. Örnek kod ve senaryo olsa daha net yorum yapabilirdik aslında.