Проблемы с установкой Pear и PHP_CodeSniffer: невозможно использовать phpcs из командной строки

Моя установка: Mac OSX El Capitan 10.11.6, PHP 7.0.24-1+ubuntu14.04.1, версия PEAR: 1.10.5, я работаю над локальной сборкой wordpress с использованием vagrant/virtualbox (vvv).

Я новичок в pear и php_codesniffer и не могу заставить команды phpcs работать. Я пытался установить PHP_CodeSniffer с помощью груши:

Моя первая проблема возникает при попытке установить PEAR. Я следую инструкциям: $ curl -O https://pear.php.net/go-pear.phar и $ php -d detect_unicode=0 go-pear.phar. Затем, когда я пытаюсь настроить базу установки на /usr/local/pear и каталог двоичных файлов на /usr/local/bin, я получаю следующую ошибку: Unable to create PHP code directory ($php_dir) /usr/local/pear/share/pear. Run this script as root or pick another location.

Я нашел других с такой же ошибкой и увидел это решение: sudo php /usr/lib/php/install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin Но это вызвало ошибку: Could not open input file: /usr/lib/php/install-pear-nozlib.phar

Затем я попытался настроить грушу, используя: /home/vagrant/pear. Мне удалось установить PHP_codesniffer, когда я использую pear list, я вижу php_codesniffer:

vagrant@vvv:~$ pear list Установленные пакеты, канал pear.php.net: Версия пакета Состояние Archive_Tar 1.4.3 стабильная Console_Getopt 1.4.1 стабильная PHP_CodeSniffer 3.1.1 стабильная Structures_Graph 1.1.1 стабильная XML_Util 1.4 .2 стабильный

когда я запускаю phpcs, я получаю следующее сообщение: Программа «phpcs» в настоящее время не установлена. Чтобы запустить «phpcs», попросите вашего администратора установить пакет «php-codesniffer».

Я нашел этот сообщение, которое побудило меня: sudo pear config-set php_bin /usr/bin/php, затем удалите и переустановите codeniffer. Вроде все работает правильно, но когда пробую какой phpcs, ничего нет.

Я устанавливал и удалял грушу несколько раз. При попытке удалить пишет, что груша не установлена, но когда делаю which pear, получаю usr/bin/pear. Это немного беспорядок, любой совет будет принят с благодарностью.


person carlarenee    schedule 19.10.2017    source источник
comment
PEAR давно устарел. Вы должны использовать композитор в настоящее время: composer require squizlabs/php_codesniffer --dev.   -  person Tomas Votruba    schedule 19.10.2017
comment
@Tomáš Votruba, я последовал твоему совету и использовал композитор. Теперь я могу запустить команду ./vendor/bin/phpcs. Спасибо за совет.   -  person carlarenee    schedule 19.10.2017
comment
Прекрасная работа! Это здорово, я превращу это в ответ, чтобы его было легче найти.   -  person Tomas Votruba    schedule 19.10.2017


Ответы (1)


PEAR устарел в 2017 году.

В настоящее время вместо этого вам следует использовать composer:

composer require squizlabs/php_codesniffer --dev

Затем запустите как:

vendor/bin/phpcs ...

Чтобы получить более подробную информацию о времени ожидания PEAR, см. RFC об удалении PEAR для PHP 8< /а>.

person Tomas Votruba    schedule 19.10.2017