PHP_CodeSniffer — biblioteka do ulepszania standardów kodowania PHP
Chcesz poprawić swoje standardy kodowania PHP? Z pewnością tak. Bez względu na to, czy jesteś nowszym czy doświadczonym programistą PHP, każdy chce poprawić swoje standardy kodowania.
Ale jak?
Cóż, w Internecie dostępnych jest kilka zasobów, które możesz przeczytać i zacząć wdrażać.
Jest jeszcze jedno rozwiązanie, które nie wymaga czytania o standardowym kodowaniu. Zamiast tego daje sugestie, jak ulepszyć środowisko wykonawcze standardów, zaglądając do pliku PHP. Ten sposób jest lepszy, ponieważ otrzymasz wyraźną sugestię wraz z numerem linii.
Wprowadzenie do PHP_CodeSniffer
Jak sama nazwa wskazuje, PHP_CodeSniffer wyczuwa kod w twoich plikach lub folderach. Wszędzie tam, wyczuwa zły kod, zgłaszając, gdzie jest zły kod i jakie kroki należy podjąć, aby go poprawić. PHP_CodeSniffer działa jak twój kontroler kodu PHP.
Jest to wysoce polecana biblioteka dla programistów PHP. Podczas pracy nad projektem PHP nie powinieneś dostarczać swojego kodu do klienta końcowego, dopóki nie skończysz z PHP_CodeSniffer sugerowanymi standardami kodowania PHP.
W końcu programista PHP powinien dostarczać lepszy kod, a PHP_CodeSniffer pomaga w lepszym kodowaniu.
Zainstaluj PHP_CodeSniffer za pomocą Composera
Composer to menedżer zależności dla PHP. Pozwala zainstalować/zaktualizować bibliotekę, której potrzebujesz do swojego projektu.
Możesz zainstalować PHP_CodeSniffer w głównym katalogu swojego projektu. Ale zalecam utworzenie folderu „php_codesniffer" w katalogu głównym i zainstalowanie biblioteki w tym folderze.
Aby zainstalować PHP_CodeSniffer za pomocą kompozytora, otwórz wiersz poleceń w katalogu ‘php_codesniffer’ i uruchom poniższe polecenie.
composer require "squizlabs/php_codesniffer=*"
Sprawdźmy nasze standardy kodowania PHP
Następnie przejdź do php_codesniffer/vendor/bin
katalogu z wiersza polecenia. Z tego folderu bin sprawdzimy nasze standardy kodowania PHP względem PHP_CodeSniffer.
Załóżmy na przykład, że w Twoim projekcie mamy plik o nazwie index.php. Mój plik index.php zawiera poniższy kod.
<?php
require_once ("vendor/autoload.php");
require_once ("config.php");
TinifysetKey(TINIFY_KEY);
$source = TinifyfromFile("large.jpg");
$resized = $source->resize(
array(
"method" => "cover",
"width" => 150,
"height" => 100
));
$resized->toFile("thumbnail1.jpg");
echo "Image resized.";
$bool = true;
?>
Ten kod używany do zmiany rozmiaru obrazu w PHP przy użyciu biblioteki TinyPNG. Nasz kod działa poprawnie i daje oczekiwany rezultat. Jednak w naszym pliku brakowało niektórych standardów kodowania.
Dowiedzmy się, jakiego standardu brakuje w powyższym pliku.
Sprawdzimy ten plik pod kątem PHP_CodeSniffer, uruchamiając poniższe polecenie.
phpcs --standard=PEAR /path/to/your/file
Pracujemy na Windowsie, więc w naszym przypadku polecenie wyglądałoby następująco.
phpcs --standard=PEAR D:wampwwwapitinypngindex.php
Tutaj ‘–standard=PEAR’ oznacza, że nasz plik będzie sprawdzał zgodność ze standardem określonym przez PEAR.
Po uruchomieniu powyższego polecenia otrzymaliśmy błędy dotyczące standardów kodowania.
Popraw kod, korzystając z wytycznych
Weźmy jeden przykład błędu.
Drugi błąd mówiący, że „require_once” jest instrukcją, a nie funkcją: nie są wymagane żadne nawiasy
Przez ten błąd dowiadujemy się o standardzie dołączania pliku zewnętrznego.
Nasz poniższy kod
require_once ("vendor/autoload.php");
require_once ("config.php");
powinien zastąpić
require_once "vendor/autoload.php";
require_once "config.php";
To jeden z przykładów poprawiania kodu. W twoim przypadku możesz znaleźć inne błędy. Powinieneś to poprawić, postępując zgodnie z otrzymanymi instrukcjami.
Biblioteka PHP_CodeSniffer udostępnia jedno polecenie, które automatycznie koryguje naruszenia standardów kodowania. Pamiętaj, że to polecenie nie poprawia wszystkich błędów. Zajmie się drobnymi błędami, takimi jak wcięcia, zamykające nawiasy itp.
Jeśli spojrzysz na powyższy zrzut ekranu, zauważysz, że w naszym pliku znaleziono łącznie 7 błędów. Po liście błędów zobacz wiersz
„PHPCBF” MOŻE AUTOMATYCZNIE NAPRAWIĆ 6 ZAZNACZONYCH NARUSZENIA SNIFF
Pierwszy błąd związany z brakiem komentarza doc pliku, musimy zadbać o ten komentarz doc. Polecenie „PHPCBF” nie poprawi tego.
Powiedziawszy to, napiszmy dla niego polecenie.
phpcbf --standard=PEAR D:wampwwwapitinypngindex.php
Na zrzucie ekranu widać, że naprawiono 6 błędów, a 1 pozostał. Pozostały błąd jest związany z komentarzem pliku doc.
Tak więc dodamy komentarz do pliku, a nasz ostateczny kod będzie wyglądał następująco.
<?php
/**
* This file will generate the resize version of an image
*
* PHP version 5.6.25
*
* @category Resize_Image
* @package TinyPNG
* @author Sajid <[email protected]>
* @license http://www.php.net/license/3_01.txt PHP License 3.01
* @link https://artisansweb.net/resize-image-php-using-tinypng
*/
require_once "vendor/autoload.php";
require_once "config.php";
TinifysetKey(TINIFY_KEY);
$source = TinifyfromFile("large.jpg");
$resized = $source->resize(
array(
"method" => "cover",
"width" => 150,
"height" => 100
)
);
$resized->toFile("thumbnail1.jpg");
echo "Image resized.";
$bool = true;
?>
Teraz, jeśli uruchomimy skrypt ‘phpcs’, nie otrzymamy żadnych błędów standardów kodowania PHP.
Uwaga: PHP_CodeSniffer sprawdza również poprawność plików JS i CSS.