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/bl … n.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/bl … r.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/bl … .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...
Laravel does not save you. Php knowledge only save you. Do not become a Laravel programmer, just the opposite,become php developer.
Çevrimdışı
Burada şu an'a kadar üç adet video yayınlandı, devamı gelecek sanırım. Senin soruna cevap bu videolarda mevcut:
Çevrimdışı
http://php.net/manual/tr/class.arrayobject.php#118872
olay aslında bu da.laravelde takip etmem lazım onu.videolar 3 tane umarım gerisi gelir sineld hocam.
Laravel does not save you. Php knowledge only save you. Do not become a Laravel programmer, just the opposite,become php developer.
Çevrimdışı
\Illuminate\Container\Container dahilindeki tüm sınıflarda $this['app'] şeklinde ulaşabilmenizin sebebi @deathisonitsway 'in belirttiği gibi Container sınıfının ArrayAccess arayüzünü kullanması. Container içerisinde $this['app'] demek \Illuminate\Container\Container::make('app') demek olmuş oluyor. Container::offsetGet(), Container::offsetSet() ve diğer ArrayAccess yöntemlerine bakabilirsiniz.
Çevrimdışı
\Illuminate\Container\Container dahilindeki tüm sınıflarda $this['app'] şeklinde ulaşabilmenizin sebebi @deathisonitsway 'in belirttiği gibi Container sınıfının ArrayAccess arayüzünü kullanması. Container içerisinde $this['app'] demek \Illuminate\Container\Container::make('app') demek olmuş oluyor. Container::offsetGet(), Container::offsetSet() ve diğer ArrayAccess yöntemlerine bakabilirsiniz.
Süpersin aynen oyleymiş mgsmus usta..
https://github.com/laravel/framework/bl … .php#L1232
arrayAccess interface işiymiş bu offSetset ve get ile tanıyor bunlar ve orada linkteki gibi işlem yapıyor.
Böylelikle $this['app'] deyince bind etmiş oluyor.çağırırkende offsetGet ile make methodu çağırılıyor.
ve böylelikle güzel bir şey daha öğretmiş olduk millete
Laravel does not save you. Php knowledge only save you. Do not become a Laravel programmer, just the opposite,become php developer.
Çevrimdışı
Çok mütevazisin Ali
Çevrimdışı
Çok müvetazisin Ali
ahah öyleyimdir.
Laraveli böyle seviyorum işte abi ben ne yapim.huyum kurusun.
Laravel does not save you. Php knowledge only save you. Do not become a Laravel programmer, just the opposite,become php developer.
Çevrimdışı