Skip to content

Commit 00054de

Browse files
author
Nick Feting
committed
feat(PSR12): стандарт наследуется от PSR12, обновлена документация
1 parent eaaf120 commit 00054de

7 files changed

Lines changed: 93 additions & 64 deletions

File tree

.php-cs-fixer.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
return (new PhpCsFixer\Config())
4+
->setUsingCache(false)
5+
->setRules([
6+
'@PSR12' => true,
7+
'indentation_type' => true,
8+
'@PhpCsFixer' => true,
9+
'array_syntax' => [
10+
'syntax' => 'short',
11+
],
12+
'binary_operator_spaces' => [],
13+
'braces' => [
14+
'position_after_functions_and_oop_constructs' => 'same',
15+
],
16+
]);

.php_cs

Lines changed: 0 additions & 21 deletions
This file was deleted.

README.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
1-
# Webpractik PHP Code standarts
1+
# Webpractik PHP Code standards
2+
3+
Стандарт наследуется от [@PSR-12](https://www.php-fig.org/psr/psr-12/) ([рус](https://github.com/MiklyxoMaklai/rus-PSR/blob/master/accepted/psr-12.md)) за исключением:
24

3-
Стандарт наследуется от [@PSR-2](http://www.php-fig.org/psr/psr-2/) ([рус](https://svyatoslav.biz/misc/psr_translation/#_PSR-2)) за исключением:
45
- Длина строки (шаблоны в Bitrix сложно валидировать)
5-
- Отключение требования не использовать пользовательский код вместе с классами (в Bitrix нужно порой вызывать модуль или компонент перед определением класса в связи со своей системой autoload)
6+
- Отключение требования не использовать пользовательский код вместе с классами (в Bitrix нужно порой вызывать модуль или компонент перед определением класса в связи со своей
7+
системой autoload)
68

79
Репозиторий содержит в себе
10+
811
1. Стандарт для [phpcs](https://github.com/squizlabs/PHP_CodeSniffer)
912
2. Конфиг для [php-cs-fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer)
1013

1114
## Установка
12-
Устанавливаем глобально в систему. Не забываем что у вас в систем должен быть прописан path к [/vendor/bin/](https://github.com/webpractik/phpcs/blob/master/doc/linux-vendor.md).
15+
16+
Устанавливаем глобально в систему. Не забываем что у вас в системе должен быть прописан path к [/vendor/bin/](https://github.com/webpractik/phpcs/blob/master/doc/linux-vendor.md).
17+
1318
```bash
1419
composer global require webpractik/php_code_style
1520
```
1621

1722
Устанавливаем путь к стандарту по умолчанию для phpcs
23+
1824
```bash
1925
# linux
2026
phpcs --config-set installed_paths "$HOME/.config/composer/vendor/webpractik/php_code_style"
@@ -25,10 +31,13 @@ phpcs --config-set installed_paths $HOME/.composer/vendor/webpractik/php_code_st
2531
# windows
2632
phpcs --config-set installed_paths "~/AppData/Roaming/Composer/vendor/webpractik/php_code_style"
2733
```
34+
2835
Если вы правильно сделали, то при наборе в консоли `phpcs -i` у вам должен появиться стандарт Webpractik среди прочих.
2936

30-
Примечание: в windows иногда может некорректно на ~ реагировать, и прийдется прописать полный путь к файлу. Также может быть проблема если у вас в имени есть пробел. Решается симлинком.
37+
Примечание: в windows иногда может некорректно реагировать на '~', и прийдется прописать полный путь к файлу. Также может быть проблема если у вас в имени есть пробел. Решается
38+
симлинком.
3139

3240
## Настройка редакторов
41+
3342
- [phpstorm](https://github.com/webpractik/phpcs/blob/master/doc/phpstorm.md)
3443
- [sublime-text](https://github.com/webpractik/phpcs/blob/master/doc/sublime.md)

Webpractik/ruleset.xml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<?xml version="1.0"?>
22
<ruleset name="Webpractik">
3-
<description>The Webpractik Bitrix coding standard.</description>
3+
<description>The Webpractik Bitrix coding standard.</description>
44

5-
<rule ref="PSR2">
6-
<!-- Bitrix: даем возможность в компонентах подключать компоненты и модули вне класса -->
7-
<exclude name="PSR1.Files.SideEffects"/>
5+
<rule ref="PSR12">
6+
<!-- Bitrix: даем возможность в компонентах подключать компоненты и модули вне класса -->
7+
<exclude name="PSR1.Files.SideEffects"/>
88

9-
<!-- Отключаем проверку длины строки =( -->
10-
<exclude name="Generic.Files.LineLength"/>
11-
</rule>
9+
<!-- Отключаем проверку длины строки =( -->
10+
<exclude name="Generic.Files.LineLength"/>
11+
</rule>
1212
</ruleset>

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@
1313
"squizlabs/php_codesniffer": "3.*",
1414
"friendsofphp/php-cs-fixer": "*"
1515
},
16-
"version": "1.1"
16+
"version": "1.2"
1717
}

doc/phpstorm.md

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,56 @@
1-
1. Открываем настройки ctrl+alt+S
2-
2. Фильтруем настройки введя "sniffer"
3-
3. В разделе ```Language => PHP => Code Sniffer```
4-
- Выбираем local и указываем путь к бинарнику phpstorm, проверив корректность нажав validate.
1+
## PHP_CodeSniffer
52

3+
1. В разделе ```File | Settings | PHP | Quality Tools | PHP_CodeSniffer | Configuration```
4+
- Выбираем CLI Interpreter с необходимой версий PHP
5+
- PHP_CodeSniffer path указываем путь к бинарнику phpstorm, проверив корректность нажав validate.
66
```bash
77
#Пример пути для linux
88
/home/north/.config/composer/vendor/bin/phpcs
99
```
10-
4. В разделе ```Editor => Inspections => PHP => PHP Code Sniffer validation```
11-
- устанавливаем галочки активируя проверку
10+
- PHP Code Beautifier and Fixer Settings указываем путь к бинарнику
11+
```bash
12+
#Пример пути для linux
13+
/home/north/.config/composer/vendor/bin/phpcbf
14+
```
15+
16+
2. В разделе ```File | Settings | PHP | Quality Tools | PHP_CodeSniffer```
17+
- Включаем настройку
18+
- Указываем Coding standard "Webpractik", если установили путь к стандарту по умолчанию, либо п.3
19+
20+
3. (Если не настроен п.2) В разделе ```File | Settings | PHP | Quality Tools | PHP_CodeSniffer```
1221
- Выбираем Custom в выпадающем списке и прописываем путь к xml файлу
1322

1423
```bash
1524
#Пример пути для linux
1625
/home/north/.config/composer/vendor/webpractik/php_code_style/Webpractik/ruleset.xml
1726
```
1827

19-
5. Если хотим исключить какие блоки кода из проверки (например ядро CMS)
28+
4. Если хотим исключить какие блоки кода из проверки (например ядро CMS)
2029
- В настройках открываем Appearance => scopes
21-
- Выбираем папку которую хотим исключить и нажимаем Exclude Recursively, называем наш scope например public
30+
- Выбираем папку, которую хотим исключить, и нажимаем Exclude Recursively, называем наш scope например public
2231
- В разделе ```Editor => Inspections => PHP => PHP Code Sniffer validation```
23-
24-
Нажимаем ```"+"``` и выбираем наш новый scope. Старый Everywhere отключаем, сняв галку.
25-
26-
Теперь если вы зайдете в файлы ядра не следующему стандарту у вас не будет все гореть красным от подсветок.
27-
28-
Пример настройки:
29-
30-
![Пример настройки](https://w6p.ru/MmU4Zj.png)
32+
33+
Нажимаем ```"+"``` и выбираем наш новый scope. Старый Everywhere отключаем, сняв галку.
34+
35+
Теперь если вы зайдете в файлы ядра, не следующему стандарту, у вас не будет все гореть красным от подсветок.
36+
37+
Пример настройки:
38+
39+
![Пример настройки](https://w6p.ru/MmU4Zj.png)
40+
41+
## PHP_CodeSniffer
42+
43+
1. В разделе ```File | Settings | PHP | Quality Tools | PHP CS Fixer | Configuration```
44+
- PHP CS Fixer path указываем путь к бинарнику phpstorm, проверив корректность нажав validate.
45+
```bash
46+
#Пример пути для linux
47+
/home/north/.config/composer/vendor/bin/php-cs-fixer
48+
```
49+
2. В разделе ```File | Settings | PHP | Quality Tools | PHP CS Fixer | Options```
50+
- Ruleset: Custom
51+
- Path указываем путь к конфигурации текущей библиотеки
52+
```bash
53+
#Пример пути для linux
54+
/home/north/.config/composer/vendor/webpractik/php_code_style/.php-cs-fixer.php
55+
```
56+
- Включаем настройку

doc/sublime.md

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
Устанавливаем [sublime-phpcs](http://benmatselby.github.io/sublime-phpcs/)
22

33
Пример конфига для windows:
4+
45
```json
56
{
6-
"show_debug": false,
7-
8-
"phpcs_executable_path": "~/AppData/Roaming/Composer/vendor/bin/phpcs.bat",
9-
"phpcs_execute_on_save": true,
10-
"phpcs_additional_args": {
11-
"--standard": "Webpractik",
12-
"-n": ""
13-
},
14-
15-
"php_cs_fixer_executable_path": "~/AppData/Roaming/Composer/vendor/bin/php-cs-fixer.bat",
16-
"php_cs_fixer_on_save": false,
17-
"php_cs_fixer_additional_args": {
18-
"--config": "~/AppData/Roaming/Composer/vendor/webpractik/php_code_style/.php_cs"
19-
},
7+
"show_debug": false,
8+
"phpcs_executable_path": "~/AppData/Roaming/Composer/vendor/bin/phpcs.bat",
9+
"phpcs_execute_on_save": true,
10+
"phpcs_additional_args": {
11+
"--standard": "Webpractik",
12+
"-n": ""
13+
},
14+
"php_cs_fixer_executable_path": "~/AppData/Roaming/Composer/vendor/bin/php-cs-fixer.bat",
15+
"php_cs_fixer_on_save": false,
16+
"php_cs_fixer_additional_args": {
17+
"--config": "~/AppData/Roaming/Composer/vendor/webpractik/php_code_style/.php-cs-fixer.php"
18+
}
2019
}
2120
````
2221

0 commit comments

Comments
 (0)