🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #232052

Re: Laravel - jak to to działa?

#232052
From: Marek S
Date: Sat, 08 Dec 2018 18:29
67 lines
3827 bytes
W dniu 2018-12-08 o 09:23, Rafal Podsiadly pisze:
> Zwracają uwagę na to co napisał @Borys zaglądam sobie da katalogu
> 
> vendor\laravel\framework\src\Illuminate\Routing
> 
> I tam mam kod dla całego routingu.
> 
> vendor\laravel\framework\src\Illuminate\Routing\Route.php#894
> 
> Mam twój route::get

A czy zaglądałeś w ogóle do kodu? Tam nie ma metody get(). W najnowszej 
wersji Laravela mam coś takiego:

     public function __get($key)
     {
         return $this->parameter($key);
     }

__get() to zupełnie coś innego niż get(). Jest to przecież magiczna 
funkcja wywoływana gdy próbujemy odczytać nieistniejący komponent klasy, 
co też właśnie czynimy pośrednio za pomocą Route::get(). Oczywiście 
doszedłem do tego przekopując się przez zasieki frameworka.

W tejże metodzie znajduje się kolejne pośredniczące ogniwo łańcuszka 
świętego Antoniego. __get wywołuje metodę parameter($key). Ta z kolei 
korzysta z metody statycznej Arr:get, która znów coś tam robi zupełnie 
nie związanego z moim pytaniem.

Wykonuje się w efekcie pierdylion różnych funkcji zawierających po 
linijce kodu zanim wreszcie dotrzemy do właściwego obiektu. A poza tym, 
przypomnę - nie obiekt mnie interesuje lecz jego kod źródłowy.


> W korzystaniu z frameroków chodzi o to, że by nie zastanawiać sie jak
> to działa a zaufać i pisać kod. separować to co jest powtarzalne dla
> wielu projektów do jednego miejsca i o tym zapomnieć

Ależ oczywiście masz rację, ale ja nie o to pytam. Napisałem zresztą w 
poprzedniej wypowiedzi, że "do programowania ta wiedza wystarczy" ale ja 
nie pytam się o to jak programować lecz o fizyczny kod np. Route::get. 
De facto pytam o metodologię docierania do kodu źródłowego każdego 
elementu frameworka.

> Dlatego wspomiania fasada route jest zarejestowana w pliku 
> config\app.php#221

Ok, to rozumiem.

> 
> Następnie uruchomianie fasady generuje kod wyzwolenia
> vendor\laravel\framework\src\Illuminate\Routing\Route.php i to zawsze
> się do tego obiektu odwołujesz.

To też rozumiem.

> Dzięki takiemu zachowaniu mamy leniwe ładowanie (czyli tylko wtedy
> gdy zapytam) i oszczędzamy na miejscu bo ładujemy tylko to o co
> pytam.

I to jest fajne - ale nie ma związku z pytaniem. Choć tu też korci mnie 
zapytać o zupełnie coś innego, ale obawiam się, ze wtedy dyskusja na tym 
się skupi i umknie moje pierwotne pytanie :-

-- 
Pozdrawiam,
Marek
Technical Details
Message-ID: <puh2he$mbe$1@node1.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <ptsctv$cfj$1@node1.news.atman.pl> <1v0xvyvpzdfv7$.1rpu9f5pj0855.dlg@40tude.net> <pu1k56$dd4$1@node2.news.atman.pl> <h7gl5chedxpp.1jwtzx4lghnpe$.dlg@40tude.net> <pu6m4i$up$1@node2.news.atman.pl> <7367cb98-1e11-4ea9-9b5a-846c6259d56b@googlegroups.com> <puc568$u7g$1@node1.news.atman.pl> <fd0067a6-b2cb-4d89-9ec5-8a01de76e14a@googlegroups.com> <pueu5g$lps$1@node2.news.atman.pl> <8a7c8a09-6a2a-4830-90bf-a10721944e26@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Marek S <precz@spamowi.com>
Newsgroups: pl.comp.lang.php
Subject: Re: Laravel - jak to to działa?
Date: Sat, 8 Dec 2018 19:29:01 +0100
Organization: ATMAN - ATM S.A.
Lines: 67
Message-ID: <puh2he$mbe$1@node1.news.atman.pl>
References: <ptsctv$cfj$1@node1.news.atman.pl> <1v0xvyvpzdfv7$.1rpu9f5pj0855.dlg@40tude.net> <pu1k56$dd4$1@node2.news.atman.pl> <h7gl5chedxpp.1jwtzx4lghnpe$.dlg@40tude.net> <pu6m4i$up$1@node2.news.atman.pl> <7367cb98-1e11-4ea9-9b5a-846c6259d56b@googlegroups.com> <puc568$u7g$1@node1.news.atman.pl> <fd0067a6-b2cb-4d89-9ec5-8a01de76e14a@googlegroups.com> <pueu5g$lps$1@node2.news.atman.pl> <8a7c8a09-6a2a-4830-90bf-a10721944e26@googlegroups.com>
NNTP-Posting-Host: 89-70-94-204.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1544293742 22894 89.70.94.204 (8 Dec 2018 18:29:02 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Sat, 8 Dec 2018 18:29:02 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3
In-Reply-To: <8a7c8a09-6a2a-4830-90bf-a10721944e26@googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit