Official Coding Standards for CodeIgniter based on PHP CS Fixer
Installs: 459 886
Open Issues: 0
- php: ^7.4 || ^8.0
- ext-tokenizer: *
- friendsofphp/php-cs-fixer: ^3.16
- nexusphp/cs-config: ^3.6
- nexusphp/tachycardia: ^1.3
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^9.5
This library holds the official coding standards of CodeIgniter based on PHP CS Fixer and powered by Nexus CS Config.
You can add this library as a local, per-project dependency to your project using Composer:
composer require codeigniter/coding-standard
If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency:
composer require --dev codeigniter/coding-standard
To start, let us create a
.php-cs-fixer.dist.php file at the root of your project.
<?php use CodeIgniter\CodingStandard\CodeIgniter4; use Nexus\CsConfig\Factory; return Factory::create(new CodeIgniter4())->forProjects();
This minimal setup will return a default instance of
PhpCsFixer\Config containing all rules applicable
for the CodeIgniter organization.
Then, in your terminal, run the following command:
$ vendor/bin/php-cs-fixer fix --verbose
Adding License Headers
The default setup will not configure a license header in files. License headers can be especially useful for library authors to assert copyright. To add license headers in your PHP files, you can simply provide your name and name of library. Optionally, you can also provide your email and starting license year.
<?php use CodeIgniter\CodingStandard\CodeIgniter4; use Nexus\CsConfig\Factory; -return Factory::create(new CodeIgniter4())->forProjects(); +return Factory::create(new CodeIgniter4())->forLibrary( + 'CodeIgniter 4 framework', + 'CodeIgniter Foundation', + 'firstname.lastname@example.org', + 2021, +);
Providing Overriding Rules and Options
The list of enabled rules can be found in the
CodeIgniter\CodingStandard\CodeIgniter4 class. If you
feel the rule is not applicable to you or you want to modify it, you can do so by providing an array of
overriding rules to the second parameter of
Similarly, you can further modify the
PhpCsFixer\Config instance returned by using the available options.
All available options are fully supported by Nexus CS Config and abstracted by simply providing an
array of key-value pairs in the third parameter of
<?php use CodeIgniter\CodingStandard\CodeIgniter4; use Nexus\CsConfig\Factory; -return Factory::create(new CodeIgniter4())->forProjects(); +return Factory::create(new CodeIgniter4(), , [ + 'usingCache' => false, +])->forProjects();
You can check out this library's own
.php-cs-fixer.dist.php for inspiration on how it is done.
For more detailed documentation on all available options, you can check here.
All forms of contributions are welcome!
Since the rules here will be propagated and used within the CodeIgniter organization, all proposed rules and modifications to existing rules should have a proof-of-concept (POC) PR sent first to the CodeIgniter4 repository with possible changes to the code styles applied there. Once accepted there, you can send in a PR here to apply those rules.
This work is open-sourced under the MIT license.