Парт -партнер по программированию для написания лучшего PHP. Pahout означает PHP Mahout?
PHP был добавлен различные функции в долгой истории. Однако из -за длины своей истории многие старые синтаксисы разбросаны по Интернету. Если у них узнал PHPER, PHPER не может знать превосходный синтаксис и функции, существующие в последней версии PHP. Это очень печальная вещь.
Итак, я подумал о том, чтобы сделать такого же партнера по программированию, как у парного программирования, который рассказывает вам хороший путь. Это поможет вам написать с вами лучший PHP.
Однако, пожалуйста, не пытайтесь исправить все существующие коды на основе намеков на Pahout в первую очередь. Pahout - партнер по программированию. При сочетании программирования вы не проверяете все существующие коды, не так ли? Моя рекомендация состоит в том, чтобы проверить только недавно созданные или измененные файлы. Например, это хорошая идея, чтобы установить крюк перед набором следующим образом:
#! /bin/sh
git diff --name-only | grep .php | xargs vendor/bin/pahout
if [ " $? " -ne 0] ; then
exit 1
fi Pahout требует следующей среды:
Вы можете установить с композитором.
$ composer require --dev wata727/pahout
$ vendor/bin/pahout -V
Используя изображение Docker, вы можете легко попробовать Pahout, не влияя на местную среду.
$ docker run --rm -t -v $(pwd):/workdir wata727/pahout
Вы используете PHP 7.1.8 в своем проекте. Что вы думаете о следующем коде?
<?php
// Do something...
$ response = get_awesome_response ();
$ error = isset ( $ response [ ' error ' ]) ? $ response [ ' error ' ] : null ;
// Do something...Возможно, это знакомый код. Однако, если вы знаете оператора Null Coalescive, вы напишите что -то вроде этого:
<?php
// Do something...
$ response = get_awesome_response ();
$ error = $ response [ ' error ' ] ?? null ; # Great!
// Do something...Pahout поддержит такое переписывание. Попробуйте запустить приведенный выше пример.
$ pahout --php-version 7.1.8 test.php
test.php:8
NullCoalescingOperator: Use the null coalecing operator instead of the ternary operator. [https://github.com/wata727/pahout/blob/master/docs/NullCoalescingOperator.md]
1 files checked, 1 hints detected.
Pahout сообщает вам, где можно использовать нулевый коалесцирующий оператор! Список подсказок, предоставленных Pahout, см. В этой документации.
Если вы хотите проанализировать несколько файлов, вы можете указать более одного.
$ pahout --php-version 7.1.8 test.php test2.php ...
Если вы указываете имя каталога, все файлы .php в этом каталоге будут покрыты.
$ pahout --php-version 7.1.8 src
Вы можете изменить конфигурацию из командной строки.
$ pahout --help
Description:
A pair programming partner for writing better PHP
Usage:
check [options] [--] [<files>...]
Arguments:
files List of file names or directory names to be analyzed
Options:
--php-version[=PHP-VERSION] Target PHP version [default: runtime version]
--ignore-tools[=IGNORE-TOOLS] Ignore tool types [default: Nothing to ignore] (multiple values allowed)
--ignore-paths[=IGNORE-PATHS] Ignore files and directories [default: Nothing to ignore] (multiple values allowed)
--extensions[=EXTENSIONS] File extensions to be analyzed [default: php] (multiple values allowed)
--vendor[=VENDOR] Check vendor directory [default: false]
-f, --format[=FORMAT] Output format [default: "pretty", possibles: "pretty", "json"]
-c, --config[=CONFIG] Config file path [default: ".pahout.yaml"]
--only-tools[=ONLY-TOOLS] Check only the given tool types (multiple values allowed)
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Вы также можете изменить конфигурацию, подготовив файл конфигурации с именем .pahout.yaml .
php_version : 7.0.0
ignore_tools :
- ShortArraySyntax
ignore_paths :
- tests
- bin
extensions :
- php
- module
- inc
vendor : trueУкажите PHP -версию вашего проекта. По умолчанию - версия времени выполнения. Pahout использует эту версию для выбора инструментов.
В Pahout то, что генерирует подсказки, называется «инструмент». Вы можете указать имя инструмента, которое вы хотите игнорировать. Пожалуйста, посмотрите на документацию для списка названий инструментов.
Вопреки ignore_tools , укажите инструменты для проверки.
Вы можете указать файл или каталог, который хотите игнорировать. Если указано имя каталога, все файлы в этом каталоге игнорируются.
Расширения файлов будут проанализированы. По умолчанию только php .
Вы можете установить, игнорировать ли каталог продавцов.
Примечание. Справочник поставщика игнорируется по умолчанию. Как правило, вам не нужно проверять каталог поставщиков.
Укажите выходной формат. В настоящее время поддерживаются только pretty и json .
Укажите имя файла конфигурации. Это полезно, когда вы хотите использовать имя файла, кроме .pahout.yaml в файле конфигурации.
Используя аннотации, вы можете игнорировать подсказки для конкретных линий. Укажите имя инструмента, которое вы хотите игнорировать с помощью @rebel .
<?php
/** @rebel NullCoalescingOperator */
$ error = isset ( $ response [ ' error ' ]) ? $ response [ ' error ' ] : null ;Следующие комментарии будут работать так же.
<?php
/**
* @rebel NullCoalescingOperator
*/
$ error = isset ( $ response [ ' error ' ]) ? $ response [ ' error ' ] : null ;
$ error = isset ( $ response [ ' error ' ]) ? $ response [ ' error ' ] : null ; # @rebel NullCoalescingOperator Казума Ватанабе