Skip to content

Automatically install Symfony2 coding standard for PHP_CodeSniffer.

License

Notifications You must be signed in to change notification settings

braincrafted/symfony2cs-bundle

Repository files navigation

BraincraftedSymfony2CSBundle

Unfortunately PHP_CodeSniffer does not contain the Symfony2 coding standard and is not extensible. If you want to install PHP_CodeSniffer using Composer you have to install the coding standard manually everytime PHP_CodeSniffer is updated. Until now.

Author

Compatiblity

BraincraftedSymfony2CSBundleSymfony
0.1.*2.3.*
0.2.*2.4.*
master2.4.*

Installation

First you have to add the bundle to your composer.json:

{
    "require": {
        "braincrafted/symfony2cs-bundle": "dev-master"
    }
}

Next you have to add the bundle to your AppKernel.php:

// AppKernel.php

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Braincrafted\Bundle\Symfony2CSBundle\BraincraftedSymfony2CSBundle(),
        );

        // ...

        return $bundles;
    }
}

You can now execute the braincrafted:symfony2cs:install command to install the Symfony2 coding standard:

$ php app/console braincrafted:symfony2cs:install

However, things get better if you add the script handler that is included in the bundle to the post-install-cmd and post-update-cmd sections of your composer.json:

    ...
    "scripts": {
        "post-install-cmd": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
            "Braincrafted\\Bundle\\Symfony2CSBundle\\Composer\\ScriptHandler::installSymfony2CS"
        ],
        "post-update-cmd": [
            "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
            "Braincrafted\\Bundle\\Symfony2CSBundle\\Composer\\ScriptHandler::installSymfony2CS"
        ]
    },
    ...

Usage

If you add the script handler to the post-install-cmd and post-update-cmd sections of your composer.json the bundle will install or update the coding standard everytime you run composer install or composer update.

You can use the Symfony2 coding standard when you run PHP_CodeSniffer:

$ ./bin/phpcs --standard=Symfony2 ./src/

Error handling

If you should encounter problem add the --verbose option to the command to view the output of the executed commands.

$ php app/console braincrafted:symfony2cs:install --verbose

Changelog

Version 0.2.1 (27 August 2014)

  • Updated path to coding standard repo (the original is gone)

Version 0.2 (14 November 2013)

  • Changed namespace from Bc to Braincrafted
  • Support for Symfony 2.4

License

The bundle is licensed under The MIT License. See the LICENSE file for more information.