{"id":26718,"date":"2021-04-28T17:10:00","date_gmt":"2021-04-28T14:10:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26718"},"modified":"2021-10-18T03:53:56","modified_gmt":"2021-10-18T00:53:56","slug":"php_codesniffer-biblioteka-do-ulepszania-standardow-kodowania-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/php_codesniffer-biblioteka-do-ulepszania-standardow-kodowania-php\/","title":{"rendered":"PHP_CodeSniffer \u2014 biblioteka do ulepszania standard\u00f3w kodowania PHP"},"content":{"rendered":"<p>Chcesz poprawi\u0107 swoje standardy kodowania PHP? Z pewno\u015bci\u0105 tak. Bez wzgl\u0119du na to, czy jeste\u015b nowszym czy do\u015bwiadczonym programist\u0105 PHP, ka\u017cdy chce poprawi\u0107 swoje standardy kodowania.<\/p>\n<p>Ale jak?<\/p>\n<p>C\u00f3\u017c, w Internecie dost\u0119pnych jest kilka zasob\u00f3w, kt\u00f3re mo\u017cesz przeczyta\u0107 i zacz\u0105\u0107 wdra\u017ca\u0107.<\/p>\n<p>Jest jeszcze jedno rozwi\u0105zanie, kt\u00f3re nie wymaga czytania o standardowym kodowaniu. Zamiast tego daje sugestie, jak ulepszy\u0107 \u015brodowisko wykonawcze standard\u00f3w, zagl\u0105daj\u0105c do pliku PHP. Ten spos\u00f3b jest lepszy, poniewa\u017c otrzymasz wyra\u017an\u0105 sugesti\u0119 wraz z numerem linii.<\/p>\n<h3>Wprowadzenie do PHP_CodeSniffer<\/h3>\n<p>Jak sama nazwa wskazuje, <a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP_CodeSniffer wyczuwa<\/a> kod w twoich plikach lub folderach. Wsz\u0119dzie tam, wyczuwa z\u0142y kod, zg\u0142aszaj\u0105c, gdzie jest z\u0142y kod i jakie kroki nale\u017cy podj\u0105\u0107, aby go poprawi\u0107. PHP_CodeSniffer dzia\u0142a jak tw\u00f3j kontroler kodu PHP.<\/p>\n<p>Jest to wysoce polecana biblioteka dla programist\u00f3w PHP. Podczas pracy nad projektem PHP nie powiniene\u015b dostarcza\u0107 swojego kodu do klienta ko\u0144cowego, dop\u00f3ki nie sko\u0144czysz z PHP_CodeSniffer sugerowanymi standardami kodowania PHP.<\/p>\n<p>W ko\u0144cu programista PHP powinien dostarcza\u0107 lepszy kod, a PHP_CodeSniffer pomaga w lepszym kodowaniu.<\/p>\n<h3>Zainstaluj PHP_CodeSniffer za pomoc\u0105 Composera<\/h3>\n<p><a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> to mened\u017cer zale\u017cno\u015bci dla PHP. Pozwala zainstalowa\u0107\/zaktualizowa\u0107 bibliotek\u0119, kt\u00f3rej potrzebujesz do swojego projektu.<\/p>\n<p>Mo\u017cesz zainstalowa\u0107 PHP_CodeSniffer w g\u0142\u00f3wnym katalogu swojego projektu. Ale zalecam utworzenie folderu \u201ephp_codesniffer&quot; w katalogu g\u0142\u00f3wnym i zainstalowanie biblioteki w tym folderze.<\/p>\n<p>Aby zainstalowa\u0107 PHP_CodeSniffer za pomoc\u0105 kompozytora, otw\u00f3rz wiersz polece\u0144 w katalogu 'php_codesniffer&#8217; i uruchom poni\u017csze polecenie.<\/p>\n<p><code>composer require \"squizlabs\/php_codesniffer=*\"<\/code><\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" alt=\"PHP_CodeSniffer \u2014 biblioteka do ulepszania standard\u00f3w kodowania PHP\" ><\/a><\/p>\n<h3>Sprawd\u017amy nasze standardy kodowania PHP<\/h3>\n<p>Nast\u0119pnie przejd\u017a do <code>php_codesniffer\/vendor\/bin<\/code>katalogu z wiersza polecenia. Z tego folderu bin sprawdzimy nasze standardy kodowania PHP wzgl\u0119dem PHP_CodeSniffer.<\/p>\n<p>Za\u0142\u00f3\u017cmy na przyk\u0142ad, \u017ce w Twoim projekcie mamy plik o nazwie index.php. M\u00f3j plik index.php zawiera poni\u017cszy kod.<\/p>\n<pre><code>&lt;?php\nrequire_once (\"vendor\/autoload.php\");\nrequire_once (\"config.php\");\n\u00a0\nTinifysetKey(TINIFY_KEY);\n\u00a0\n$source = TinifyfromFile(\"large.jpg\");\n$resized = $source-&gt;resize(\n\u00a0\u00a0\u00a0\u00a0array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"method\" =&gt; \"cover\",\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"width\" =&gt; 150,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"height\" =&gt; 100\n\u00a0\u00a0\u00a0\u00a0));\n$resized-&gt;toFile(\"thumbnail1.jpg\");\n\u00a0\necho \"Image resized.\";\n\u00a0\n$bool = true;\n?&gt;<\/code><\/pre>\n<p>Ten kod u\u017cywany do <a href=\"https:\/\/themewp.inform.click\/pl\/zmien-rozmiar-obrazu-w-php-za-pomoca-tinypng\/\" title=\"zmiany rozmiaru obrazu w PHP przy u\u017cyciu biblioteki TinyPNG\">zmiany rozmiaru obrazu w PHP przy u\u017cyciu biblioteki TinyPNG<\/a>. Nasz kod dzia\u0142a poprawnie i daje oczekiwany rezultat. Jednak w naszym pliku brakowa\u0142o niekt\u00f3rych standard\u00f3w kodowania.<\/p>\n<p>Dowiedzmy si\u0119, jakiego standardu brakuje w powy\u017cszym pliku.<\/p>\n<p>Sprawdzimy ten plik pod k\u0105tem PHP_CodeSniffer, uruchamiaj\u0105c poni\u017csze polecenie.<\/p>\n<p><code>phpcs --standard=PEAR \/path\/to\/your\/file<\/code><\/p>\n<p>Pracujemy na Windowsie, wi\u0119c w naszym przypadku polecenie wygl\u0105da\u0142oby nast\u0119puj\u0105co.<\/p>\n<p><code>phpcs --standard=PEAR D:wampwwwapitinypngindex.php<\/code><\/p>\n<p>Tutaj '\u2013standard=PEAR&#8217; oznacza, \u017ce \u200b\u200bnasz plik b\u0119dzie sprawdza\u0142 zgodno\u015b\u0107 ze standardem okre\u015blonym przez <a href=\"https:\/\/pear.php.net\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PEAR<\/a>.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" alt=\"PHP_CodeSniffer \u2014 biblioteka do ulepszania standard\u00f3w kodowania PHP\" ><\/a><\/p>\n<p>Po uruchomieniu powy\u017cszego polecenia otrzymali\u015bmy b\u0142\u0119dy dotycz\u0105ce standard\u00f3w kodowania.<\/p>\n<h3>Popraw kod, korzystaj\u0105c z wytycznych<\/h3>\n<p>We\u017amy jeden przyk\u0142ad b\u0142\u0119du.<\/p>\n<p>Drugi b\u0142\u0105d m\u00f3wi\u0105cy, \u017ce \u201erequire_once&#8221; jest instrukcj\u0105, a nie funkcj\u0105: nie s\u0105 wymagane \u017cadne nawiasy<\/p>\n<p>Przez ten b\u0142\u0105d dowiadujemy si\u0119 o standardzie do\u0142\u0105czania pliku zewn\u0119trznego.<\/p>\n<p>Nasz poni\u017cszy kod<\/p>\n<pre><code>require_once (\"vendor\/autoload.php\");\nrequire_once (\"config.php\");<\/code><\/pre>\n<p>powinien zast\u0105pi\u0107<\/p>\n<pre><code>require_once \"vendor\/autoload.php\";\nrequire_once \"config.php\";<\/code><\/pre>\n<p>To jeden z przyk\u0142ad\u00f3w poprawiania kodu. W twoim przypadku mo\u017cesz znale\u017a\u0107 inne b\u0142\u0119dy. Powiniene\u015b to poprawi\u0107, post\u0119puj\u0105c zgodnie z otrzymanymi instrukcjami.<\/p>\n<p>Biblioteka PHP_CodeSniffer udost\u0119pnia jedno polecenie, kt\u00f3re automatycznie koryguje naruszenia standard\u00f3w kodowania. Pami\u0119taj, \u017ce to polecenie nie poprawia wszystkich b\u0142\u0119d\u00f3w. Zajmie si\u0119 drobnymi b\u0142\u0119dami, takimi jak wci\u0119cia, zamykaj\u0105ce nawiasy itp.<\/p>\n<p>Je\u015bli spojrzysz na powy\u017cszy zrzut ekranu, zauwa\u017cysz, \u017ce w naszym pliku znaleziono \u0142\u0105cznie 7 b\u0142\u0119d\u00f3w. Po li\u015bcie b\u0142\u0119d\u00f3w zobacz wiersz<\/p>\n<p>\u201ePHPCBF&#8221; MO\u017bE AUTOMATYCZNIE NAPRAWI\u0106 6 ZAZNACZONYCH NARUSZENIA SNIFF<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" alt=\"PHP_CodeSniffer \u2014 biblioteka do ulepszania standard\u00f3w kodowania PHP\" ><\/a><\/p>\n<p>Pierwszy b\u0142\u0105d zwi\u0105zany z brakiem komentarza doc pliku, musimy zadba\u0107 o ten komentarz doc. Polecenie \u201ePHPCBF&#8221; nie poprawi tego.<\/p>\n<p>Powiedziawszy to, napiszmy dla niego polecenie.<\/p>\n<p><code>phpcbf --standard=PEAR D:wampwwwapitinypngindex.php<\/code><\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" alt=\"PHP_CodeSniffer \u2014 biblioteka do ulepszania standard\u00f3w kodowania PHP\" ><\/a><\/p>\n<p>Na zrzucie ekranu wida\u0107, \u017ce naprawiono 6 b\u0142\u0119d\u00f3w, a 1 pozosta\u0142. Pozosta\u0142y b\u0142\u0105d jest zwi\u0105zany z komentarzem pliku doc.<\/p>\n<p>Tak wi\u0119c dodamy komentarz do pliku, a nasz ostateczny kod b\u0119dzie wygl\u0105da\u0142 nast\u0119puj\u0105co.<\/p>\n<pre><code>&lt;?php\n\/**\n\u00a0* This file will generate the resize version of an image\n\u00a0*\n\u00a0* PHP version 5.6.25\n\u00a0*\n\u00a0* @category Resize_Image\n\u00a0* @package\u00a0 TinyPNG\n\u00a0* @author\u00a0\u00a0 Sajid &lt;sajid@artisansweb.net&gt;\n\u00a0* @license\u00a0 http:\/\/www.php.net\/license\/3_01.txt\u00a0 PHP License 3.01\n\u00a0* @link\u00a0\u00a0\u00a0\u00a0 https:\/\/artisansweb.net\/resize-image-php-using-tinypng\n\u00a0*\/\nrequire_once \"vendor\/autoload.php\";\nrequire_once \"config.php\";\n\u00a0\nTinifysetKey(TINIFY_KEY);\n\u00a0\n$source = TinifyfromFile(\"large.jpg\");\n$resized = $source-&gt;resize(\n\u00a0\u00a0\u00a0\u00a0array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"method\" =&gt; \"cover\",\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"width\" =&gt; 150,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"height\" =&gt; 100\n\u00a0\u00a0\u00a0\u00a0)\n);\n$resized-&gt;toFile(\"thumbnail1.jpg\");\n\u00a0\necho \"Image resized.\";\n\u00a0\n$bool = true;\n?&gt;<\/code><\/pre>\n<p>Teraz, je\u015bli uruchomimy skrypt 'phpcs&#8217;, nie otrzymamy \u017cadnych b\u0142\u0119d\u00f3w standard\u00f3w kodowania PHP.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20867-608234e3d8cc9.png\" alt=\"PHP_CodeSniffer \u2014 biblioteka do ulepszania standard\u00f3w kodowania PHP\" ><\/a><\/p>\n<p><strong>Uwaga:<\/strong> PHP_CodeSniffer sprawdza r\u00f3wnie\u017c poprawno\u015b\u0107 plik\u00f3w JS i CSS.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chcesz poprawi\u0107 swoje standardy kodowania PHP? PHP_CodeSniffer to biblioteka, kt\u00f3ra pomaga w ulepszaniu standard\u00f3w kodowania. W tym artykule badamy<\/p>\n","protected":false},"author":1,"featured_media":21909,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[277],"tags":[847],"class_list":["post-26718","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/26718","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=26718"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/26718\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21909"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=26718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=26718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=26718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}