【问题标题】:Running Composer-installed tasks in Phing在 Phing 中运行 Composer 安装的任务
【发布时间】:2019-05-03 05:25:09
【问题描述】:

我有一个 PHP 应用程序正在使用 Composer 安装它的依赖项。 Composer 将二进制文件放在 bin 文件夹中。我想使用 Phing 对我的代码执行一些测试,但 Phing 没有找到安装在 {basedir}/bin/ 中的应用程序。

例如,这是有效的:

 <exec command="./bin/phpcs --standard=zend ." passthru="true"></exec>

但这失败了:

 <phpcodesniffer standard="ZEND" />

Phing 错误信息基本上是说 phpcs 没有安装。当使用 phpcodesniffer 的内置任务(其输出比上面的 exec 示例更好)时,如何告诉 Phing 从 bin 目录运行二进制文件?

【问题讨论】:

    标签: php composer-php phing


    【解决方案1】:

    我回答了我自己的问题。我只需要在上面的 phpcodesniffer 行上方添加这个:

    <exec command="export PATH=./bin:$PATH" />
    

    【讨论】:

      【解决方案2】:

      如果有人想知道,还可以将 Composer 的自动加载添加到 Phing 的自动加载例程中。类似于下一行

      <autoloader autoloaderpath="${project.basedir}/vendor/autoload.php"/>
      

      这将允许 Phing “看到”所有由 composer 提供的依赖项。

      【讨论】:

        【解决方案3】:

        您还可以使用includepath 任务在(默认情况下)添加类似于export PATH=./bin:$PATH 的include_path 路径

        <includepath classpath="./bin" />
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-03-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多