https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/ https://make.wordpress.org/core/handbook/best-practices/coding-standards/javascript/ https://make.wordpress.org/core/handbook/best-practices/coding-standards/css/
Yoda checks:
Primjer
if ( true == $the_force ) {
$victorious = 'you will be';
}
Osim za <, >, <= i >= jer se ti teško čitaju.
Strict comparisons
== vs === (!= vs !==)
Primjer
$a = '1'; // gettype($a) == string
$a == 1 ? 'True' : 'False' // True
$a === 1 ? 'True' : 'False' // False
Strict usporedba (===) provjerava vrijednost i tip varijable.
Komentari
Svaki file mora imat docBlock opis što radi taj file. .Svaka funkcija mora imat docBlock komentar ispred nje (Sublime ima DocBlockr paket, samo se upiše /** ispred funkcije i stisne tab i sve pokupi (argumente funkcije i sve)). Prije docBlock tagova mora biti jedno prazno mjesto, kod funkcija poslije docBlock komentara ne smije biti razmaka. https://phpdoc.org/about
Primjer
<?php
/**
* File php
*
* @package Cool_file
* @since 1.0.0
*/
/**
* [my_cool_function description]
*
* @return [type] [description]
*/
function my_cool_function() {
// Cool komentar o cool funkciji.
return 'I\'m cool!';
}
Svaki inline komentar mora početi sa velikim slovom i razmakom od znaka komentara te mora završiti sa ., ! ili ?
Razmaci između zagrada
Kod pisanja funckija, ako nije prazna, mora biti po 1 razmak sa svake strane
Primjer
$this_cat = get_category( get_query_var( 'cat' ), false ); OK
$this_cat = get_category(get_query_var('cat'), false); NIJE OK
Kod if-else statementa isto
if ( true == $a ) {
echo 'True';
} else {
echo 'False';
}
Ovo je loše:
if (true == $a){
echo 'True';
}
else{
echo 'False';
}
Ovo je katastrofa:
if(true==$a)
echo 'True';
Tabovi umjesto spaceva
Code indent ide sa 4 taba, ne sa 4 spacea. Možete to postaviti u user settingsima, ili dolje desno u kutu di piše Tab Size (ima čak i convert opcija). Znači ona prva indent using spaces mora biti off, a tab size na 4.
Empty line na kraju
Na kraju svakog dokumenta treba bit i jedan prazan red.
Provjera superglobal varijabli
Kod superglobalnih varijabli ($_POST, $_GET, etc.) treba biti oprezan i sanitizirati ih.
Primjer
if ( isset( $_POST['auth_step'] ) && 'Yes' === $_POST['auth_step'] ) { // Input var okay
Nonce verifikacije
Sve forme bi trebale imati nonce check (https://codex.wordpress.org/WordPress_Nonces)
Escapeanje na outputu
Kad god se nešto echoa treba sanitizirati to što se outputa. Tu treba biti oprezan i vidjeti da li se optputa npr wp_kses funkcija koja je sama po sebi sanitizacijska funkcija.
Sanitizacija kod upisa u bazu
Sve što se upisuje u bazu mora biti sanitizirano. Da li se radi o update_options, wp_set_post_terms ili mySQL querijima, treba paziti što se unosi u bazu (pogotovo ako se radi o nečemu što user može unjeti sa front enda - submit forme i sl.)
Primjer
update_option( 'ANALYTIFY_REDIRECT_URI', esc_url_raw( wp_unslash( $_POST['analytify_redirect_uri'] ) ) ); // Input var okay.
Imenovanje filea
Sve file bi trebale biti imenovane sa - a ne sa _
Primjer
output_saved_breadcrumbs_area.php NOT GOOD
output-saved-breadcrumbs-area.php GOOD
Imenovanje varijabli
Za imenovanje varijabli se koristi snake_case
Primjer
$cool_var OK
$coolVar NOT OK
Za imenovanje klasa koristimo CamelCase
Primjer
class MyCoolClassName OK
class My_Cool_Class_Name NOT OK
Prvo treba instalirati node.js
https://nodejs.org/en/download/
Jednom kad je instaliran, u command prompt se dodaju linteri
npm install -g jshint npm install -g csslint
I onda u Sublimeu se instalira SublimeLinter i jshint i csslint za sublime lintere.
za php code sniffer treba instalirati PEAR
http://pear.php.net/manual/en/installation.getting.php
Ja sam ga nakačio na XAMPP lokalnu instalaciju i sve radi.
U command promptu se upiše
pear install PHP_CodeSniffer
Ako to ne radim može se koristiti Composer (https://getcomposer.org/) za instalaciju.
Nakon toga samo u sublime dodate phpcs i onda bi trebalo u command prompt dodat path instalacije phpcs-a
phpcs --config-set installed_paths /path/to/wpcs
Linkovi http://subharanjan.com/setup-php-codesniffer-along-wordpress-coding-standards-windows-xampp/ https://github.com/SublimeLinter/SublimeLinter3 https://github.com/squizlabs/PHP_CodeSniffer https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards
E da, instalirajte si SublimeText3, bolji je i sve radi...