Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [PHP]Kilka pytań o PSR

Napisany przez: sadistic_son 15.01.2023, 12:55:19

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)?

  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.

Napisany przez: nospor 15.01.2023, 13:24:01

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

Napisany przez: viking 15.01.2023, 13:24:20

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.

Napisany przez: sadistic_son 15.01.2023, 18:56:04

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.

Napisany przez: com 18.01.2023, 17:32:20

dziś to już https://www.php-fig.org/per/coding-style/ nie PSR-12 wink.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)