Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kilka pytań o PSR
Forum PHP.pl > Forum > Przedszkole
sadistic_son
Cześć, czytam sobie PSR i mam kilka pytań. Nie do końca rozumiem poniższe rzeczy, wyjaśnijcie pls:

1. "All PHP files MUST use the Unix LF (linefeed) line ending only.". Czyli właściwie jak mam zakończyć plik, skoro ani pusta linią, ani znacznikiem ?> więc jak? Ostatnią linijką instrukcji?

2. "Blank lines MAY be added to improve readability and to indicate related blocks of code except where explicitly forbidden.". 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. "In nullable type declarations, there MUST NOT be a space between the question mark and the type.". 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)?
  1. public function functionName(?string $arg1, ?int &$arg2): ?string
  2. {
  3. return 'foo';
  4. }


5. Pytanie do doświadczonych delevoperów, zwłaszcza w rekrutacji. Czy jesli ktoś (kandydat) łamie gdzie nie gdzie PSR-12 np. tak jak poniżej, to jest to nieakceptowalne i napiętnowane, czy jedynie wymagające zwrócenia uwagi? Czy w ogóle PSR PSRem a życie życiem?
  1. if ($expr1) {
  2. $a=5;
  3. }
  4. elseif ($expr2) {
  5. // elseif body
  6. }
  7. else
  8. {
  9. // else body;
  10. }

Dzięki.
nospor
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
viking
1. https://www.cs.toronto.edu/~krueger/csc209h...ne-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.
sadistic_son
Cytat(viking @ 15.01.2023, 13:24:20 ) *
Każdy nowoczesny edytor ma autoformatowanie. Można też przed commitem poustawiać hooki albo gdzieś na poziomie obsługi gita.
Tak, używam Visual Studio Code. Po doinstalowaniu wtyczki elegancko formatuje większośc rzeczy. Właśnie jeśli chodzi o puste linie to tutaj nie skutkuje za bardzo. Ale ogólnie to jestem z niego zadowolony.

Dzięki Panowie za odpowiedzi.
com
dziś to już https://www.php-fig.org/per/coding-style/ nie PSR-12 wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.