{"id":229033,"date":"2022-11-08T10:42:00","date_gmt":"2022-11-08T07:42:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229033"},"modified":"2022-11-09T05:16:22","modified_gmt":"2022-11-09T02:16:22","slug":"korzystanie-z-psr-w-porownaniu-ze-standardami-kodowania-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/korzystanie-z-psr-w-porownaniu-ze-standardami-kodowania-wordpress\/","title":{"rendered":"Korzystanie z PSR (w por\u00f3wnaniu ze standardami kodowania WordPress)"},"content":{"rendered":"\n<p>W tym momencie nie wiem, ile artyku\u0142\u00f3w napisa\u0142em o znaczeniu <a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Standard\u00f3w Kodowania WordPressa<\/a> (wystarczy link do nich <a href=\"https:\/\/tommcfarlin.com\/psrs-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tutaj<\/a>, <a href=\"https:\/\/tommcfarlin.com\/following-the-wordpress-coding-standards\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tutaj<\/a> i <a href=\"https:\/\/tommcfarlin.com\/wordpress-coding-standards-for-the-planet\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tutaj<\/a>, jak s\u0105dz\u0119, co si\u0119 liczy).<\/p>\n<p>Ale po wykonaniu wystarczaj\u0105cej liczby projekt\u00f3w dla klient\u00f3w i <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">pracy z programistami<\/a>, kt\u00f3rzy s\u0105 znacznie m\u0105drzejsi i zaznajomieni z zaawansowanymi narz\u0119dziami ni\u017c ja, jestem w miejscu, w kt\u00f3rym decyduj\u0119 si\u0119 <a href=\"http:\/\/www.php-fig.org\/psr\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">zacz\u0105\u0107 u\u017cywa\u0107<\/a> PSR w rozwoju WordPressa.<\/p>\n<p>O dramat, prawda?<\/p>\n<p>Ale naprawd\u0119. S\u0105 ku temu powody i s\u0105 chwile, w kt\u00f3rych uwa\u017cam, \u017ce standardy kodowania WordPress nadal powinny by\u0107 u\u017cywane, ale szybko nabieram przekonania, \u017ce \u200b\u200bbudowanie jakiegokolwiek nowoczesnego projektu na bazie WordPressa powinno korzysta\u0107 z bardziej nowoczesnych narz\u0119dzi PHP (kt\u00f3re ja pokr\u00f3tce wspomn\u0119 p\u00f3\u017aniej).<\/p>\n<h2>Korzystanie z PSR w programowaniu WordPress<\/h2>\n<p>Posty takie jak ten cz\u0119sto wnikaj\u0105 w jak\u0105\u015b debat\u0119 lub dramatyczne reakcje w WordPressie, co nie jest moj\u0105 intencj\u0105, ani nie jest to co\u015b, co uwa\u017cam za konieczne. Szczerze m\u00f3wi\u0105c, znam wielu <a href=\"https:\/\/twitter.com\/GaryJ\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">innych<\/a> <a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">programist\u00f3w<\/a> <a href=\"https:\/\/twitter.com\/rarst\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">, z kt\u00f3rych<\/a> <a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wszyscy<\/a> robili to dawno temu, rozmawiali o tym, posuwali si\u0119 naprz\u00f3d i nadal odnosili sukcesy zar\u00f3wno w swoim biznesie, jak i projektach hobbystycznych.<\/p>\n<p>Ale bior\u0105c pod uwag\u0119, \u017ce tak du\u017co rozmawia\u0142em o jednym kontra drugim, pomy\u015bla\u0142em, \u017ce warto podzieli\u0107 si\u0119 moim zdaniem, dlaczego decyduj\u0119 si\u0119 na t\u0119 zmian\u0119 teraz i uzasadnieniem tego.<\/p>\n<h3>1 Parzysto\u015b\u0107 ze spo\u0142eczno\u015bci\u0105 PHP<\/h3>\n<p>W ci\u0105gu ostatniego roku, a w\u0142a\u015bciwie tylko w ci\u0105gu ostatnich kilku miesi\u0119cy tego roku, przyzwyczai\u0142em si\u0119 bardziej do:<\/p>\n<ul>\n<li>bardziej do\u015bwiadczeni znajomi programi\u015bci zorientowani na PHP, popieraj\u0105cy narz\u0119dzia, kt\u00f3re oczekuj\u0105 przyj\u0119cia PSR,<\/li>\n<li>u\u017cycie <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\/issues\/604\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\/\/@codingStandardsIgnoreStart i \/\/@codingStandardsIgnoreEnd<\/a> w moim kodzie,<\/li>\n<li>niestandardowe zestawy regu\u0142 dla moich projekt\u00f3w oparte na \u015brodowiskach, w kt\u00f3rych s\u0105 wdro\u017cone,<\/li>\n<li>i wi\u0119cej.<\/li>\n<\/ul>\n<p>Ostatecznie chodzi o to, aby zachowa\u0107 parzysto\u015b\u0107 (lub troch\u0119) z wi\u0119ksz\u0105 spo\u0142eczno\u015bci\u0105 PHP, jednocze\u015bnie pisz\u0105c czytelny, oparty na standardach kod na WordPressie. Chcia\u0142bym te\u017c skorzysta\u0107 z kilku innych narz\u0119dzi i nowszych wersji istniej\u0105cych narz\u0119dzi (o kt\u00f3rych om\u00f3wi\u0119 w dalszej cz\u0119\u015bci tego postu).<\/p>\n<h3>2 problemy z nowoczesnymi \u015brodowiskami<\/h3>\n<p>W chwili pisania tego posta <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP CodeSniffer<\/a> (wymagany do uruchomienia WordPress Coding Standards) jest w wersji <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\/tree\/3.0.2\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">3.0.2<\/a>. Istniej\u0105 jednak problemy ze zgodno\u015bci\u0105 z PHPCS i standardami kodowania WordPress. <a href=\"https:\/\/github.com\/WordPress-Coding-Standards\/WordPress-Coding-Standards\/issues\/718\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">W szczeg\u00f3lno\u015bci<\/a> :<\/p>\n<blockquote>\n<p>Nowa wersja PHP CodeSniffer ma kilka fajnych funkcji, ale wprowadza prze\u0142omowe zmiany, kt\u00f3re powoduj\u0105, \u017ce standardy kodowania WordPress nie s\u0105 kompatybilne.<\/p>\n<\/blockquote>\n<p>Aby by\u0142o jasne (i ze wzgl\u0119du na natur\u0119 oprogramowania), to kwestia czasu, zanim zostanie to naprawione. Ale je\u015bli pracujesz na bazie kodu i korzystasz z Composer i WordPress Coding Standards, musisz jawnie ustawi\u0107 wersj\u0119 PHP CodeSniffer, a nie najnowsz\u0105 wersj\u0119.<\/p>\n<p>Ponadto do\u015bwiadczy\u0142em problem\u00f3w z klientami, w kt\u00f3rych nie zaadoptowanie PSR w programowaniu WordPress spowodowa\u0142o dziwne zachowanie podczas wdra\u017cania kodu. By\u0107 mo\u017ce mo\u017cna by argumentowa\u0107, \u017ce powinni dostosowa\u0107 \u015brodowisko, ale je\u015bli pracuj\u0105, aby mie\u0107 najnowocze\u015bniejsze narz\u0119dzia dost\u0119pne dla ludzi, kt\u00f3rzy ich u\u017cywaj\u0105, po co si\u0119 cofa\u0107?<\/p>\n<h3>3 Kompatybilno\u015b\u0107 z nowoczesnymi narz\u0119dziami<\/h3>\n<p>Wreszcie istnieje wiele nowoczesnych narz\u0119dzi, kt\u00f3rych nie mog\u0142em u\u017cy\u0107, nie m\u00f3wi\u0105c ju\u017c o nauce, z powodu tego, co jest, a co nie jest obs\u0142ugiwane przez natur\u0119 wersjonowania.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166244-61e790be9cd6b.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-166244-61e790be9cd6b.png\" alt=\"Korzystanie z PSR (w por\u00f3wnaniu ze standardami kodowania WordPress)\" ><\/a><\/p>\n<p>Na przyk\u0142ad, <a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">u\u017cywali\u015bmy<\/a> GrumPHP w <a href=\"https:\/\/github.com\/phpro\/grumphp\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ostatnim<\/a> projekcie, kt\u00f3ry obs\u0142uguje r\u00f3\u017cne narz\u0119dzia, ale nie mogli\u015bmy u\u017cy\u0107, powiedzmy, <a href=\"https:\/\/phpmd.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHPMD<\/a> z powodu braku przyj\u0119cia PSR. Je\u015bli o mnie chodzi:<\/p>\n<ul>\n<li>Chc\u0119 stale podnosi\u0107 swoje umiej\u0119tno\u015bci jako programista (a w tym kontek\u015bcie programista PHP),<\/li>\n<li>brak wsparcia dla nowocze\u015bniejszych narz\u0119dzi stawia mnie w utrzymywaniu, kt\u00f3rego inaczej bym nie do\u015bwiadczy\u0142,<\/li>\n<li>Chc\u0119 nadal pracowa\u0107 z WordPressem, ale r\u00f3b to z bardziej nowoczesnym przep\u0142ywem pracy<\/li>\n<\/ul>\n<p>A w tej chwili niekorzystanie z PSR tworzy luk\u0119 mi\u0119dzy tym, co robi reszta spo\u0142eczno\u015bci PHP, a tym, co robi WordPress. Dlatego chcia\u0142bym i\u015b\u0107 naprz\u00f3d, jednocze\u015bnie pracuj\u0105c nad projektami na oprogramowaniu, kt\u00f3rego nadal lubi\u0119 u\u017cywa\u0107.<\/p>\n<h2>Co ze standardami kodowania WordPress?<\/h2>\n<p>Co to oznacza w przypadku standard\u00f3w kodowania WordPress i poprzednich post\u00f3w? Nic takiego. Spos\u00f3b, w jaki to widz\u0119: Standardy kodowania WordPressa powinny by\u0107 u\u017cywane za ka\u017cdym razem, gdy pracujesz nad WordPress Core lub czym\u015b, co b\u0119dzie z nim \u015bci\u015ble zintegrowane.<\/p>\n<p>Ale je\u015bli pracujesz nad czym\u015b, co znajduje si\u0119 na szczycie WordPressa lub czym\u015b, co wykorzystuje WordPress jako podstaw\u0119 i mo\u017cesz u\u017cy\u0107 PSR w rozwoju WordPress wraz z narz\u0119dziami, kt\u00f3re mog\u0105 pom\u00f3c w podniesieniu jako\u015bci tworzonej bazy kodu.<\/p>\n<p>Tak wi\u0119c, przynajmniej na razie, tak\u0105 perspektyw\u0119 zamierzam przyj\u0105\u0107. Nie mog\u0119 si\u0119 doczeka\u0107, jak si\u0119 rozwinie w ci\u0105gu najbli\u017cszych kilku miesi\u0119cy. A je\u015bli chodzi o wszystko, czym si\u0119 podzieli\u0142em, podziel\u0119 si\u0119 aspektami dokonywania tej zmiany.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Po wystarczaj\u0105cej liczbie projekt\u00f3w pracy z m\u0105drzejszymi programistami jestem w miejscu, w kt\u00f3rym mog\u0119 zacz\u0105\u0107 u\u017cywa\u0107 PSR w programowaniu WordPress.<\/p>\n","protected":false},"author":1,"featured_media":166245,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[721,845,866],"tags":[1169],"class_list":["post-229033","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-samouczki","category-wordpress-7","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229033","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=229033"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/229033\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/166245"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=229033"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=229033"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=229033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}