Zdaję sobie sprawę, że tytuł który jednocześnie jest parafrazą opisu konia z pierwszej polskiej encyklopedii może nie mówić wszystkiego. Wyjaśniając, kiedy mówimy o kodzie PHP (czy tez innym języku programowania) zazwyczaj automatycznie myślimy o jego składni, dostępnych narzędziach rozwiązaniach oraz łatwości rozwiązania problemu, który przed nami stoi, oczywiście nie ma w tym nic złego jeżeli piszemy szybkie narzędzie dla siebie wówczas sam pomysł na rozwiązanie problemu powinien wystarczyć.
Wydawałoby się że nie ma sensu prowadzić na ten temat dyskusji. Problem zaczyna się jednak gdy przystępujemy do pracy nad większym projektem, lub gdy przystępujemy do pracy grupowej, wtedy nie tylko działanie kodu się liczy. Aby nasza praca była skuteczna i łatwo przyswajalna przez innych członków grupy (czy też odbiorców) musimy zadbać o pewne standardy kodowania, które de facto na efekt końcowy działania programu nie mają żadnego wpływu (lub mają marginalny). Sam długo broniłem się przed standardami „globalnymi” prawdopodobnie, jedynym powodem odwlekania tego było po prostu lenistwo, bo skoro działa to po co to zmieniać. Od niedawna zacząłem jednak próbować ulepszyć swój sposób pracy, więc chcąc nie chcąc trafiłem na opis „Rekomendowanych Standardów” PSR-1 i PSR-2 i właśnie o nich chciałbym dzisiaj napisać.
PSR co ?
PSR to skrót od PHP Standard Recommendation jest to inicjatywa, której celem jest wyznaczenie standardów w dość chaotycznym świecie skryptów PHP. Oczywiście nietrudno wyobrazić sobie korzyści płynące z podążania za standardami, które są lub będą implementowane przez duże rzesze programistów, jak jednak wspomniałem we wstępie w moim przypadku decyzja o próbie standaryzowania swojego kodu, przyszła z trudem i o wiele później niż powinna, tak więc z tego miejsca zachęcam wszystkich do dalszej lektury postu i być może szybszej decyzji o zmianie stylu pisania własnych skryptów.
Wróćmy jednak do rzeczy, na stronie http://www.php-fig.org/ możemy znaleźć zakładkę Recomendations gdzie znajdziemy listę wszystkich „Rekomendacji” oraz ich stan, nas interesują w praktyce tylko te ze stanem Accepted , czyli rekomendacje zatwierdzone przez osoby mające głos. No tak mogłoby się wydawać, że wszystko pięknie ładnie, ale kim w ogóle są osoby głosujące, i tutaj robi się ciekawie. Okazuje się, że nie jest to wymysł jednego czy dwóch programistów, w głosowanie zaangażowani są programiści z przeróżnych projektów znanych większości z nas (Symfony, Joomla, Drupal itp.) pełną listę osób które mają prawo głosu można znaleźć tutaj ponadto każdy kto jest zapisany, na listę mailingową i/lub pojawia się na kanale IRC pomimo braku możliwości udziału w głosowaniu, nadal na równi z innymi może toczyć dyskusje na temat proponowanych zmian.
Jak widać struktura całego przedsięwzięcia została dobrze przemyślana i całość od jakiegoś czasu idzie w moim zdaniem bardzo dobrym kierunku. Na chwilę obecną w sekcji accepted rekomendacji, możemy znaleźć 7 pozycji. W tym poście chciałbym skupić się na omówieniu standardów PSR-1 i PSR-2
PSR-1
Standard PSR-1 został w skrócie opisany jako „Basic Coding Standard” czyli w wolnym tłumaczeniu, podstawowy standard programowania. W dużym skrócie zawiera on wytyczne dotyczące takich aspektów jak:
- używany system kodowania (UTF-8 bez BOM)
- używane tagi PHP w dokumentach (dozwolone są tylko tagi <?php i <?=)
- nazewnictwo klas, przestrzeni nazw oraz stałych
Najciekawszy element tego standardu to nazwane w dokumentacji „Side Effects” czyli krótko mówiąc zasada mająca na celu uniknięcia sytuacji który jeden dołączony plik jednocześnie deklaruje np. klasę i wykonuje jakieś działanie. Na początku trzeba sobie to dokładnie ułożyć w głowie o co w tym chodzi, postaram się to opisać najjaśniej jak tylko potrafię
Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...
Zwiń
Czytaj na blogu autora...