Article View: pl.comp.lang.php
Article #232052Re: Laravel - jak to to działa?
From: Marek S
Date: Sat, 08 Dec 2018 18:29
Date: Sat, 08 Dec 2018 18:29
67 lines
3827 bytes
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-mailReferences:
<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