Selam herkese.Şimdi laravel core da genelde şöyle bir kullanım görüyoruz.
$this['app']->request; // vs...
ben bunu nasıl yaptığını tespit edemedim.Bileniniz varsa yardım almak isterim.Gidişat şöyle.
Başlangıç application nesnesinde kurucu sınıfta çalıştırılan methodlardan biri aşağıdaki link.
https://github.com/laravel/framework/blob/5.7/src/Illuminate/Foundation/Application.php#L166
instance methoduna app ve objesini gonderiyor.Aşağıdaki kodu o instance ın yukarısına koyduğumda çalışmıyor.Altına eklediğimde application objesini döndürüyor.
dd($this['app']);
Hal böyle olunca yaptığı yer burası diye düşünüyorum.İnstance methodu da container objesinde.Aşağuda linkte
https://github.com/laravel/framework/blob/5.7/src/Illuminate/Container/Container.php#L391
burada yapıyor ama
// We'll check to determine if this type has been bound before, and if it has
// we will fire the rebound callbacks registered with the container and it
// can be updated with consuming classes that have gotten resolved here.
$this->instances[$abstract] = $instance;
yaptığı yer burası..doğrusu anlamadım.. __get __set methodu ile yapabilir anca bunu..
o da container nesnesinin en altında...
https://github.com/laravel/framework/blob/5.7/src/Illuminate/Container/Container.php#L1256
bunu nasıl yaptığını bileniniz var mı? ben verdiği gibi __get __set ile hata alıyorum mesela...
$this[$key]
bu sekil kullanamazsın diyor bana hata...