PHPackages                             techart/php-tooling - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. techart/php-tooling

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

techart/php-tooling
===================

Набор инструментов для поддержки PHP-проектов

0.1.0(2y ago)0231PHP

Since Feb 27Pushed 2y ago1 watchersCompare

[ Source](https://github.com/techart/php-tooling)[ Packagist](https://packagist.org/packages/techart/php-tooling)[ RSS](/packages/techart-php-tooling/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (4)Versions (5)Used By (0)

PHP Линтер
==========

[](#php-линтер)

Когда несколько программистов работают на одном большом проекте, возникают проблемы – у каждого программиста свой стиль написания кода, свое понимание того как нужно реализовывать различные участки программы. Из-за того что все пишут так как они этого хотят, другим разработчикам сложно быстро вовлечься в процесс работы в новом для них проекте.

Даже когда программист пытается следовать, общим для компании, правилам написания (), то всё равно играет человеческий фактор и где-то обязательно будет не соблюдение правил.

Чтобы оптимизировать этот процесс, был создан пакет php-tooling (), который включает в себя функционал линтера. Линтер анализирует код проекта и показывает ошибки и предупреждения в тех местах проекта, которые не соответствуют заданым правилам.

Результат работы линтера выглядит так:

[![](https://camo.githubusercontent.com/41dda6fe890b766b742ce3cd7cc1f4a94ccef1963ec1fae716388863328ae9f5/68747470733a2f2f776562746563682e746563686172742e72752f73746f726167652f6461746174797065732f706f7374732f303030302f30303030303334332f61747461636865732f746573742e706e67)](https://camo.githubusercontent.com/41dda6fe890b766b742ce3cd7cc1f4a94ccef1963ec1fae716388863328ae9f5/68747470733a2f2f776562746563682e746563686172742e72752f73746f726167652f6461746174797065732f706f7374732f303030302f30303030303334332f61747461636865732f746573742e706e67)

Установка
---------

[](#установка)

Пакет php-tooling должен существовать отдельно от вашего основного вендора на сайте. Установить его можно с помощью следующей команды:

```
vcomposer create-project techart/php-tooling

```

Данная команда по текущему пути создаст папку с названием пакета и склонирует туда его файлы, а так же применит автоматически `composer install`. (Не забываем добавить папку vendor этого пакета в .gitignore).

Если php-tooling уже существует, то будет достаточно собрать vendor-пакеты с помощью vcomposer install

### Пути установки

[](#пути-установки)

#### Bitrix

[](#bitrix)

В bitrix проектах пакет нужно ставить в папку local.

#### TAO3

[](#tao3)

В tao3 проектах пакет нужно ставить в корневую папку проекта.

Использование
-------------

[](#использование)

### Bitrix

[](#bitrix-1)

В bitrix проектах обычно по умолчанию ставится наш пакет bitrix.tao (). Данный пакет имеет специальную cli команду:

```
vphp cli.php php_lint_run

```

Эта команда запустит процесс анализа кода от папки [www](http://www).

Про функционал cli-команд можно почитать тут: .

### TAO3

[](#tao3-1)

Для tao3 проектов существует специальная artisan-команда:

```
vphp artisan php-lint:run

```

Про artisan команды можно почитать в официальной документации Laravel:

### Остальные проекты

[](#остальные-проекты)

Нужно из папки php-tooling выполнить следующую команду:

```
vphp ./vendor/bin/phpcs  --colors

```

Необходимость вызова команды непосредственно из папки обусловлено тем, что в ином месте вызова будут использоваться стандартные правила линтера.

Правила линтера
---------------

[](#правила-линтера)

В папке php-tooling содержится файл phpcs.xml. Он был создан на основе правил PSR12 (), это грубо говоря расширенный PSR2, которому мы следуем(почти). В этом файле добавляются правила и исключения. Править этот файл лично крайне не рекомендуется (по крайней мере для стандартных проектов на bitrix и tao3), он должен быть общим для всех, поэтому если есть необходимость добавления какого-то исключения или правила, то следует сообщить об этом вышестоящему по должности, как правило - тимлиду.

### Исключения

[](#исключения)

Для bitrtx проектов обычное дело видеть файлы типа .section.php, в которых объявляется массив, но не используется в рамках этого файла. Линтер соответственно об этом скажет. Чтобы избежать таких ситуаций, существует функционал исключения: Для игнорирования строчки пишем над строчкой следующее:

```
// phpcs:ignore

```

Данный комментарий скажет линтеру игнорировать следующую строку.

Для исключения целого файла есть следующая команда:

```
// phpcs:ignoreFile

```

Пишется в начало файла.

Эти команды существуют только **для безвыходных ситуаций**. Какие-то спорные ошибки или ситуации стоит обсуждать и в процессе дополнять файл правил.

Использование линтера в gitlab-ci
---------------------------------

[](#использование-линтера-в-gitlab-ci)

*Эта часть находится в стадии разработки*На данный момент можно создать задачу для gitlab-ci в таком виде:

```
php_lint_test:
  stage: test
  variables:
    CODE_SNIFFER_PATH:
  tags:
    - docker
    - php81 // Тег php-ранера, который используется на проекте
    - techart
  script:
    - |
      cd $CODE_SNIFFER_PATH && pwd
      composer install
      php ./vendor/bin/phpcs ../ --colors

```

Если линтер найдёт ошибки, процесс выкладки остановится с ошибкой.

PHPUnit тестирование
====================

[](#phpunit-тестирование)

Подробнейшая документация по написанию unit тестов тут:

Скрипт для запуска всех тестов из папки `/tests/`: `composer phpunit:run`

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~73 days

Total

4

Last Release

1002d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f53cb65e730c7f64dd792c621abd68d1252fb3e608720919a368ce65799eb826?d=identicon)[techart](/maintainers/techart)

---

Top Contributors

[![techart](https://avatars.githubusercontent.com/u/243578?v=4)](https://github.com/techart "techart (1 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/techart-php-tooling/health.svg)

```
[![Health](https://phpackages.com/badges/techart-php-tooling/health.svg)](https://phpackages.com/packages/techart-php-tooling)
```

###  Alternatives

[binarytorch/larecipe-feedback

Get feedback from your users about your documentations.

197.8k1](/packages/binarytorch-larecipe-feedback)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
