🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
48 messages
48 total messages Started by Marek S Fri, 30 Nov 2018 22:17
Laravel - jak to to działa?
#232041
Author: Marek S
Date: Fri, 30 Nov 2018 22:17
12 lines
1308 bytes
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
Re: Laravel - jak to to działa?
#232042
Author: Borys Pogoreło
Date: Sat, 01 Dec 2018 19:35
40 lines
2205 bytes
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
Re: Laravel - jak to to działa?
#232043
Author: Marek S
Date: Sun, 02 Dec 2018 21:51
70 lines
3324 bytes
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
Re: Laravel - jak to to działa?
#232044
Author: Borys Pogoreło
Date: Mon, 03 Dec 2018 13:01
27 lines
2037 bytes
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
Re: Laravel - jak to to działa?
#232045
Author: Marek S
Date: Tue, 04 Dec 2018 19:55
7 lines
1111 bytes
Hej,

Odpowiem niebawem - mam ograniczony czas. Temat jest ważny dla mnie.

-- 
Pozdrawiam,
Marek
Re: Laravel - jak to to działa?
#232046
Author: Rafal Podsiadly
Date: Wed, 05 Dec 2018 20:41
1 lines
1561 bytes
@Marku czytałeś https://laravel.com/docs/5.7/facades ?
Re: Laravel - jak to to działa?
#232047
Author: Marek S
Date: Thu, 06 Dec 2018 21:43
36 lines
2666 bytes
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
Re: Laravel - jak to to działa?
#232048
Author: Rafal Podsiadly
Date: Fri, 07 Dec 2018 05:50
5 lines
1917 bytes
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.
Re: Laravel - jak to to działa?
#232049
Author: Wojciech Bancer
Date: Fri, 07 Dec 2018 08:24
14 lines
1662 bytes
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
Re: Laravel - jak to to działa?
#232050
Author: Marek S
Date: Fri, 07 Dec 2018 23:01
18 lines
2065 bytes
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
Re: Laravel - jak to to działa?
#232051
Author: Rafal Podsiadly
Date: Sat, 08 Dec 2018 08:23
21 lines
2618 bytes
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
Re: Laravel - jak to to działa?
#232052
Author: 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
Re: Laravel - jak to to działa?
#232053
Author: Wojciech Bancer
Date: Sat, 08 Dec 2018 19:27
24 lines
2418 bytes
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
Re: Laravel - jak to to działa?
#232054
Author: Marek S
Date: Sat, 08 Dec 2018 20:53
25 lines
2669 bytes
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
Re: Laravel - jak to to działa?
#232072
Author: Marek S
Date: Sat, 08 Dec 2018 21:03
16 lines
2144 bytes
W dniu 2018-12-08 o 09:23, Rafal Podsiadly pisze:

> 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ć

Tak naszła mnie właśnie myśl a'propos powyższego. Od czasu do czasu 
zarabiam na zleceniach pt. działało coś w jQuery (które też jest 
frameworkiem) a przestało bo wyszły np. nowsze przeglądarki. Zaufanie 
więc należy mieć mocno ograniczone. Co ja wtedy robię? Zastępuję 
niedziałającą jedną linijkę kodu jQuery jedną linijką kodu JS i nie 
wnikam dlaczego coś przestało działać bo ktoś kiedyś zaufał 
frameworkowi. Przypuszczam, że dlatego mam pracę bo dociekam, ślepo 
niczemu nie ufam i rozwiązuję fuckupy od ręki.

-- 
Pozdrawiam,
Marek
Re: Laravel - jak to to działa?
#232055
Author: Wojciech Bancer
Date: Sat, 08 Dec 2018 21:27
21 lines
2513 bytes
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
Re: Laravel - jak to to działa?
#232073
Author: Wojciech Bancer
Date: Sat, 08 Dec 2018 21:29
20 lines
2363 bytes
On 2018-12-08, Marek S <precz@spamowi.com> wrote:

[...]

> Tak naszła mnie właśnie myśl a'propos powyższego. Od czasu do czasu 
> zarabiam na zleceniach pt. działało coś w jQuery (które też jest 
> frameworkiem) a przestało bo wyszły np. nowsze przeglądarki. Zaufanie 
> więc należy mieć mocno ograniczone. Co ja wtedy robię? Zastępuję 
> niedziałającą jedną linijkę kodu jQuery jedną linijką kodu JS i nie 
> wnikam dlaczego coś przestało działać bo ktoś kiedyś zaufał 
> frameworkowi. Przypuszczam, że dlatego mam pracę bo dociekam, ślepo 
> niczemu nie ufam i rozwiązuję fuckupy od ręki.

To ja już wolę zaufać frameworkowi niż randomowemu programiście, 
wrzucającemu linijki kodu gdzie popadnie, a po którym śladu dokumentacji 
nie ma i jak go np. trafi pociąg, to jest problem. :)

-- 
Wojciech Bańcer
wojciech.bancer@gmail.com
Re: Laravel - jak to to działa?
#232056
Author: Marek S
Date: Sat, 08 Dec 2018 23:07
14 lines
1906 bytes
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
Re: Laravel - jak to to działa?
#232074
Author: Marek S
Date: Sat, 08 Dec 2018 23:19
26 lines
2679 bytes
W dniu 2018-12-08 o 22:29, Wojciech Bancer pisze:

> To ja już wolę zaufać frameworkowi niż randomowemu programiście,
> wrzucającemu linijki kodu gdzie popadnie, a po którym śladu dokumentacji
> nie ma i jak go np. trafi pociąg, to jest problem. :)

Hehe... i to mnie cieszy szczerze mówiąc. To nie moje zdanie, gadając z 
przełożonym, który mnie zatrudnił, podpytałem go o to jak wygląda rynek 
pracowników i skąd ma takie problemy ze znalezieniem kogokolwiek. Otóż 
zapanowała na rynku swego rodzaju patologia lub korzyść jednocześnie. 
Ciężko to osądzać. Okazuje się obecnie, że nawet wieloletni programiści 
(niezależnie od technologii, o jakiej rozmawiamy) wiedzą jak coś 
zbudować we frameworku X czy Y lecz nie potrafią powiedzieć czym np. 
jest sortowanie bąbelkowe. Bo framework tego nie ma więc nie istnieje 
lub jakiś plugin to realizuje więc nie trzeba o niczym wiedzieć. To 
konkretny przykład z rozmowy kwalifikacyjnej.

Bardzo dobrze ująłeś problem. Oczywiste jest, że odwołanie się po ID w 
jQuery to $("id") a wykorzystanie JS w postaci 
document.getElementById("id") to funkcja nieudokumentowana używana tylko 
przez randomowych programistów. Mam pracę gdyż nie zgadzam się z tą 
teorią :-)

-- 
Pozdrawiam,
Marek
Re: Laravel - jak to to działa?
#232086
Author: Wojciech Bancer
Date: Sun, 09 Dec 2018 10:10
57 lines
4152 bytes
On 2018-12-08, Marek S <precz@spamowi.com> wrote:

[...]

> Bardzo dobrze ująłeś problem. Oczywiste jest, że odwołanie się po ID w 
> jQuery to $("id") a wykorzystanie JS w postaci 
> document.getElementById("id") to funkcja nieudokumentowana używana tylko 
> przez randomowych programistów. Mam pracę gdyż nie zgadzam się z tą 
> teorią :-)

Ależ proszę Cię bardzo. Znalazłeś swoją niszę, w swoim grajdołku i jeśli
Ci to wystarcza, to ok.

Ja zaś mam zlecenia (bo nie mam pracodawcy), bo często okazuje się, 
ze po mistrzach hackingu trzeba cały system przepisać od nowa, porządnie, 
dodając testy, bo nikt inny poza wymienionym mistrzem hackingu nie wie 
co tam w środku jest. A wspomniani mistrzowie przy pewnej złożoności 
kodu sami przestają ogarniać i odchodzą.

W zakresie programowania webowego potrzebna wiedza jest diametralnie inna
niż "sortowanie bąbelkowe" i tutaj taką można przyswajać raczej w ramach 
ciekawostek i historii programowania, bo jak już Ci przyjdzie sortować, 
to zapewne użyjesz wbudowanej funkcji sort() i co najwyżej tylko ją zrobisz 
customowo dodając jej obsługę w środku (decydującą czy a > b, czy nie), 
pozostawiając algorytmikę silnikowi javascript (albo php).

W dzisiejszych czasach istotne jest by człowiek umiał dobrze przeszukiwać zbiory
informaji (google, stack overflow), umiał zadawać odpowiednie pytania (by otrzymać
odpowiednie wyniki) i umiał skorzystać z dostępnych narzędzi, żeby przyspieszyć
pracę, a nie wymyślał koło na nowo. Bo zanim te koło wymyślisz, to ktoś inny zdąży
pół auta zbudować. A za niedługo (jak odpowiednio rozbuduje się ML), to i to nie
będzie potrzebne.

getElementById('aa') to są takie podstawy, podstaw, że pewnie każdy programista
to zna [przynajmniej z mojej dziedziny], tylko nikomu by się nie przyszło 
tym szczycić. A czy znasz zasady działania generatorów? Czym się różni
arrow function od zwykłej? Czy potrafisz powiedzieć jaki będzie wynik
poniższych linii kodu i dlaczego (bez uruchamiania oczywiście)?

---
setTimeout(() => console.log('setTimeout'));
Promise.resolve(1).then(() => console.log('promise resolve'));
console.log('hello!');
---

Albo wiesz co to jest currying?

Programowanie to jest tak rozległa dziedzina w której non stop pojawia
się coś nowego, że patrzenie z wyższością na innych tylko dlatego że 
znasz "wybrany przez Ciebie" fragment podstaw, to trochę zarozumiałe
podejście. Dobrego programistę poznaje się po tym jak rozwiązuje problemy
i jak szuka informacji, a nie po tym jaką ma wiedzę w głowie. Bo tej
w głowie, to każdy będzie miał za mało.

-- 
Wojciech Bańcer
wojciech.bancer@gmail.com
Re: Laravel - jak to to działa?
#232057
Author: Wojciech Bancer
Date: Sun, 09 Dec 2018 10:19
23 lines
2299 bytes
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
Re: Laravel - jak to to działa?
#232075
Author: Rafal Podsiadly
Date: Sun, 09 Dec 2018 16:36
46 lines
4757 bytes
W dniu niedziela, 9 grudnia 2018 00:19:42 UTC+1 użytkownik Marek S napisał:
> W dniu 2018-12-08 o 22:29, Wojciech Bancer pisze:
> 
> > To ja już wolę zaufać frameworkowi niż randomowemu programiście,
> > wrzucającemu linijki kodu gdzie popadnie, a po którym śladu dokumentacji
> > nie ma i jak go np. trafi pociąg, to jest problem. :)
> 
> Hehe... i to mnie cieszy szczerze mówiąc. To nie moje zdanie, gadając z 
> przełożonym, który mnie zatrudnił, podpytałem go o to jak wygląda rynek 
> pracowników i skąd ma takie problemy ze znalezieniem kogokolwiek. Otóż 
> zapanowała na rynku swego rodzaju patologia lub korzyść jednocześnie. 
> Ciężko to osądzać. Okazuje się obecnie, że nawet wieloletni programiści 
> (niezależnie od technologii, o jakiej rozmawiamy) wiedzą jak coś 
> zbudować we frameworku X czy Y lecz nie potrafią powiedzieć czym np. 
> jest sortowanie bąbelkowe. Bo framework tego nie ma więc nie istnieje 
> lub jakiś plugin to realizuje więc nie trzeba o niczym wiedzieć. To 
> konkretny przykład z rozmowy kwalifikacyjnej.
> 
> Bardzo dobrze ująłeś problem. Oczywiste jest, że odwołanie się po ID w 
> jQuery to $("id") a wykorzystanie JS w postaci 
> document.getElementById("id") to funkcja nieudokumentowana używana tylko 
> przez randomowych programistów. Mam pracę gdyż nie zgadzam się z tą 
> teorią :-)
> 
> -- 
> Pozdrawiam,
> Marek

@Marku
Spróbuje podsumować, jednocześnie nie odwołując się do wszystkich wątków w szczegółach.
1. Larvel podczas budowania swojego środowiska wykorzystuje symfony wystarczy uruchomić kod composera z dokumentacji projektu 
"composer create-project --prefer-dist laravel/laravel blog"
https://laravel.com/docs/5.7 

I popatrzeć co ładuje / larvel w więkoszości przykrywa symfony czymś swoim. Ten projekt w dużej mierze wyglada jak nakładka na SYMFONY -> która jest opakowana w funkcje magiczne / tym samym można projekt sprzedawać... bo jest zaciemniony. *wersja komercyjna.

2. request .... hm ja bym spojrzął tutaj. 
https://www.google.pl/search?q=laravel+request+image&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiSwbXfkpPfAhWJiywKHaAtD30Q_AUIDigB&biw=1536&bih=732#imgrc=cOARDrNOVDCHkM:

3. JS / podnoszenie bibliotek zawsze, ale to zawsze wymaga przeczytania (nie ważne jaka bibiloteka). dokumentacji. Co do jQuery powstała konkurencja http://vanilla-js.com/

PS: JS się na tyle rozwinął, że jQuery po mału staje się zbędny.

4. Co do Larver proponuje byś podłączył się pod projekt ludzi który rozwijają projekt na github https://github.com/laravel/laravel

Zgodzę się z toba podstaw są potrzebne bezwględnie... A hakerów to nie wiem jakich masz... dla mnie Haker to ktoś kto ma wiedzę (kodowanie i zna standardy) taki kod czyta się wspaniale. :) a psełdo hakerzy to cóż .. nie ma sensu poświećać soich cennych zasóbób jak mózg na rozijanie dyskusji. 
Re: Laravel - jak to to działa?
#232076
Author: Wojciech Bancer
Date: Sun, 09 Dec 2018 17:02
27 lines
2526 bytes
On 2018-12-09, Rafal Podsiadly <spinacz24@gmail.com> wrote:

[...]

> Zgodzę się z toba podstaw są potrzebne bezwględnie... 

Ale inne są podstawy dla programisty C embedded, a inne dla programisty
Web a inne dla programisty robiącego core bazy danych. Odpytywanie 
na rozmowie kwalifikacyjnej programisty web o sortowanie bąbelkowe 
ma tyle samo sensu co odpytywanie chociażby z budowy układu scalonego 
i bramek NAND, czy komend assemblera x86. Albo Pana Tadeusza.

A języki wysokiego rzędu powstały po to by:

a) obniżać poziom wymaganej wiedzy i umożliwić większej ilości osób zajmowanie 
   się tym (bo mamy coraz większe zapotrzebowanie)
b) umożliwić optymalniejszą pracę w zespołach
c) umożliwić tworzenie projektów o większej złożoności kodu
d) każdy język jest projektowany do rozwiązywania konkretnych problemów
   i zawiera pewne wsparcie dla rozwiązywania danych problemów.

I dalszą tego konsekwencją [czyli potrzeby na jeszcze bardziej złożone aplikacje]
są frameworki oparte o dobre praktyki.

-- 
Wojciech Bańcer
wojciech.bancer@gmail.com
Re: Laravel - jak to to działa?
#232077
Author: Rafal Podsiadly
Date: Sun, 09 Dec 2018 17:48
34 lines
3644 bytes
W dniu niedziela, 9 grudnia 2018 18:02:46 UTC+1 użytkownik Wojciech Bancer napisał:
> On 2018-12-09, Rafal Podsiadly <spinacz24@gmail.com> wrote:
> 
> [...]
> 
> > Zgodzę się z toba podstaw są potrzebne bezwględnie... 
> 
> Ale inne są podstawy dla programisty C embedded, a inne dla programisty
> Web a inne dla programisty robiącego core bazy danych. Odpytywanie 
> na rozmowie kwalifikacyjnej programisty web o sortowanie bąbelkowe 
> ma tyle samo sensu co odpytywanie chociażby z budowy układu scalonego 
> i bramek NAND, czy komend assemblera x86. Albo Pana Tadeusza.
> 
> A języki wysokiego rzędu powstały po to by:
> 
> a) obniżać poziom wymaganej wiedzy i umożliwić większej ilości osób zajmowanie 
>    się tym (bo mamy coraz większe zapotrzebowanie)
> b) umożliwić optymalniejszą pracę w zespołach
> c) umożliwić tworzenie projektów o większej złożoności kodu
> d) każdy język jest projektowany do rozwiązywania konkretnych problemów
>    i zawiera pewne wsparcie dla rozwiązywania danych problemów.
> 
> I dalszą tego konsekwencją [czyli potrzeby na jeszcze bardziej złożone aplikacje]
> są frameworki oparte o dobre praktyki.
> 
> -- 
> Wojciech Bańcer
> wojciech.bancer@gmail.com

Mnie uczyli zarówno NAND jak i 3, 4, 5 notacji baz danych (podobno jest aż 8). Także baz obiektowych. Taka wiedza sie przydaje nawet w PHP. 
Podejrzewam, że sortowanie bezbelkowe też wszystko zależny od projektu. 
Nawet jak ktoś nie jest po studiach warto poznać / algorytmy sortowanie / notacje normalizacji baz danych. Dzięki temu może nie wydala się lepiej na rozmowie ale zdecydowanie pisze sie lepszy kod. 

https://eduinf.waw.pl/inf/alg/002_struct/0005.php często sobie tak rozpisuje warniki i je upraszam
Re: Laravel - jak to to działa?
#232078
Author: Wojciech Bancer
Date: Sun, 09 Dec 2018 20:24
44 lines
3458 bytes
On 2018-12-09, Rafal Podsiadly <spinacz24@gmail.com> wrote:

[...]

> Mnie uczyli zarówno NAND jak i 3, 4, 5 notacji baz danych
> (podobno jest aż 8). Także baz obiektowych.

Mnie też. O NANDach nawet w technikum, a w ramach projektu studenckiego
zrobiłem Windowsowego klienta Gadu-Gadu zajmującego 8KB (bez ikonek)
oraz samodzielnie zbudowałem spectrum wg schematu.

Żadna z powyższych umiejętności nie jest i nigdy nie była mi *niezbędna* 
w życiu zawodowym. Dyplom ukończenia studiów też nie. I specjalnie też
nie pomogły.

> Taka wiedza sie przydaje nawet w PHP.

Przydaje to się umiejętność googlowania wiedzy
jak mam do czegoś siadać.

> Nawet jak ktoś nie jest po studiach warto poznać / algorytmy 
> sortowanie / notacje normalizacji baz danych. Dzięki temu może nie wydala 
> się lepiej na rozmowie ale zdecydowanie pisze sie lepszy kod. 

Niespecjalnie się z tym zgodzę. Ostatnio (pół roku temu) robiłem 
rekrutację. Najlepszy kod napisała osoba która była prawnikiem 
i zdecydowała się na przekwalifikowanie na programistę. I zgłębiała 
wiedzę z kursów oraz robiła samodzielnie ćwiczenia we własnym 
zakresie.

Nie ma przygotowania teoretycznego o którym mówisz, a mimo
to zadania napisała najlepiej ze wszystkich. Oczyście jakbym
zaczął pytać o algorytmy z tyłka, to by poległa. Każdy by
poległ, bo nie ma czegoś takiego jak Niezbędna Wiedza Programisty
i to co w algorytmice jest istotne dla jednego, dla innego może
być kompletnie nieprzydatne.

Więc nie ma co uogólniać i z góry zakładać poziom wynika
z umiejętności wyrecytowania algorytmu z pamięci, czy też 
wykształcenia.

-- 
Wojciech Bańcer
wojciech.bancer@gmail.com
Re: Laravel - jak to to działa?
#232058
Author: Borys Pogoreło
Date: Sun, 09 Dec 2018 21:43
12 lines
1640 bytes
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
Re: Laravel - jak to to działa?
#232061
Author: Borys Pogoreło
Date: Sun, 09 Dec 2018 21:49
27 lines
2352 bytes
Dnia Sat, 8 Dec 2018 19:29:01 +0100, Marek S napisał(a):

>> 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:
> (...)

Bo próbujesz się dokopać do czegoś, co nie istnieje tak naprawdę.
Route::get() oznacza, że rejestrujesz routing dla metody GET. A framework,
całkiem rozsądnie zresztą, nie definiuje tego na "twardo". Z tego co widzę,
to klasa Route używa traita Macroable, więc gdzieś głębiej są definiowane
makra dla metod HTTP i routingów "specjalnych" typu "any", "view", itd.

Ale powtórzę za Rafałem - po co Ci ta wiedza? Jeśli nie zamierzasz głębiej
się wgryzać w logikę frameworka albo przesłaniać niektórych klas, to jest
to Ci kompletnie niepotrzebne.

> 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 :-

Wal, najwyżej powtórzymy, że Ci to jest niepotrzebne ;)

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Laravel - jak to to działa?
#232079
Author: Borys Pogoreło
Date: Sun, 09 Dec 2018 21:55
18 lines
2253 bytes
Dnia Sun, 9 Dec 2018 21:24:09 +0100, Wojciech Bancer napisał(a):

> Nie ma przygotowania teoretycznego o którym mówisz, a mimo
> to zadania napisała najlepiej ze wszystkich. Oczyście jakbym
> zaczął pytać o algorytmy z tyłka, to by poległa. Każdy by
> poległ, bo nie ma czegoś takiego jak Niezbędna Wiedza Programisty
> i to co w algorytmice jest istotne dla jednego, dla innego może
> być kompletnie nieprzydatne.

Algorytmy - ok, to w większości przypadków załatwia język lub biblioteki.
Ale wiedzy o strukturach danych IMO już można wymagać, bo to są konkretne
narzędzia do rozwiązywania problemów.

Tak z ciekawości - jakie zadania dawałeś?

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Laravel - jak to to działa?
#232062
Author: Borys Pogoreło
Date: Sun, 09 Dec 2018 21:58
18 lines
2034 bytes
Dnia Sun, 9 Dec 2018 22:49:12 +0100, Borys Pogoreło napisał(a):

> Bo próbujesz się dokopać do czegoś, co nie istnieje tak naprawdę.
> Route::get() oznacza, że rejestrujesz routing dla metody GET. A framework,
> całkiem rozsądnie zresztą, nie definiuje tego na "twardo". Z tego co widzę,
> to klasa Route używa traita Macroable, więc gdzieś głębiej są definiowane
> makra dla metod HTTP i routingów "specjalnych" typu "any", "view", itd.

Ale jeśli już koniecznie chcesz wiedzieć, gdzie to jest definiowane:

laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php:139

i dalej już sobie możesz klikać - addRoute(), createRoute(),
RouteCollection::add(), itd.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Laravel - jak to to działa?
#232087
Author: Tomek
Date: Mon, 10 Dec 2018 09:08
22 lines
2323 bytes
W dniu 08.12.2018 o 00:01, Marek S pisze:
> 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.
> 

A "debug_backtrace" nie da odpowiedzi co po kolei wywołuje?
Albo wyrzucić wyjątek i zobaczyć ścieżkę od środka na zewnątrz.
Re: Laravel - jak to to działa?
#232059
Author: Wojciech Bancer
Date: Mon, 10 Dec 2018 19:49
15 lines
1767 bytes
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
Re: Laravel - jak to to działa?
#232080
Author: Wojciech Bancer
Date: Mon, 10 Dec 2018 19:59
29 lines
2774 bytes
On 2018-12-09, Borys Pogoreło <borys@pl.edu.leszno> wrote:

[...]

>> poległ, bo nie ma czegoś takiego jak Niezbędna Wiedza Programisty
>> i to co w algorytmice jest istotne dla jednego, dla innego może
>> być kompletnie nieprzydatne.
>
> Algorytmy - ok, to w większości przypadków załatwia język lub biblioteki.
> Ale wiedzy o strukturach danych IMO już można wymagać, bo to są konkretne
> narzędzia do rozwiązywania problemów.
>
> Tak z ciekawości - jakie zadania dawałeś?

Pytania były bardzo nastawione głównie pod to co używamy w projekcie
w praktyce, np. jak zaprojektować efektywną walidację danych 
wejściowych (JSON), czy jak zakodować dane binarne w JSONie 
(w celu przesłania ich dalej), było też parę zadań, w których 
trzeba było zbudować komponenty w angularze i przeprocesować 
dane wejściowe by uzyskać żądany efekt.

Oczywiście zadania do zrobienia w domu, a nie na kartce w salce 
biurowej, bo mnie przede wszystkim interesowało czy ktoś umie
rozwiązać postawiony przed nim problem, a nie czy potrafi
wyrecytować coś z pamięci.

-- 
Wojciech Bańcer
wojciech.bancer@gmail.com
Re: Laravel - jak to to działa?
#232081
Author: Borys Pogoreło
Date: Mon, 10 Dec 2018 20:53
23 lines
2343 bytes
Dnia Mon, 10 Dec 2018 20:59:46 +0100, Wojciech Bancer napisał(a):

> Pytania były bardzo nastawione głównie pod to co używamy w projekcie
> w praktyce, np. jak zaprojektować efektywną walidację danych 
> wejściowych (JSON), 

Język dowolny czy JS?

> czy jak zakodować dane binarne w JSONie 
> (w celu przesłania ich dalej), 

Z naciskiem na base64, czy jest lepsza metoda (o ile wymogiem jest JSON)?

> Oczywiście zadania do zrobienia w domu, a nie na kartce w salce 
> biurowej, bo mnie przede wszystkim interesowało czy ktoś umie
> rozwiązać postawiony przed nim problem, a nie czy potrafi
> wyrecytować coś z pamięci.

Albo skopiować ze SO ;)

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Laravel - jak to to działa?
#232060
Author: Borys Pogoreło
Date: Mon, 10 Dec 2018 20:55
15 lines
1773 bytes
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
Re: Laravel - jak to to działa?
#232082
Author: Wojciech Bancer
Date: Mon, 10 Dec 2018 21:10
33 lines
3049 bytes
On 2018-12-10, Borys Pogoreło <borys@pl.edu.leszno> wrote:

[...]

>> Pytania były bardzo nastawione głównie pod to co używamy w projekcie
>> w praktyce, np. jak zaprojektować efektywną walidację danych 
>> wejściowych (JSON), 
> Język dowolny czy JS?

Akurat w tym wypadku JS (node).

>> czy jak zakodować dane binarne w JSONie 
>> (w celu przesłania ich dalej), 
> Z naciskiem na base64, czy jest lepsza metoda (o ile wymogiem jest JSON)?

Z naciskiem na base64. Umiejętność przydatna jak się chce przesłać
np. binarkę przez API Gateway. I zaskakujące, ale nie każdy potrafił
to zadanie dobrze zrobić. :)

>> Oczywiście zadania do zrobienia w domu, a nie na kartce w salce 
>> biurowej, bo mnie przede wszystkim interesowało czy ktoś umie
>> rozwiązać postawiony przed nim problem, a nie czy potrafi
>> wyrecytować coś z pamięci.
>
> Albo skopiować ze SO ;)

Jak skopiuje bezmyślnie i nie będzie potrafił zmodyfikować do
potrzeb, to też coś takiego zobaczysz. Ale tak. Jak umie skopiować
z SO i przez to szybciej rozwiazać problem, to czemu nie?

-- 
Wojciech Bańcer
wojciech.bancer@gmail.com
Re: Laravel - jak to to działa?
#232063
Author: Marek S
Date: Mon, 10 Dec 2018 21:48
22 lines
2187 bytes
W dniu 2018-12-09 o 22:58, Borys Pogoreło pisze:

> Ale jeśli już koniecznie chcesz wiedzieć, gdzie to jest definiowane:
> 
> laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php:139
> 
> i dalej już sobie możesz klikać - addRoute(), createRoute(),
> RouteCollection::add(), itd.

Hehe.. Właśnie zagłębiłem się dwa poziomy dalej. Zerknąłem najpierw w 
addRoute a potem w to co zwraca. Wszędzie jest 1 linia kodu z return na 
początku.

Zdumiewa mnie iż za pomocą jednego statement'a "return" można napisać 
bardzo skomplikowane funkcjonalności. Żadne standardowe funkcje PHP nie 
są potrzebne. Żadne pętle i żadne warunki. Niepotrzebna wiedza.  :-D

Poddaję się - nie będę dociekał :-)

-- 
Pozdrawiam,
Marek
Re: Laravel - jak to to działa?
#232085
Author: Marek S
Date: Mon, 10 Dec 2018 22:02
35 lines
2743 bytes
W dniu 2018-12-09 o 17:36, Rafal Podsiadly pisze:


> I popatrzeć co ładuje / larvel w więkoszości przykrywa symfony czymś
> swoim. Ten projekt w dużej mierze wyglada jak nakładka na SYMFONY ->
> która jest opakowana w funkcje magiczne / tym samym można projekt
> sprzedawać... bo jest zaciemniony. *wersja komercyjna.

Właśnie tak zaczynam ideologię fremeworka postrzegać. Więcej w nim 
komercji niż kodu.

>  3. JS / podnoszenie bibliotek zawsze, ale to zawsze wymaga
> przeczytania (nie ważne jaka bibiloteka). dokumentacji. Co do jQuery
> powstała konkurencja http://vanilla-js.com/

Zgadza się.

> 
> PS: JS się na tyle rozwinął, że jQuery po mału staje się zbędny.

Więc właśnie to pośrednio zasygnalizowałem. Oczywiście nie tylko to. Np. 
obudowywanie poprzez jQuery czystej JS-funkcji nie poprawia niczego.

> A hakerów to
> nie wiem jakich masz... dla mnie Haker to ktoś kto ma wiedzę
> (kodowanie i zna standardy) taki kod czyta się wspaniale. :) a psełdo
> hakerzy to cóż .. nie ma sensu poświećać soich cennych zasóbób jak
> mózg na rozijanie dyskusji.

Z hakerami, to nie bardzo kojarzę do czego nawiązujesz? Nie mam żadnych 
hakerów. To nie moja branża.

-- 
Pozdrawiam,
Marek
Re: Laravel - jak to to działa?
#232088
Author: Marek S
Date: Mon, 10 Dec 2018 22:07
14 lines
1728 bytes
W dniu 2018-12-10 o 10:08, Tomek pisze:

> A "debug_backtrace" nie da odpowiedzi co po kolei wywołuje?

> Albo wyrzucić wyjątek i zobaczyć ścieżkę od środka na zewnątrz.

No to wyświetli mi, że w funkcji tablica["get"]() zdarzyło się coś. Tyle 
tylko, że trzeba potem szukać, co wstrzyknęło referencję do obiektu w 
tablica["get"]. Dowiem się jakie są linie w kodu wewnątrz ale nie skąd 
pochodzą.

-- 
Pozdrawiam,
Marek
Re: Laravel - jak to to działa?
#232083
Author: Borys Pogoreło
Date: Mon, 10 Dec 2018 22:54
21 lines
2330 bytes
Dnia Mon, 10 Dec 2018 22:10:40 +0100, Wojciech Bancer napisał(a):

>> Język dowolny czy JS?
> 
> Akurat w tym wypadku JS (node).

npm install joi ;)

>> Albo skopiować ze SO ;)
> 
> Jak skopiuje bezmyślnie i nie będzie potrafił zmodyfikować do
> potrzeb, to też coś takiego zobaczysz. Ale tak. Jak umie skopiować
> z SO i przez to szybciej rozwiazać problem, to czemu nie?

Skopiować to jedno, ale rozumieć co się kopiuje to zupełnie inna sprawa...
Ale podejrzewam, że i tak robisz im sprawdzian z zaprezentowanego
rozwiązania i każesz je opisać?

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Laravel - jak to to działa?
#232064
Author: Borys Pogoreło
Date: Mon, 10 Dec 2018 22:56
12 lines
1862 bytes
Dnia Mon, 10 Dec 2018 22:48:42 +0100, Marek S napisał(a):

> Zdumiewa mnie iż za pomocą jednego statement'a "return" można napisać 
> bardzo skomplikowane funkcjonalności. Żadne standardowe funkcje PHP nie 
> są potrzebne. Żadne pętle i żadne warunki. Niepotrzebna wiedza.  :-D

Nie rozumiem tych zarzutów. Masz za złe frameworkowi, że stosuje krótkie,
czytelne i łatwo testowalne funkcje, które wykonują tylko jedną czynność?

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Laravel - jak to to działa?
#232084
Author: Wojciech Bancer
Date: Tue, 11 Dec 2018 09:43
42 lines
3558 bytes
On 2018-12-10, Borys Pogoreło <borys@pl.edu.leszno> wrote:

[...]

>> Akurat w tym wypadku JS (node).
> npm install joi ;)

No i co dalej? Użyj i pokaż jak budujesz elastyczne struktury
do walidacji konkretnego kodu, a ja oceniam czy to będzie
sensownie zaimplementowane, jak to łatwo w przyszłości 
zmodyfikować wyodrębnić (o ile nie wyodrębnione od razu
przez programistę itp. :)

Chociaż ja bardziej jestem fanem jsonschema ew. ajv
(inna implementacja), głównie przez to że ładnie można
właśnie wyodrębnić definicje poprawnego kodu od implementacji.

Ale za joi też dawałem punkty. Najmniej dostawały osoby które
próbowały same wyrzeźbić, a z kodu wychodziło że jednak nie 
bardzo można to użyć, bo nie przewidziało konkretnych przypadków
zmiany podanego w zadaniu wejścia.

>>> Albo skopiować ze SO ;)
>> 
>> Jak skopiuje bezmyślnie i nie będzie potrafił zmodyfikować do
>> potrzeb, to też coś takiego zobaczysz. Ale tak. Jak umie skopiować
>> z SO i przez to szybciej rozwiazać problem, to czemu nie?
>
> Skopiować to jedno, ale rozumieć co się kopiuje to zupełnie inna sprawa...

A to już najczęściej widać w rozwiązaniu. Jak ktoś nie rozumie,
to nie skopiuje dobrze.

> Ale podejrzewam, że i tak robisz im sprawdzian z zaprezentowanego
> rozwiązania i każesz je opisać?

Jak człowiek rokuje [znaczy dobrze zrobił], to owszem, jest etap 
rozmowy o zrobionych zadaniach.

-- 
Wojciech Bańcer
wojciech.bancer@gmail.com
Re: Laravel - jak to to działa?
#232065
Author: Marek S
Date: Tue, 11 Dec 2018 22:33
15 lines
2048 bytes
W dniu 2018-12-10 o 23:56, Borys Pogoreło pisze:
> 
> Nie rozumiem tych zarzutów. Masz za złe frameworkowi, że stosuje krótkie,
> czytelne i łatwo testowalne funkcje, które wykonują tylko jedną czynność?

Nie, nie mam za złe lecz zdumiewa mnie to, że nie trzeba używać żadnych 
innych keywordsów niż function i return by zrealizować dowolną 
funkcjonalność. :-D

Innego kodu nie znalazłem, a szukałem długo. Zresztą sami mi również nie 
pokazaliście jakiejkolwiek innej funkcjonalności :-D

-- 
Pozdrawiam,
Marek
Re: Laravel - jak to to działa?
#232066
Author: Borys Pogoreło
Date: Wed, 12 Dec 2018 13:33
12 lines
1895 bytes
Dnia Tue, 11 Dec 2018 23:33:59 +0100, Marek S napisał(a):

> Innego kodu nie znalazłem, a szukałem długo. Zresztą sami mi również nie 
> pokazaliście jakiejkolwiek innej funkcjonalności :-D

Bo ona jest rozproszona po całym fraweworku. Zacznij z nim dłużej pracować,
to odkryjesz wiele gotowych narzędzi, które są dostępne i wymagają zaledwie
kilku linii kodu, by z nich skorzystać.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Laravel - jak to to działa?
#232067
Author: Marek S
Date: Fri, 14 Dec 2018 21:04
14 lines
2032 bytes
W dniu 2018-12-12 o 14:33, Borys Pogoreło pisze:
> 
> Bo ona jest rozproszona po całym fraweworku. Zacznij z nim dłużej pracować,
> to odkryjesz wiele gotowych narzędzi, które są dostępne i wymagają zaledwie
> kilku linii kodu, by z nich skorzystać.
> 

Jasne, tyle tylko, że ja nie o tym pisałem. Docenianie frameworka to 
jedno (i doceniam go mimo raczkowania w temacie) a zaspokojenie 
ciekawości to inna rzecz.

-- 
Pozdrawiam,
Marek
Re: Laravel - jak to to działa?
#232068
Author: Marek S
Date: Fri, 14 Dec 2018 21:08
16 lines
2164 bytes
W dniu 2018-12-14 o 22:04, Marek S pisze:

> Jasne, tyle tylko, że ja nie o tym pisałem. Docenianie frameworka to 
> jedno (i doceniam go mimo raczkowania w temacie) a zaspokojenie 
> ciekawości to inna rzecz.

P.S.
W Yii nie ma takich problemów. Framework to prawdziwy kod. Nie ma czegoś 
takiego, że wywołanie czegokolwiek kończy się nieskończoną drabinką na 
stosie wywołań. M.in. z tego powodu dociekałem jakiejkolwiek 
funkcjonalności w Laravelu (w sensie że "return" to dla mnie nie jest 
funkcjonalność").

-- 
Pozdrawiam,
Marek
Re: Laravel - jak to to działa?
#232069
Author: Borys Pogoreło
Date: Sun, 16 Dec 2018 11:24
15 lines
2120 bytes
Dnia Fri, 14 Dec 2018 22:08:50 +0100, Marek S napisał(a):

> P.S.
> W Yii nie ma takich problemów. Framework to prawdziwy kod. Nie ma czegoś 
> takiego, że wywołanie czegokolwiek kończy się nieskończoną drabinką na 
> stosie wywołań. 

Bo Laravel ma inną filozofię. W imię ułatwienia niektórych czynności
zmuszony jest do uciekania się do sztuczek z rozwiązywaniem nazw i tym
podobnych. Ale jak poszukasz w sieci porównań Yii vs. Laravel, to jeden z
nich będzie zdecydowanym faworytem.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: Laravel - jak to to działa?
#232070
Author: Marek S
Date: Sun, 16 Dec 2018 15:47
15 lines
2328 bytes
W dniu 2018-12-16 o 12:24, Borys Pogoreło pisze:

> Bo Laravel ma inną filozofię. W imię ułatwienia niektórych czynności
> zmuszony jest do uciekania się do sztuczek z rozwiązywaniem nazw i tym
> podobnych. Ale jak poszukasz w sieci porównań Yii vs. Laravel, to jeden z
> nich będzie zdecydowanym faworytem.

Zgodnie z rynkowymi prognozami, jest i będzie nim Laravel. Yii mimo, że 
jest fajny, łatwy i posiada wiele rozszerzeń, będzie tracił popularność. 
Tak czy owak ma się to nijak do w/w kwestii. Odnoszę wrażenie, że 
próbuje imputować mi coś, czego nigdy nie powiedziałem.

-- 
Pozdrawiam,
Marek
Re: Laravel - jak to to działa?
#232071
Author: Wojciech Bancer
Date: Sun, 16 Dec 2018 16:01
17 lines
2600 bytes
On 2018-12-16, Marek S <precz@spamowi.com> wrote:
> W dniu 2018-12-16 o 12:24, Borys Pogoreło pisze:
>
>> Bo Laravel ma inną filozofię. W imię ułatwienia niektórych czynności
>> zmuszony jest do uciekania się do sztuczek z rozwiązywaniem nazw i tym
>> podobnych. Ale jak poszukasz w sieci porównań Yii vs. Laravel, to jeden z
>> nich będzie zdecydowanym faworytem.
>
> Zgodnie z rynkowymi prognozami, jest i będzie nim Laravel. Yii mimo, że 
> jest fajny, łatwy i posiada wiele rozszerzeń, będzie tracił popularność. 

Ta prostota, to już w pewnym sensie jest (na obecne czasy) prymitywna.
Dlatego Yii traci na rzecz bardziej zaawansowanych frameworków.

-- 
Wojciech Bańcer
wojciech.bancer@gmail.com
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads