✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

PHP_CodeSniffer – Ett bibliotek för att förbättra dina PHP-kodningsstandarder

14

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=*"

PHP_CodeSniffer - Ett bibliotek för att förbättra dina PHP-kodningsstandarder

Låt oss kontrollera våra PHP-kodningsstandarder

Gå sedan vidare till php_codesniffer/vendor/binkatalogen 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 .

PHP_CodeSniffer - Ett bibliotek för att förbättra dina PHP-kodningsstandarder

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

PHP_CodeSniffer - Ett bibliotek för att förbättra dina PHP-kodningsstandarder

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

PHP_CodeSniffer - Ett bibliotek för att förbättra dina PHP-kodningsstandarder

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.

PHP_CodeSniffer - Ett bibliotek för att förbättra dina PHP-kodningsstandarder

Obs! PHP_CodeSniffer validerar också dina JS- och CSS-filer.

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer