4

phpcs --versionと入力すると、バージョン番号を取得する代わりに、次のようになります。

/Applications/drupal/php/bin/phpcs: line 2: ?php: No such file or directory
/Applications/drupal/php/bin/phpcs: line 3: /Applications: is a directory
/Applications/drupal/php/bin/phpcs: line 4: Applications: command not found
/Applications/drupal/php/bin/phpcs: line 5: Applications: command not found
/Applications/drupal/php/bin/phpcs: line 6: Applications: command not found
/Applications/drupal/php/bin/phpcs: line 7: Applications: command not found
/Applications/drupal/php/bin/phpcs: line 8: Applications: command not found
/Applications/drupal/php/bin/phpcs: line 9: Applications: command not found
/Applications/drupal/php/bin/phpcs: line 10: Applications: command not found
/Applications/drupal/php/bin/phpcs: line 11: syntax error near unexpected token `newline'
/Applications/drupal/php/bin/phpcs: line 11: ` * @author    Greg Sherwood <gsherwood@squiz.net>'

PHPを正しく読み取っていないようです。何を誤って構成しましたか?

私がしたのは、sudo pearinstallPHP_CodeSnifferだけでした。もう一度実行すると、次のようになります。

pear / PHP_CodeSnifferはすでにインストールされており、リリースされたバージョン1.3.5と同じです。

4

2 に答える 2

22

PEARがPHP_CodeSnifferのインストールを実行すると、メインのphpcsスクリプトの最初の行が変更され、その#!行がシステム上のPHP実行可能ファイルを指すようになります。

したがって、インストール前の行は次のようになります。#!@php_bin@インストール後は、次のようになります(PHPがインストールされている場所によって異なります)。#!/usr/bin/php

PEARには、PHP実行可能ファイルがインストールされている場所を示す構成設定があります。この値は、を実行pear config-showしての値を探すことで確認できますPHP CLI/CGI binary (php_bin)。この値が実際にシステム上のPHPの場所であることを確認する必要があります。そうしないと、スクリプトのすべてのインストール(PHPUnitなど)で同様の問題が発生します。

この値を確認する最良の方法はwhich php、PEAR構成変数に対してその値を実行して設定することです。次に、PHP_CodeSnifferを再インストールして、置換が再度行われるようにします。

したがって、私のシステムでは、次のようにします。

$ which php
/usr/bin/php
$ sudo pear config-set php_bin /usr/bin/php
config-set succeeded
$ sudo pear uninstall php_codesniffer
uninstall ok: channel://pear.php.net/PHP_CodeSniffer-1.3.5
$ sudo pear install php_codesniffer
downloading PHP_CodeSniffer-1.3.5.tgz ...
Starting to download PHP_CodeSniffer-1.3.5.tgz (345,113 bytes)
......................................................................done: 345,113 bytes
install ok: channel://pear.php.net/PHP_CodeSniffer-1.3.5

すべてがうまくいけば#!、新しいphpcsファイルに正しい行が表示されるはずです。

$ which phpcs
/usr/local/bin/phpcs
$ head -n 1 /usr/local/bin/phpcs
#!/usr/bin/php

それが正しければ、phpcsコマンドを問題なく実行できます。

于 2012-08-02T23:13:26.787 に答える
7

私はしばらくこれに苦労しましたが、最終的にそれを理解しました-直接呼び出すPHPコマンドが実際の実行可能ファイルのシェルスクリプトラッパーである場合、 /usr/を介してPHPを呼び出すためにphpcsスクリプトの最初の行を編集する必要がありますbin / env

#!/usr/bin/env /Applications/acquia-drupal/php5_3/bin/php

あるいは単に

#!/usr/bin/env php

検索者のための完全なコンテキスト-修正前:

~$ head -n 1 pear/bin/phpcs 
#!/Applications/acquia-drupal/php5_3/bin/php
~$ phpcs --version
/Users/mryan/pear/bin/phpcs: line 2: ?php: No such file or directory
/Users/mryan/pear/bin/phpcs: line 3: /Applications: is a directory
/Users/mryan/pear/bin/phpcs: line 4: Desktop: command not found
/Users/mryan/pear/bin/phpcs: line 5: Desktop: command not found
/Users/mryan/pear/bin/phpcs: line 6: Desktop: command not found
/Users/mryan/pear/bin/phpcs: line 7: Desktop: command not found
/Users/mryan/pear/bin/phpcs: line 8: Desktop: command not found
/Users/mryan/pear/bin/phpcs: line 9: Desktop: command not found
/Users/mryan/pear/bin/phpcs: line 10: Desktop: command not found
/Users/mryan/pear/bin/phpcs: line 11: syntax error near unexpected token `newline'
/Users/mryan/pear/bin/phpcs: line 11: ` * @author    Greg Sherwood <gsherwood@squiz.net>'
~$ /Applications/acquia-drupal/php5_3/bin/php pear/bin/phpcs --version
PHP_CodeSniffer version 1.4.5 (stable) by Squiz Pty Ltd. (http://www.squiz.com.au)

修正後:

~$ head -n 1 pear/bin/phpcs
#!/usr/bin/env php
~$ phpcs --version
PHP_CodeSniffer version 1.4.5 (stable) by Squiz Pty Ltd. (http://www.squiz.com.au)

これで、PhpStormでCodeSnifferを構成できます。

于 2013-04-05T18:57:14.387 に答える