Cześć, czytam sobie PSR i mam kilka pytań. Nie do końca rozumiem poniższe rzeczy, wyjaśnijcie pls:
1. https://www.php-fig.org/psr/psr-12/#22-files. Czyli właściwie jak mam zakończyć plik, skoro ani pusta linią, ani znacznikiem ?> więc jak? Ostatnią linijką instrukcji?
2. https://www.php-fig.org/psr/psr-12/#23-lines. Napisno, że oprócz tam gdzie jest to zabronione, ale gdzie jest zabronione to już nie podano. Czyli gdzie? W jakich przypadkach nie należy, czy wręcz nie wolno, wstawiać pustych linii?
3. https://www.php-fig.org/psr/psr-12/#45-method-and-function-arguments. Dobrze rozumiem, że ?int czy ?string to typ zmiennej 'nullable' ? Czyli, że może być albo to co po znaku zapytania np. ?string albo null jako wartość i nic innego, tak? Wiem nospor, że pisałeś juz o tym, ale wtedy nie wyjasniłeś czy może być tylko string lub null dla ?string, czy może być to string lub np int.
4. Co oznacza & tutaj? Czy chodzi o "args and kwargs" tak jak w Pythonie, tj. o nieokreśloną liczbę argumentów (parametrów)?
public function functionName(?string $arg1, ?int &$arg2): ?string { return 'foo'; }
if ($expr1) { $a=5; } elseif ($expr2) { // elseif body } else { // else body; }
ad1) No tak jak podali tam w przykladzie, jesli to klasa to zawsze }
ad2) No np. na poczatku ciala funkcji nie moze byc zadnej pustej linii
ad3) No tak, co tu wyjasniac. Skoro massz ?string to jakim cudem tam chcesz dac INT? wyraznie napisane string i null.
ad4) Przekazanie zmiennej przez rerefencje. W praktyce oznacza to ze funkcja moze zmienic wartosc zmiennej i ta zmiana bedzie nadal widoczna poza funkcja
ad5) Wszystko zalezy od teamu do jakiego trafisz. Ja osobiscie nie skreslam osob, ktore nie uzywaja PSR. Jesl taka osoba do nas dolaczy, to po pierwszych 10 code reviews bedzie juz pisala bez zastanowienia w zgodzie z PSR.
No chyba ze ktos startuje na seniora i jesli nadal nie uzywa PSR to sie czerwona lampka swieci
1. https://www.cs.toronto.edu/~krueger/csc209h/tut/line-endings.html
2. Wypisane jest w poszczególnych blokach
3. Nie może być spacji między ? A typem
4. https://www.php.net/manual/en/language.references.pass.php
Każdy nowoczesny edytor ma autoformatowanie. Można też przed commitem poustawiać hooki albo gdzieś na poziomie obsługi gita.
dziś to już https://www.php-fig.org/per/coding-style/ nie PSR-12
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)