PHP_CodeSniffer – Kirjasto PHP-koodausstandardien parantamiseen
Haluatko parantaa PHP-koodausstandardejasi? Ilmeisesti kyllä. Ei ole väliä olet tuoreempi tai kokenut PHP-kehittäjä, kaikki haluavat parantaa koodausstandardejaan.
Mutta miten?
Internetissä on useita resursseja, joita voit lukea ja aloittaa toteuttamisen.
On vielä yksi ratkaisu, joka ei vaadi lukemista tavallisesta koodauksesta. Sen sijaan se antaa sinulle ehdotuksia standardien ajonaikan parantamiseksi katsomalla PHP-tiedostoa. Tämä tapa on parempi, koska saat selkeän ehdotuksen rivinumeron kanssa.
PHP_CodeSnifferin esittely
Kuten nimestä voi päätellä, PHP_CodeSniffer haisee tiedostojesi tai kansioidesi koodin. Mistä tahansa, se haisee huonon koodin, jonka se antaa sinulle, kun ilmoitat, missä huono koodi on ja mitä toimia sinun tulisi tehdä sen korjaamiseksi. PHP_CodeSniffer toimii kuten PHP-koodin tarkistaja.
Se on erittäin suositeltava kirjasto PHP-ohjelmoijalle. Kun työskentelet PHP-projektin parissa, sinun ei pitäisi toimittaa koodiasi loppuasiakkaalle, ennen kuin olet suorittanut PHP_CodeSniffer-ehdotetut PHP-koodausstandardit.
Loppujen lopuksi PHP-ohjelmoijan pitäisi antaa parempi koodi ja PHP_CodeSniffer auttaa sinua parantamaan koodausta.
Asenna PHP_CodeSniffer Composerin avulla
Composer on PHP: n riippuvuuksien hallinta. Sen avulla voit asentaa / päivittää projektille tarvitsemasi kirjaston.
Voit asentaa PHP_CodeSniffer projektisi juurihakemistoon. Mutta suosittelen, että luot juurihakemistoon kansion ‘php_codesniffer’ ja asennat kirjaston tähän kansioon.
Voit asentaa PHP_CodeSniffer säveltäjän avulla avaamalla komentokehotteen hakemistossa ‘php_codesniffer’ ja suorittamalla alla olevan komennon.
composer require "squizlabs/php_codesniffer=*"
Tarkistetaan PHP-koodausstandardimme
Seuraavaksi siirry php_codesniffer/vendor/bin
komentokehotteesta hakemistoon. Tästä bin-kansiosta tarkistamme PHP-koodausstandardimme PHP_CodeSniffer -palveluun.
Oletetaan esimerkiksi, että projektissasi on tiedosto nimeltä index.php. Index.php-tiedostoni sisältää alla olevan koodin.
<?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;
?>
Tätä koodia käytettiin kuvan koon muuttamiseen PHP: ssä käyttämällä TinyPNG-kirjastoa. Koodimme toimii hyvin ja antaa odotetun tuloksen. Mutta meiltä puuttui joitain koodausstandardeja tiedostostamme.
Selvitetään, mikä standardi puuttuu yllä olevasta tiedostosta.
Tarkistamme tämän tiedoston PHP_CodeSniffer-ohjelmalla suorittamalla alla olevan komennon.
phpcs --standard=PEAR /path/to/your/file
Työskentelemme Windowsissa, joten tapauksessamme komento olisi seuraava.
phpcs --standard=PEAR D:wampwwwapitinypngindex.php
Tässä ‘–standard = PEAR’ tarkoittaa, että tiedostomme tarkistetaan PEARin asettaman standardin mukaisesti .
Yllä olevan komennon suorittamisen jälkeen saimme joitain virheitä koodausstandardeista.
Korjaa koodi käyttämällä ohjeita
Otetaan yksi esimerkki virheestä.
Toinen virhe sanomalla ‘demand_once’ on lause, joka ei ole funktio: sulkeita ei vaadita
Tällä virheellä opimme tuntemaan standardin ulkoisen tiedoston sisällyttämiseksi.
Alla oleva koodi
require_once ("vendor/autoload.php");
require_once ("config.php");
pitäisi korvata
require_once "vendor/autoload.php";
require_once "config.php";
Tämä on yksi esimerkki koodin korjaamisesta. Sinun tapauksessasi saatat löytää muita virheitä. Sinun on korjattava se noudattamalla saamiasi ohjeita.
PHP_CodeSniffer-kirjasto tarjoaa yhden komennon, joka korjaa koodauksen vakiorikkomukset automaattisesti. Muista, että tämä komento ei korjaa kaikkia virheitä. Se huolehtii pienistä virheistä, kuten sisennys, sulkeiden sulkeminen jne.
Jos tarkastelet yllä olevaa kuvakaappausta, huomaat, että tiedostostamme löytyy yhteensä 7 virhettä. Katso virheluettelon jälkeen rivi
‘PHPCBF’ voi korjata 6 merkittyä SNIFF-rikkomusta automaattisesti
Ensimmäinen virhe, joka liittyy puuttuvaan tiedostoon doc kommentti, meidän on huolehdittava tästä doc kommentista. ‘PHPCBF’ -komento ei korjaa sitä.
Sanottuamme, kirjoitetaan komento sille.
phpcbf --standard=PEAR D:wampwwwapitinypngindex.php
Kuvakaappauksessa näet, että se on korjannut 6 virhettä ja yksi on jäljellä. Pysyvä virhe liittyy tiedosto doc kommenttiin.
Joten lisätään tiedosto kommentoimalla ja lopullinen koodimme seuraa.
<?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;
?>
Jos suoritamme ‘phpcs’ -komentosarjan, emme saa mitään PHP-koodausstandardivirheitä.
Huomaa: PHP_CodeSniffer vahvistaa myös JS- ja CSS-tiedostosi.