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 ПОЗНАЧЕНИХ ПОРУШЕНЬ НУХУ
Перша помилка, яка пов’язана з відсутнім коментарем до документа до файлу, ми повинні взяти до уваги цей коментар до документа. Команда ‘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.