All Projects → CodeIgniter → coding-standard

CodeIgniter / coding-standard

Licence: MIT License
Official Coding Standards for CodeIgniter

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to coding-standard

OpenStaticAnalyzer
OpenStaticAnalyzer is a source code analyzer tool, which can perform deep static analysis of the source code of complex systems.
Stars: ✭ 19 (-20.83%)
Mutual labels:  coding-standards
ForgeIgniter-CI-3.x
Friendly open source CMS forged on Codeigniter 3
Stars: ✭ 26 (+8.33%)
Mutual labels:  codeigniter
yqdoc
基于语雀API开发的文档系统
Stars: ✭ 64 (+166.67%)
Mutual labels:  codeigniter
php-cs-fixer-extensions
PHP-CS-Fixer extensions and configurations
Stars: ✭ 71 (+195.83%)
Mutual labels:  coding-standards
JWT-CodeIgniter
JSON Web Token native library for PHP
Stars: ✭ 47 (+95.83%)
Mutual labels:  codeigniter
gisportal
GIS portal and Administration part of Extended QGIS Web Client
Stars: ✭ 19 (-20.83%)
Mutual labels:  codeigniter
Slice-Library
Slice-Library is a CodeIgniter library that simulates Laravel's Blade templating system!
Stars: ✭ 60 (+150%)
Mutual labels:  codeigniter
ParkCatcher
Find a free parking in the nearest residential street when driving in Montréal. A Montréal Open Data project.
Stars: ✭ 32 (+33.33%)
Mutual labels:  codeigniter
Ecommerce-CodeIgniter
An ecommerce CMS, very simple to use. Best for online shopping sites
Stars: ✭ 18 (-25%)
Mutual labels:  codeigniter
development-best-practices
程序员开发规范,其中包括Java、JavaScript、CSS、Oracle、MySQL的开发编码规范和规约
Stars: ✭ 14 (-41.67%)
Mutual labels:  coding-standards
SIAKAD-PT
Sistem Informasi Akademik Perguruan Tinggi with Framework CodeIgniter
Stars: ✭ 53 (+120.83%)
Mutual labels:  codeigniter
tiket
TIKET is a ticketing/helpdesk system to support and help you deal with issues/incidents in your organization or from customers.
Stars: ✭ 59 (+145.83%)
Mutual labels:  codeigniter
XS-Labs-Style-Guide
XS-Labs Coding Style Guide for C, C++, Objective-C and x86 Assembly
Stars: ✭ 20 (-16.67%)
Mutual labels:  coding-standards
codeigniter-rest
CodeIgniter 3 RESTful API Resource Base Controller
Stars: ✭ 71 (+195.83%)
Mutual labels:  codeigniter
CodeIgniter4-Cart-Module
A basic port of the CodeIgniter 3 cart library for CodeIgniter 4.
Stars: ✭ 31 (+29.17%)
Mutual labels:  codeigniter
rimbun
Codeigniter Starter
Stars: ✭ 25 (+4.17%)
Mutual labels:  codeigniter
article-translation
CodeIgniter article translation. CodeIgniter 文章翻译项目。
Stars: ✭ 25 (+4.17%)
Mutual labels:  codeigniter
codingstyle
Java coding style and template project used at Munich university of applied sciences
Stars: ✭ 19 (-20.83%)
Mutual labels:  coding-standards
cat
CAT is a computer-based online test application powered by Codeigniter, jquery. Simple and easy to use
Stars: ✭ 72 (+200%)
Mutual labels:  codeigniter
symfony-custom-coding-standard
Customized Symfony coding standard
Stars: ✭ 13 (-45.83%)
Mutual labels:  coding-standards

CodeIgniter Coding Standard

Unit Tests Coding Standards PHPStan Static Analysis PHPStan level Coverage Status Latest Stable Version License Total Downloads

This library holds the official coding standards of CodeIgniter based on PHP CS Fixer and powered by Nexus CS Config.

Installation

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

Setup

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',
+    '[email protected]',
+    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 Factory::create().

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 Factory::create().

 <?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.

Contributing

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.

License

This work is open-sourced under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].