PHP_CodeSniffer – Ett bibliotek för att förbättra dina PHP-kodningsstandarder
Vill du förbättra dina PHP-kodningsstandarder? Uppenbarligen, ja. Oavsett om du är en fräschare eller erfaren PHP-utvecklare, vill alla förbättra sina kodningsstandarder.
Men hur?
Det finns flera resurser tillgängliga på Internet som du kan läsa och börja implementera.
Det finns ytterligare en lösning som inte kräver att man läser om standardkodning. Istället ger det dig förslag på hur du kan förbättra din standardtid genom att titta in i din PHP-fil. Detta sätt är bättre eftersom du får det tydliga förslaget tillsammans med radnumret.
Introduktion till PHP_CodeSniffer
Som namnet antyder luktar PHP_CodeSniffer koden i dina filer eller mappar. Var som helst, det luktar den dåliga koden det ger dig att rapportera var den dåliga koden är och vilka steg du bör vidta för att korrigera den. PHP_CodeSniffer fungerar som din PHP-kodkontroll.
Det rekommenderas starkt bibliotek för en PHP-programmerare. När du arbetar med PHP-projekt bör du inte leverera din kod till slutklienten förrän du är klar med PHP_CodeSniffer föreslagna PHP-kodningsstandarder.
När allt kommer omkring ska PHP-programmerare leverera en bättre kod och PHP_CodeSniffer hjälper dig för bättre kodning.
Installera PHP_CodeSniffer med Composer
Composer är en beroendeshanterare för PHP. Det låter dig installera / uppdatera det bibliotek du behöver för ditt projekt.
Du kan installera PHP_CodeSniffer i projektets rotkatalog. Men jag rekommenderar att du skapar en mapp ‘php_codesniffer’ i rotkatalogen och installerar biblioteket i den här mappen.
För att installera PHP_CodeSniffer med hjälp av kompositör, öppna kommandotolken i katalogen ‘php_codesniffer’ och kör kommandot nedan.
composer require "squizlabs/php_codesniffer=*"
Låt oss kontrollera våra PHP-kodningsstandarder
Gå sedan vidare till php_codesniffer/vendor/bin
katalogen från kommandotolken. Från den här bin-mappen kommer vi att kontrollera våra PHP-kodningsstandarder mot PHP_CodeSniffer.
Låt oss till exempel anta att vi har en fil som heter index.php i ditt projekt. Min index.php-fil innehåller nedanstående 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;
?>
Den här koden används för att ändra storlek på bilden i PHP med hjälp av TinyPNG-biblioteket. Vår kod fungerar bra och ger ett förväntat resultat. Men vi saknade några kodningsstandarder i vår fil.
Låt oss ta reda på vilken standard vi saknar i ovanstående fil.
Vi kontrollerar den här filen mot PHP_CodeSniffer genom att köra kommandot nedan.
phpcs --standard=PEAR /path/to/your/file
Vi arbetar med Windows så i vårt fall skulle ett kommando vara enligt följande.
phpcs --standard=PEAR D:wampwwwapitinypngindex.php
Här betyder ‘–standard = PEAR’ att vår fil kommer att kontrollera mot den standard som PEAR ställer in .
Efter att ha kört ovanstående kommando fick vi några fel angående kodningsstandarderna.
Korrigera koden med hjälp av riktlinjer
Låt oss ta ett exempel på fel.
Det andra felet som säger ‘require_once’ är ett uttalande och inte en funktion: inga parenteser krävs
Genom detta fel lär vi oss om standarden för att inkludera extern fil.
Vår nedanstående kod
require_once ("vendor/autoload.php");
require_once ("config.php");
bör ersättas med
require_once "vendor/autoload.php";
require_once "config.php";
Detta är ett exempel på korrigering av kod. I ditt fall kan du hitta några andra fel. Du bör korrigera det genom att följa instruktionerna du fick.
PHP_CodeSniffer-biblioteket tillhandahåller ett kommando som automatiskt korrigerar kodning av standardöverträdelser. Kom ihåg att det här kommandot inte korrigerar alla fel. Det tar hand om några mindre fel som indragning, stängning av parenteser etc.
Om du tittar på ovanstående skärmdump kommer du att märka att totalt 7 fel hittades i vår fil. Efter fellistan, se raden
‘PHPCBF’ KAN RÄTTA DE 6 MÄRKADE SNIFF-ÖVERTRÄDELSERNA AUTOMATISKT
Första felet som är relaterat till saknad fildokumentkommentar, vi måste ta hand om den här dokumentkommentaren. Kommandot ‘PHPCBF’ kommer inte att korrigera det.
Med detta sagt, låt oss skriva kommandot för det.
phpcbf --standard=PEAR D:wampwwwapitinypngindex.php
På skärmdumpen kan du se att det fixades 6 fel och 1 återstår. Återstående fel är relaterat till fildokumentkommentar.
Så vi lägger till filkommentarerna och vår slutliga kod kommer att följa.
<?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;
?>
Nu, om vi kör ‘phcs’ -skriptet får vi inga fel i PHP-kodningsstandarder.
Obs! PHP_CodeSniffer validerar också dina JS- och CSS-filer.