index0h/code-style
Composer 安装命令:
composer require index0h/code-style
包简介
index0h code standard, based on PSR-2.
关键字:
README 文档
README
Что такое CodeStyle?
CodeStyle - это набор валидаторов кода на базе PHP_CodeSniffer. Есть полная совместимость с PSR-2.
Установка и выполнение.
Через Composer.
В тег require, или require-dev необходимо добавить:
{
"require": {
"index0h/CodeStyle": "dev-master"
}
}
Дальше необходимо применить обновления с тегом --dev если пакет был добвлен в require-dev.
composer.phar update
Выполнение проверки вашего проекта.
vendor/bin/CodeStyle.sh
Через git, или скачав архив.
Этот случай предполагает, что PHP_CodeSniffer устанавливается отдельно.
git clone https://github.com/index0h/CodeStyle.git
Выполнение.
phpcs --standard="/path/to/CodeStyle/CodeStyle" /path/to/my/project/
Описание отличий CodeStyle от PSR-2
Файлы.
- В одном файле может находится только один класс, или только один интерфейс.
- Файл должен содержать комментарии в заголовке в phpdoc формате.
- После комментария файла должен быть перевод строки.
- Комментарий файла должен начинаться на новой строке после <?php.
- Комментарий файла должен содержать краткое описание, после которого должна быть пустая строка комментария.
- Комментарий файла должен содержать теги category, package, subpackage, author, copyright, license, link в данном порядке.
- Значения тегов в комметарии файла должны быть выровнены.
- Пустые строки в комментарии файла запрещены всюду, кроме после короткого и полного комментария.
- Префикс комментария файла должыен быть: [пробел]*[пробел].
<?php /** * HashValidator.php. * * @category Helper * @package YiiHelper * @subpackage Validators * @author Roman Levishchenko <index.0h@gmail.com> * @copyright 2013 Roman Levishchenko <index.0h@gmail.com> * @license BSD-3-Clause https://github.com/index0h/yii-helper/blob/master/LICENSE * @version 0.0.1 * @link https://github.com/index0h/yii-helper/blob/master/ib/validators/HashValidator.php */
- Файл должен заканчиваться одной пустой строкой.
- Строка должна быть не более 120 символов.
- После namespace должен быть перевод строки.
Общее.
- Математические, логические, строчные и присваивание должны быть разделены одним пробелом.
// НЕ ПРАВИЛЬНО. $a=1+2+3+4; // ПРАВИЛЬНО. $a = 1 + 2 + 3 + 4;
- Запрещено использование for, в случае если больше подходит while.
// НЕ ПРАВИЛЬНО. for (;;) {
- Запрещено использование пустых инструкций.
// НЕ ПРАВИЛЬНО. if ($someVar === false) { }
- Запрещено использовать безусловные условия.
// НЕ ПРАВИЛЬНО. if (false) {
- Запрещено использование двойных кавачек там, где это не обязательно.
// НЕ ПРАВИЛЬНО. $a = "some text"; // ПРАВИЛЬНО. $a = 'some text'; $a = "some text {$here}";
- Запрещено использование echo в виде функции.
// НЕ ПРАВИЛЬНО. echo("some text"); // ПРАВИЛЬНО. echo 'some text';
- Запрещено использование "@" для скрытия ошибок.
// НЕ ПРАВИЛЬНО. @someFunc(); // ПРАВИЛЬНО. try { someFunc(); ...
- Запрещено использовать функции eval и ob_end_flush.
- Запрещено использование функций со статусом forbidden, или deprecated.
- Инструкиця catch должна содержать комментарий.
- Запрещено использование синтаксиса heredoc: <<<END.
- Запрещено использования size-функций, в циклах.
- Запрещено выполнять несколько операция на одной строке.
- Запрещено использование конкатенации в случаях, где она не нужна.
// НЕ ПРАВИЛЬНО. $a = 'some' . ' text ' . 'here'; // ПРАВИЛЬНО. $a = 'some text here';
- Запрещено использование выражений такого типа: $a = $a + 1;
- Запрещено присваивание неинициализированных объектов.
Классы.
- Класс должен содержать комментарий в phpdoc формате.
- В комментарии класса разрешены только короткое и длинныое описание.
- В комментарии класса короткое описание обязательно.
- Запрещено именование конструктора и деструктора в C++ стиле.
// НЕ ПРАВИЛЬНО. public function MyClassName() { // ПРАВИЛЬНО. public function __construct() {
Методы.
- Глобальные функции запрещены.
- Запрещены методы с мертвым кодом.
public function myDeadCode() { $a = 1; return true; // Мертвый код. $a = 2; }
- Запрещено использование $this в статическом методе.
- Запрещено передавать переменную по ссылке при вызове метода.
// НЕ ПРАВИЛЬНО. public function myFunc($a) { ... $myObj->myFunc(&$a); // ПРАВИЛЬНО. public function myFunc(&$a) { ... $myObj->myFunc($a);
- Запрещены методы с неиспользуемыми параметрами.
- Запрещено переопределение методов, выполняющее тольео родительский.
// НЕ ПРАВИЛЬНО. public function __construct($a, $b) { parent::__construct($a, $b); }
index0h/code-style 适用场景与选型建议
index0h/code-style 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 86 次下载、GitHub Stars 达 3, 最近一次更新时间为 2013 年 01 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「phpcs」 「Code style」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 index0h/code-style 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 index0h/code-style 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 index0h/code-style 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Memio's PrettyPrinter, used to generate PHP code from given Model
A Symfony bundle for using the CssToInlineStyles translator by tijsverkoyen
Fixing php code style
The coding standard applying to all Youdot PHP projects, based on Doctrine set of PHPCS rules, with additional checks.
CodeSniffer ruleset for the ZettaCMS coding standard
Run all code formatting tools with one command: pretty
统计信息
- 总下载量: 86
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 11
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2013-01-19