PHP CodeSniffer en WordPress Coding Standards

Als WordPress ontwikkelaar volg ik ook graag de WordPress Coding Standards in de WordPress plugins en thema’s die ik ontwikkel. Ook bij Pronamic, het bedrijf waar ik voor werk, volgen we strikt deze standaarden. Sinds kort gebruik ik PHP CodeSniffer en de WordPress Coding Standards sniffs om projecten te controleren op de WordPress Coding Standards.

Op een Mac kan met behulp van Brew eenvoudig de PHP CodeSniffer package geïnstalleerd worden. Hiervoor kan de volgende commando in de Terminal uitgevoerd worden:

$ brew install php-code-sniffer

Als de installatie is voltooid kan met de volgende commando gecontroleerd worden welke versie van PHP CodeSniffer is geïnstalleerd.

$ phpcs --version
PHP_CodeSniffer version 1.5.2 (stable) by Squiz (http://www.squiz.net)

Vervolgens kan met het volgende commando gecontroleerd worden welke PHP CodeSniffer standaarden zijn geïnstalleerd.

$ phpcs -i
The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz and Zend

Standaard worden de WordPress Coding Standards sniffs niet meegeleverd in de PHP CodeSniffer package. De WordPress Coding Standards zijn echter eenvoudig te installeren via de volgende commando:

$ git clone git://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git /usr/local/Cellar/php-code-sniffer/1.5.2/CodeSniffer/Standards/WordPress

Als goed is staat hierna “WordPress” tussen de lijst met de geïnstalleerde PHP CodeSniffer standaarden.

$ phpcs -i
The installed coding standards are MySource, PEAR, PHPCS, PSR1, PSR2, Squiz, WordPress and Zend

Standaard zal er gebruik gemaakt worden van de WordPress Coding Standards in de ‘master’ branche. De ‘develop’ branche is echter veel interessanter, daarom is het interessant om over te schakelen naar de de ‘develop’ branche. Hiervoor kunnen de volgende commando’s uitgevoerd worden:

$ cd /usr/local/Cellar/php-code-sniffer/1.5.2/CodeSniffer/Standards/WordPress
$ git checkout develop

Hierna kan een WordPress thema of plugin met de volgende commando gecontroleerd worden op de WordPress Coding Standards:

$ phpcs -p -s -v --standard=WordPress .

Zelf maak ik veel gebruik van Grunt om ontwikkel taken verder te automatiseren. Er is een Grunt PHP CodeSniffer taak beschikbaar die hierbij van pas komt. Deze taak kan met de volgende commando geïnstalleerd worden.

$ npm install grunt-phpcs --save-dev

Binnen de Pronamic iDEAL plugin is te zien hoe we ‘phpcs’ Grunt taak verder hebben geconfigureerd. We gebruiken daar ook een “phpcs.ruleset.xml” bestand om een aantal mappen/bestanden en sniffs uit te schakelen.

WordPress in readonly (alleen lezen) modus

Bij het verhuizen van een WordPress website naar een nieuwe hosting omgeving kan het handig zijn om de WordPress website tijdelijk in readonly (alleen lezen) modus te zetten. Op die manier kun je voorkomen dat er nieuwe berichten, reacties, formulierinzendingen, etc. geplaatst worden na je database dump/export. Met behulp van de volgende .htaccess regels kun je een website vaak in readonly (alleen lezen) modus zetten:

<LimitExcept GET HEAD>
  Order Allow,Deny
  Deny from all
</LimitExcept>

Bron: http://serverfault.com/a/270971

Update 22 juli 2014

Mocht bovenstaande code niet functioneren dan hetzelfde ook gerealiseerd worden met behulp van de volgende code:

RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS|POST|PUT)
RewriteRule .* - [F]

Bron: http://www.xpertdeveloper.com/2012/02/limit-request-methods-using-htaccess/

wp-config.php