Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.lang.php > #15828 > unrolled thread
| Started by | Marek S <precz@spamowi.com> |
|---|---|
| First post | 2018-11-30 23:17 +0100 |
| Last post | 2018-12-10 23:07 +0100 |
| Articles | 20 on this page of 48 — 5 participants |
Back to article view | Back to pl.comp.lang.php
Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-11-30 23:17 +0100
Re: Laravel - jak to to działa? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-01 20:35 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-02 22:51 +0100
Re: Laravel - jak to to działa? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-03 14:01 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-04 20:55 +0100
Re: Laravel - jak to to działa? Rafal Podsiadly <spinacz24@gmail.com> - 2018-12-05 12:41 -0800
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-06 22:43 +0100
Re: Laravel - jak to to działa? Rafal Podsiadly <spinacz24@gmail.com> - 2018-12-06 21:50 -0800
Re: Laravel - jak to to działa? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-07 09:24 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-08 00:01 +0100
Re: Laravel - jak to to działa? Rafal Podsiadly <spinacz24@gmail.com> - 2018-12-08 00:23 -0800
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-08 19:29 +0100
Re: Laravel - jak to to działa? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-08 20:27 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-08 21:53 +0100
Re: Laravel - jak to to działa? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-08 22:27 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-09 00:07 +0100
Re: Laravel - jak to to działa? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-09 11:19 +0100
Re: Laravel - jak to to działa? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-09 22:43 +0100
Re: Laravel - jak to to działa? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-10 20:49 +0100
Re: Laravel - jak to to działa? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-10 21:55 +0100
Re: Laravel - jak to to działa? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-09 22:49 +0100
Re: Laravel - jak to to działa? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-09 22:58 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-10 22:48 +0100
Re: Laravel - jak to to działa? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-10 23:56 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-11 23:33 +0100
Re: Laravel - jak to to działa? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-12 14:33 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-14 22:04 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-14 22:08 +0100
Re: Laravel - jak to to działa? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-16 12:24 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-16 16:47 +0100
Re: Laravel - jak to to działa? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-16 17:01 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-08 22:03 +0100
Re: Laravel - jak to to działa? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-08 22:29 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-09 00:19 +0100
Re: Laravel - jak to to działa? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-09 11:10 +0100
Re: Laravel - jak to to działa? Rafal Podsiadly <spinacz24@gmail.com> - 2018-12-09 08:36 -0800
Re: Laravel - jak to to działa? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-09 18:02 +0100
Re: Laravel - jak to to działa? Rafal Podsiadly <spinacz24@gmail.com> - 2018-12-09 09:48 -0800
Re: Laravel - jak to to działa? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-09 21:24 +0100
Re: Laravel - jak to to działa? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-09 22:55 +0100
Re: Laravel - jak to to działa? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-10 20:59 +0100
Re: Laravel - jak to to działa? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-10 21:53 +0100
Re: Laravel - jak to to działa? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-10 22:10 +0100
Re: Laravel - jak to to działa? Borys Pogoreło <borys@pl.edu.leszno> - 2018-12-10 23:54 +0100
Re: Laravel - jak to to działa? Wojciech Bancer <wojciech.bancer@gmail.com> - 2018-12-11 10:43 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-10 23:02 +0100
Re: Laravel - jak to to działa? Tomek <skowtm@wp.xx.pl> - 2018-12-10 10:08 +0100
Re: Laravel - jak to to działa? Marek S <precz@spamowi.com> - 2018-12-10 23:07 +0100
Page 1 of 3 [1] 2 3 Next page →
| From | Marek S <precz@spamowi.com> |
|---|---|
| Date | 2018-11-30 23:17 +0100 |
| Subject | Laravel - jak to to działa? |
| Message-ID | <ptsctv$cfj$1@node1.news.atman.pl> |
Witam Was, Mam kłopot z ogarnięciem frameworka. Mamy fasadę Request::get lub Request::post. Chciałbym dowiedzieć się jaki kod fizycznie się wykonuje w tym momencie. Wymiękłem w chwili gdy okazało się, że get i post to elementy tablicy - cholera wie gdzie inicjowanej. Czy ktoś z Was potrafi mi wyjaśnić, gdzie znajduje się kod kryjący się za fasadami? Pytam ogólnie - niekoniecznie odnośnie quasi metod get i post Request'a. -- Pozdrawiam, Marek
[toc] | [next] | [standalone]
| From | Borys Pogoreło <borys@pl.edu.leszno> |
|---|---|
| Date | 2018-12-01 20:35 +0100 |
| Message-ID | <1v0xvyvpzdfv7$.1rpu9f5pj0855.dlg@40tude.net> |
| In reply to | #15828 |
Dnia Fri, 30 Nov 2018 23:17:30 +0100, Marek S napisał(a):
> Mam kłopot z ogarnięciem frameworka. Mamy fasadę Request::get lub
> Request::post. Chciałbym dowiedzieć się jaki kod fizycznie się wykonuje
> w tym momencie. Wymiękłem w chwili gdy okazało się, że get i post to
> elementy tablicy - cholera wie gdzie inicjowanej. Czy ktoś z Was potrafi
> mi wyjaśnić, gdzie znajduje się kod kryjący się za fasadami? Pytam
> ogólnie - niekoniecznie odnośnie quasi metod get i post Request'a.
Fasada to tylko inny sposób dostępu do kontenera IoC. Czyli np. pisząc
DB::query() sięgasz do kontenera pod klucz zdefiniowany w pliku
Illuminate/Support/Facades/DB.php:
protected static function getFacadeAccessor()
{
return 'db';
}
co w efekcie jest równoważne:
app()->make('db')->query(...)
Zaś do GET/POST najprościej się dostać przez instancję obiektu klasy
Request automatycznie wstrzykiwaną przez podpowiadanie typów do metody
kontrolera obsługującego bieżącą akcję, czyli po prostu:
public function twojaAkcja(Request $request)
{
$zmiennaGet = $request->input('zmienna');
// ...
}
Oczywiście możesz też pisać Request::input() lub request()->input() czy po
prostu app()->make('request')->input() albo nawet
app()->make(\Illuminate\Http\Request::class)->input().
--
Borys Pogoreło
borys(#)leszno,edu,pl
[toc] | [prev] | [next] | [standalone]
| From | Marek S <precz@spamowi.com> |
|---|---|
| Date | 2018-12-02 22:51 +0100 |
| Message-ID | <pu1k56$dd4$1@node2.news.atman.pl> |
| In reply to | #15831 |
W dniu 2018-12-01 o 20:35, Borys Pogoreło pisze:
> Fasada to tylko inny sposób dostępu do kontenera IoC. Czyli np. pisząc
> DB::query() sięgasz do kontenera pod klucz zdefiniowany w pliku
> Illuminate/Support/Facades/DB.php:
To ja wiem. Sęk w tym, że w Laravelu fasady są w zasadzie puste. Coś je
uzupełnia po uruchomieniu frameworka. Tak jest w przypadku wspomnianego
Requesta. Fasada zawiera inicjalnie pustą tablicę, którą wypełnia nie
wiadomo co. Gdy wołamy get(), to wywołuje się de facto odwołanie do
wewnętrznej tablicy z polem "get", które z kolei zawiera wskaźnik do
jakiejś metody. Z pewnością nią nie jest Request::get bo ... Request nie
zawiera niczego takiego. Zresztą, który Request, bo znalazłem ich więcej
niż 1?
Szukam konkretnie listingu metody get/post. Wymiękłem analizując ścieżkę
do ścieżki zawierającą ścieżkę.
> Zaś do GET/POST najprościej się dostać przez instancję obiektu klasy
> Request automatycznie wstrzykiwaną przez podpowiadanie typów do metody
> kontrolera obsługującego bieżącą akcję, czyli po prostu:
>
> public function twojaAkcja(Request $request)
> {
> $zmiennaGet = $request->input('zmienna');
> // ...
> }
Zupełnie nie o to mi chodziło lecz o źródło w/w metody.
A skoro wspominasz o tym, to również nie bardzo ogarniam takie
wstrzykiwanie. W/g mnie wstrzykiwaniem nazywa się proces w postaci:
$obiekt1=new CośTam();
$obiekt2->metoda($obiekt1);
gdzie
class Obiekt2 {
...
//$_cosTam to coś, co wstrzykujemy
public function metoda(CośTam $_cosTam) {
}
}
Tymczasem odwrotne podejście w postaci
$obiekt2->metoda(Co $co, Nam $nam, Ślina $ślina, Na $na, Język $język,
Przyniesie $przyniesie);
jest dla mnie również kompletnie niezrozumiałe. Sądziłem, że jakakolwiek
metoda gdziekolwiek powinna spodziewać się ściśle konkretnych
argumentów. Tymczasem okazuje się, ze z jakiś niejasnych względów zadziała:
$obiekt->twojaAkcja(Request $request)
jak i
$obiekt->twojaAkcja(URL $url)
Czyli wynika z tego, że w jakiś magiczny sposób powyższy $request będzie
przekazywał wartość new Request mimo iż nigdzie nie używam operatora
new. Tak PHP nie działa. Operator new sam się nie doda a mimo wszystko
to działa. O co chodzi?
--
Pozdrawiam,
Marek
[toc] | [prev] | [next] | [standalone]
| From | Borys Pogoreło <borys@pl.edu.leszno> |
|---|---|
| Date | 2018-12-03 14:01 +0100 |
| Message-ID | <h7gl5chedxpp.1jwtzx4lghnpe$.dlg@40tude.net> |
| In reply to | #15832 |
Dnia Sun, 2 Dec 2018 22:51:27 +0100, Marek S napisał(a): >> Fasada to tylko inny sposób dostępu do kontenera IoC. Czyli np. pisząc >> DB::query() sięgasz do kontenera pod klucz zdefiniowany w pliku >> Illuminate/Support/Facades/DB.php: > > To ja wiem. Sęk w tym, że w Laravelu fasady są w zasadzie puste. Coś je > uzupełnia po uruchomieniu frameworka. Przeczytaj jeszcze raz dokładnie to co napisałem. Masz metodę getFacadeAccessor(), która zwraca alias po którym obiekt jest pobierany z kontenera IoC. Jeśli chcesz znaleźć to "coś", to jest ono w metodzie Illuminate\Foundation\Application::registerCoreContainerAliases() > jest dla mnie również kompletnie niezrozumiałe. Sądziłem, że jakakolwiek > metoda gdziekolwiek powinna spodziewać się ściśle konkretnych > argumentów. Tymczasem okazuje się, ze z jakiś niejasnych względów zadziała: Jeśli przeczytasz dokumentację i opis "type hinting", to wszystko będzie jasne. Laravel używa Reflection by automatycznie podstawić obiekty z IoC na podstawie typów. Taka magia, całkiem wygodna. -- Borys Pogoreło borys(#)leszno,edu,pl
[toc] | [prev] | [next] | [standalone]
| From | Marek S <precz@spamowi.com> |
|---|---|
| Date | 2018-12-04 20:55 +0100 |
| Message-ID | <pu6m4i$up$1@node2.news.atman.pl> |
| In reply to | #15833 |
Hej, Odpowiem niebawem - mam ograniczony czas. Temat jest ważny dla mnie. -- Pozdrawiam, Marek
[toc] | [prev] | [next] | [standalone]
| From | Rafal Podsiadly <spinacz24@gmail.com> |
|---|---|
| Date | 2018-12-05 12:41 -0800 |
| Message-ID | <7367cb98-1e11-4ea9-9b5a-846c6259d56b@googlegroups.com> |
| In reply to | #15834 |
@Marku czytałeś https://laravel.com/docs/5.7/facades ?
[toc] | [prev] | [next] | [standalone]
| From | Marek S <precz@spamowi.com> |
|---|---|
| Date | 2018-12-06 22:43 +0100 |
| Message-ID | <puc568$u7g$1@node1.news.atman.pl> |
| In reply to | #15835 |
W dniu 2018-12-05 o 21:41, Rafal Podsiadly pisze:
> @Marku czytałeś https://laravel.com/docs/5.7/facades ?
>
Tak, oczywiście. Napisałem, że poległem analizując realny kod. Dotarłem
do etapu kiedy fasada nie robi nic innego jak tylko zwraca string.
Bazując na przykładzie z dokumentacji jest to:
protected static function getFacadeAccessor() { return 'cache'; }
Ale string przecież nie wykona żadnej operacji cache'owania więc
funkcjonalność z Cache::get() z pewnością niczego tu nie wykona.
No to lecimy dalej. Ten string wędruje do Service Container'a. A co on
takiego robi? Zagląda do pokrótce tablicy (UserRepository) i wywołuje
find. Czyli znów tu kodu naszego Cache::get() nie znajdziemy.
Znów lećmy dalej. W tablicy models znajduje się wreszcie obiekt
reprezentujący wołaną metodę. Fajnie, ale tablica obiektów nie ma nic
wspólnego z kodem źródłowym klas tych obiektów. Więc znów jesteśmy w
czarnej d... Ale przynajmniej wiemy czego szukać.
Teraz trzeba zajrzeć od drugiej strony i znaleźć miejsce, w którym ta
tablica będzie wypełniana obiektami. Zapewne będzie trzeba rozpocząć
poszukiwania od index.php i schodzić coraz niżej.
W ten sposób cały wieczór będę szukał źródeł Cache::get albo Route::get
itd. Czytanie dokumentacji zero pomogło. To jest tylko ogólnikowe bla
bla bla. Do programowania wystarczy ale nie pozwoli na wgryzienie się w
źródło. Więc ponawiam pytanie z wątku otwierającego.
--
Pozdrawiam,
Marek
[toc] | [prev] | [next] | [standalone]
| From | Rafal Podsiadly <spinacz24@gmail.com> |
|---|---|
| Date | 2018-12-06 21:50 -0800 |
| Message-ID | <fd0067a6-b2cb-4d89-9ec5-8a01de76e14a@googlegroups.com> |
| In reply to | #15836 |
https://stackoverflow.com/questions/4578335/creating-php-class-instance-with-a-string Klase mozna uyworzyc przechowujac jej nazwe w zmiennej. Czyli w efekcie return cache odwołuje sie do klasy cache ktora jest tworzona w momencie wywolania. Z tego co wyczytalem w php.net ten mechanizm jest przestarzaly i nie powinno sie go uzywac.
[toc] | [prev] | [next] | [standalone]
| From | Wojciech Bancer <wojciech.bancer@gmail.com> |
|---|---|
| Date | 2018-12-07 09:24 +0100 |
| Message-ID | <slrnq0kbho.2kb6.wojciech.bancer@pl-test.org> |
| In reply to | #15837 |
On 2018-12-07, Rafal Podsiadly <spinacz24@gmail.com> wrote:
> https://stackoverflow.com/questions/4578335/creating-php-class-instance-with-a-string
>
> Klase mozna uyworzyc przechowujac jej nazwe w zmiennej. Czyli w efekcie return cache odwołuje sie do klasy cache ktora jest tworzona w momencie wywolania.
> Z tego co wyczytalem w php.net ten mechanizm jest przestarzaly i nie powinno sie go uzywac.
Po prostu lepiej do tego użyć ReflectionClass.
$class = new \ReflectionClass('Klasa');
$instance = $class->newInstance();
--
Wojciech Bańcer
wojciech.bancer@gmail.com
[toc] | [prev] | [next] | [standalone]
| From | Marek S <precz@spamowi.com> |
|---|---|
| Date | 2018-12-08 00:01 +0100 |
| Message-ID | <pueu5g$lps$1@node2.news.atman.pl> |
| In reply to | #15837 |
W dniu 2018-12-07 o 06:50, Rafal Podsiadly pisze: > https://stackoverflow.com/questions/4578335/creating-php-class-instance-with-a-string > > Klase mozna uyworzyc przechowujac jej nazwe w zmiennej. Czyli w efekcie return cache odwołuje sie do klasy cache ktora jest tworzona w momencie wywolania. Ok, ale zupełnie nie o to mi chodziło w zapytaniu. Wydawało mi się iż pytanie jest klarowne. Pytałem się o to gdzie jest kod dla akcji Request::get lub jakiejkolwiek innej. Nie interesuje mnie fasada, która nic nie robi poza zajmowaniem czasu CPU lecz fizyczny kod PHP. Nie wiem w czym rzecz, że nie jestem zrozumiały w zapytaniu. Już dwie osoby skierowały mnie do zapoznania się z działaniem fasad w Laravelu zamiast do metodologii docierania do źródeł tego co fizycznie metoda X czy Y realizuje. -- Pozdrawiam, Marek
[toc] | [prev] | [next] | [standalone]
| From | Rafal Podsiadly <spinacz24@gmail.com> |
|---|---|
| Date | 2018-12-08 00:23 -0800 |
| Message-ID | <8a7c8a09-6a2a-4830-90bf-a10721944e26@googlegroups.com> |
| In reply to | #15839 |
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 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ć Dlatego wspomiania fasada route jest zarejestowana w pliku config\app.php#221 Następnie uruchomianie fasady generuje kod wyzwolenia vendor\laravel\framework\src\Illuminate\Routing\Route.php i to zawsze się do tego obiektu odwołujesz. Dzięki takiemu zachowaniu mamy leniwe ładowanie (czyli tylko wtedy gdy zapytam) i oszczędzamy na miejscu bo ładujemy tylko to o co pytam. Dzięki temu inny jest zestaw metod (patrz w anotate) dla projektu uruchamianego z konsoli by go przetestować a inny zestaw metod dla projektu z http
[toc] | [prev] | [next] | [standalone]
| From | Marek S <precz@spamowi.com> |
|---|---|
| Date | 2018-12-08 19:29 +0100 |
| Message-ID | <puh2he$mbe$1@node1.news.atman.pl> |
| In reply to | #15840 |
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
[toc] | [prev] | [next] | [standalone]
| From | Wojciech Bancer <wojciech.bancer@gmail.com> |
|---|---|
| Date | 2018-12-08 20:27 +0100 |
| Message-ID | <slrnq0o6pt.1k73.wojciech.bancer@pl-test.org> |
| In reply to | #15841 |
On 2018-12-08, Marek S <precz@spamowi.com> wrote: [...] >> 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. No najwięcej szans masz z dobrym edytorem, który ma dobre podpowiadanie. PhpStorm chyba ma https://plugins.jetbrains.com/plugin/7532-laravel-plugin taki plugin. Jeśli działa tak jak symfony, to jest szansa że dość dużo podpowie (ja niestety laravela nie używam), a jak będzie znał metodę, to i będziesz mógł do jej definicji trafić. Wszystkiego Ci nie podpowie, bo na 90% obiekty są zbierane z różnych komponentów, traitów, metod magicznych i co tam jeszcze. -- Wojciech Bańcer wojciech.bancer@gmail.com
[toc] | [prev] | [next] | [standalone]
| From | Marek S <precz@spamowi.com> |
|---|---|
| Date | 2018-12-08 21:53 +0100 |
| Message-ID | <puhavu$sg6$1@node2.news.atman.pl> |
| In reply to | #15842 |
W dniu 2018-12-08 o 20:27, Wojciech Bancer pisze: > No najwięcej szans masz z dobrym edytorem, który ma dobre podpowiadanie. > PhpStorm chyba ma https://plugins.jetbrains.com/plugin/7532-laravel-plugin taki plugin. Pracuję w tym właśnie edytorze i mam w/w plugin. On jest niewiele wart w powyższej kwestii. Rozwiązuje natomiast istotny problem. Ponieważ metody udostępniane przez Laravel są ściśle tajne (dla IDE), to plugin doinstalowuje niby fałszywą implementację tych metod (na poziomie helpera). Dzięki temu mam podpowiedzi parametrów itp. Dodatkowo w menu frameworków można sobie wtedy coś poustawiać dla Laravela. W żadnym razie nie uzyskasz informacji na temat źródła fl Route::get() > Jeśli działa tak jak symfony, to jest szansa że dość dużo podpowie (ja niestety laravela > nie używam), a jak będzie znał metodę, to i będziesz mógł do jej definicji trafić. > Wszystkiego Ci nie podpowie, bo na 90% obiekty są zbierane z różnych komponentów, > traitów, metod magicznych i co tam jeszcze. No więc właśnie. PHPStorm to zwykłe IDE. Jeśli producent frameworka zaszyfrował i założył zasieki na wścibskich, to jedyne co otrzymujesz, to podpowiedzi do interfejsu w trakcie programowania. -- Pozdrawiam, Marek
[toc] | [prev] | [next] | [standalone]
| From | Wojciech Bancer <wojciech.bancer@gmail.com> |
|---|---|
| Date | 2018-12-08 22:27 +0100 |
| Message-ID | <slrnq0odp5.1o67.wojciech.bancer@pl-test.org> |
| In reply to | #15843 |
On 2018-12-08, Marek S <precz@spamowi.com> wrote: [...] >> Jeśli działa tak jak symfony, to jest szansa że dość dużo podpowie (ja niestety laravela >> nie używam), a jak będzie znał metodę, to i będziesz mógł do jej definicji trafić. >> Wszystkiego Ci nie podpowie, bo na 90% obiekty są zbierane z różnych komponentów, >> traitów, metod magicznych i co tam jeszcze. > > No więc właśnie. PHPStorm to zwykłe IDE. Jeśli producent frameworka > zaszyfrował i założył zasieki na wścibskich, to jedyne co otrzymujesz, > to podpowiedzi do interfejsu w trakcie programowania. Tam zaraz zasieki. To jest po prostu troszkę bardziej "fancy" programowanie obiektowe. A trudno się to analizuje, bo jest efekt skali (duży framework). Niekoniecznie przejrzyste i przystępne, ale co zrobić. Jak Ci tak zależy, to sobie puść debuger step by step, to pewnie w końcu dojdziesz. -- Wojciech Bańcer wojciech.bancer@gmail.com
[toc] | [prev] | [next] | [standalone]
| From | Marek S <precz@spamowi.com> |
|---|---|
| Date | 2018-12-09 00:07 +0100 |
| Message-ID | <puhirh$4hs$2@node2.news.atman.pl> |
| In reply to | #15845 |
W dniu 2018-12-08 o 22:27, Wojciech Bancer pisze: > przejrzyste i przystępne, ale co zrobić. Jak Ci tak zależy, to sobie puść debuger > step by step, to pewnie w końcu dojdziesz. > Wątek napisałem po tym jak sobie zapuściłem go. Za dużo jest nic nie robiących funkcji do funkcji z funkcji dla funkcji. Liczyłem na to, że ktoś z Was Wie, gdzie Laravel ukrywa funkcjonalność i jest na to jakiś schemat. -- Pozdrawiam, Marek
[toc] | [prev] | [next] | [standalone]
| From | Wojciech Bancer <wojciech.bancer@gmail.com> |
|---|---|
| Date | 2018-12-09 11:19 +0100 |
| Message-ID | <slrnq0pr12.2bnd.wojciech.bancer@pl-test.org> |
| In reply to | #15847 |
On 2018-12-08, Marek S <precz@spamowi.com> wrote: [...] >> przejrzyste i przystępne, ale co zrobić. Jak Ci tak zależy, to sobie puść debuger >> step by step, to pewnie w końcu dojdziesz. > > Wątek napisałem po tym jak sobie zapuściłem go. Za dużo jest nic nie > robiących funkcji do funkcji z funkcji dla funkcji. Liczyłem na to, że > ktoś z Was Wie, gdzie Laravel ukrywa funkcjonalność i jest na to jakiś > schemat. No jest. Reflection Class, Traits i Dependency Injection. Tylko nikomu się nie chce analizować tego kodu bez wyraźnej potrzeby, bo taka wiedza specjalnie nic dużo nie daje. Można zauważyć, implementacja zmienia się czasem z wersji na wersję, ale póki działa (są testy), to po co uczyć się konkretnie tej jednej implementacji dla tej jednej wersji? -- Wojciech Bańcer wojciech.bancer@gmail.com
[toc] | [prev] | [next] | [standalone]
| From | Borys Pogoreło <borys@pl.edu.leszno> |
|---|---|
| Date | 2018-12-09 22:43 +0100 |
| Message-ID | <1p0p51whbumi0.1jkd26p4xv8ar$.dlg@40tude.net> |
| In reply to | #15842 |
Dnia Sat, 8 Dec 2018 20:27:56 +0100, Wojciech Bancer napisał(a): > No najwięcej szans masz z dobrym edytorem, który ma dobre podpowiadanie. > PhpStorm chyba ma https://plugins.jetbrains.com/plugin/7532-laravel-plugin taki plugin. Zamiast tego proponuję: composer require barryvdh/laravel-ide-helper -- Borys Pogoreło borys(#)leszno,edu,pl
[toc] | [prev] | [next] | [standalone]
| From | Wojciech Bancer <wojciech.bancer@gmail.com> |
|---|---|
| Date | 2018-12-10 20:49 +0100 |
| Message-ID | <slrnq0tgqf.15p8.wojciech.bancer@pl-test.org> |
| In reply to | #15855 |
On 2018-12-09, Borys Pogoreło <borys@pl.edu.leszno> wrote: [...] >> No najwięcej szans masz z dobrym edytorem, który ma dobre podpowiadanie. >> PhpStorm chyba ma https://plugins.jetbrains.com/plugin/7532-laravel-plugin taki plugin. > > Zamiast tego proponuję: > composer require barryvdh/laravel-ide-helper Ja od laravela to daleko stoję :) -- Wojciech Bańcer wojciech.bancer@gmail.com
[toc] | [prev] | [next] | [standalone]
| From | Borys Pogoreło <borys@pl.edu.leszno> |
|---|---|
| Date | 2018-12-10 21:55 +0100 |
| Message-ID | <5e1htz3y6tix.1ss2z3lzdx4p8$.dlg@40tude.net> |
| In reply to | #15860 |
Dnia Mon, 10 Dec 2018 20:49:34 +0100, Wojciech Bancer napisał(a): >> Zamiast tego proponuję: >> composer require barryvdh/laravel-ide-helper > > Ja od laravela to daleko stoję :) A ja od Angulara ;) Ten pakiet jest o tyle fajny, że działa niezależnie od IDE, generując jawne powiązania między "magicznymi" odwołaniami w kodzie. -- Borys Pogoreło borys(#)leszno,edu,pl
[toc] | [prev] | [next] | [standalone]
Page 1 of 3 [1] 2 3 Next page →
Back to top | Article view | pl.comp.lang.php
csiph-web