PHP_CodeSniffer – библиотека для улучшения ваших стандартов кодирования PHP
Вы хотите улучшить свои стандарты кодирования PHP? Очевидно, да. Независимо от того, являетесь ли вы более свежим или опытным разработчиком PHP, каждый хочет улучшить свои стандарты кодирования.
Но как?
Что ж, в Интернете доступно несколько ресурсов, которые вы можете прочитать и приступить к реализации.
Есть еще одно решение, которое не требует чтения о стандартном кодировании. Вместо этого он дает вам предложения по улучшению среды выполнения стандартов, просматривая ваш файл PHP. Этот способ лучше, так как вы получите четкое предложение вместе с номером строки.
Введение в PHP_CodeSniffer
Как следует из названия, PHP_CodeSniffer нюхает код в ваших файлах или папках. Везде, где он чувствует плохой код, он сообщает вам, где находится плохой код и какие шаги вы должны предпринять для его исправления. PHP_CodeSniffer действует как программа проверки кода PHP.
Это очень рекомендуемая библиотека для программистов PHP. Во время работы над проектом PHP вы не должны доставлять свой код конечному клиенту, пока не закончите с PHP_CodeSniffer, предложенными стандартами кодирования PHP.
В конце концов, программист PHP должен предоставить лучший код, а PHP_CodeSniffer поможет вам улучшить код.
Установите PHP_CodeSniffer с помощью Composer
Composer – это менеджер зависимостей для PHP. Он позволяет вам установить / обновить библиотеку, необходимую для вашего проекта.
Вы можете установить PHP_CodeSniffer в корневой каталог вашего проекта. Но я рекомендую вам создать папку php_codesniffer в корневом каталоге и установить библиотеку внутри этой папки.
Чтобы установить PHP_CodeSniffer с помощью композитора, откройте командную строку в каталоге php_codesniffer и выполните следующую команду.
composer require "squizlabs/php_codesniffer=*"
Давайте проверим наши стандарты кодирования PHP
Затем перейдите в php_codesniffer/vendor/bin
каталог из командной строки. Из этой папки bin мы проверим наши стандарты кодирования PHP на соответствие PHP_CodeSniffer.
Например, предположим, что в вашем проекте есть файл с именем index.php. Мой файл index.php содержит приведенный ниже код.
<?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;
?>
Этот код используется для изменения размера изображения в PHP с помощью библиотеки TinyPNG. Наш код работает нормально и дает ожидаемый результат. Но мы упустили некоторые стандарты кодирования в нашем файле.
Давайте выясним, какого стандарта нам не хватает в приведенном выше файле.
Мы проверим этот файл на соответствие PHP_CodeSniffer, выполнив следующую команду.
phpcs --standard=PEAR /path/to/your/file
Мы работаем в Windows, поэтому в нашем случае команда будет выглядеть следующим образом.
phpcs --standard=PEAR D:wampwwwapitinypngindex.php
Здесь «–standard = PEAR» означает, что наш файл будет проверяться на соответствие стандарту, установленному PEAR.
После выполнения указанной выше команды мы получили несколько ошибок в стандартах кодирования.
Исправьте код, используя инструкции
Возьмем один пример ошибки.
Вторая ошибка: “require_once” – это инструкция, а не функция: скобки не требуются.
По этой ошибке мы узнаем о стандарте включения внешнего файла.
Наш код ниже
require_once ("vendor/autoload.php");
require_once ("config.php");
следует заменить на
require_once "vendor/autoload.php";
require_once "config.php";
Это один из примеров исправления кода. В вашем случае вы можете найти и другие ошибки. Вы должны исправить это, следуя полученным инструкциям.
Библиотека PHP_CodeSniffer предоставляет одну команду, которая автоматически исправляет нарушения стандартов кодирования. Помните, что эта команда не исправляет все ошибки. Он позаботится о некоторых незначительных ошибках, таких как отступы, закрывающие круглые скобки и т.д.
Если вы посмотрите на приведенный выше снимок экрана, вы заметите, что всего в нашем файле обнаружено 7 ошибок. После списка ошибок см. Строчку
‘PHPCBF’ МОЖЕТ ИСПРАВИТЬ 6 ОТМЕЧЕННЫХ НАРУШЕНИЙ SNIFF АВТОМАТИЧЕСКИ
Первая ошибка, связанная с отсутствующим комментарием документа к файлу, мы должны исправить этот комментарий документа. Команда PHPCBF не исправит это.
Сказав это, давайте напишем для него команду.
phpcbf --standard=PEAR D:wampwwwapitinypngindex.php
На скриншоте видно, что исправлено 6 ошибок и 1 осталась. Оставшаяся ошибка связана с комментарием документа к файлу.
Итак, мы добавим комментарий к файлу, и наш окончательный код будет следующим.
<?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;
?>
Теперь, если мы запустим сценарий phpcs, мы не получим ошибок стандартов кодирования PHP.
Примечание. PHP_CodeSniffer также проверяет ваши файлы JS и CSS.