Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Composer php 如何获取composer包中文件的路径_Composer Php - Fatal编程技术网

Composer php 如何获取composer包中文件的路径

Composer php 如何获取composer包中文件的路径,composer-php,Composer Php,我想在composer包中包含一个默认文件。我想通过Robo将包中的文件复制到project。我想我可以使用Composer对象,但是运气不好,因为$Composer->getConfig()为空 <?php namespace MyLibrary\MyClass; use Robo\Tasks as Tasks; use Composer\Composer as Composer; /** * Base class for Xeno robo commands. */ clas

我想在composer包中包含一个默认文件。我想通过Robo将包中的文件复制到project。我想我可以使用Composer对象,但是运气不好,因为
$Composer->getConfig()
为空

<?php

namespace MyLibrary\MyClass;

use Robo\Tasks as Tasks;
use Composer\Composer as Composer;

/**
 * Base class for Xeno robo commands.
 */
class MyClass extends Tasks {

  public function pathLibrary() {
    $composer = new Composer();
    echo $composer->getConfig()->get('mylibrary');
  }

  public function setup() {
   // Copy file over.
   $this->_exec('cp ' . $this->pathLibrary() . '/src/Starter/myfile.yml ./');
  }

}

如果您想从目录复制一个文件,但不知道该文件的绝对路径(例如,因为它是作为某个供应商文件的库安装的),您可以查看神奇变量
\uuuuu DIR\uu
。它包含当前脚本的路径,因此如果脚本位于
/what/ever/directory/script.php
,则解析为
/what/ever/directory


因此,如果您知道脚本和要复制的文件之间的相对路径,您可以利用它:在您的情况下,要复制的文件可能位于相对路径
src/Starter/myfile.yml
,运行操作的文件位于
src/MyLibrary/MyClass.php
(根据类的名称空间). 要将其复制到某个地方,可以使用路径
$path=\uuuuuu DIR\uuuuu.'//Starter/myfile.yml

如果您想从目录复制一个文件,但不知道该文件的绝对路径(例如,因为它是作为库安装到某个供应商文件中的),您可以查看神奇变量
\uuuuu DIR\uu
。它包含当前脚本的路径,因此如果脚本位于
/what/ever/directory/script.php
,则解析为
/what/ever/directory


因此,如果您知道脚本和要复制的文件之间的相对路径,您可以利用它:在您的情况下,要复制的文件可能位于相对路径
src/Starter/myfile.yml
,运行操作的文件位于
src/MyLibrary/MyClass.php
(根据类的名称空间). 要将其复制到某个地方,可以使用路径
$path=\uuuuuu DIR\uuuuu.'//Starter/myfile.yml

“编写器库路径”是什么意思?您可能想写一个吗?假设我有一个composer包,其中包含以下路径中的文件:src/Starter/myfile.yml。我想把那个文件复制到我的项目中。为了复制它,我需要完整的路径。我想知道如何通过我的机器人课复制它。我不想使用Composer安装后脚本执行此操作。我刚刚用setup函数更新了示例代码,该函数显示了我要如何复制它。请查看
\uuuuu DIR\uuuu
,它包含放置任务的当前目录。你能从那里建立复制的文件路径吗?@NicoHaase-Dah为什么我没有想到这一点。我认为这应该行得通。你能把答案贴出来让我给你评分吗?你说的“作曲家库路径”是什么意思?您可能想写一个吗?假设我有一个composer包,其中包含以下路径中的文件:src/Starter/myfile.yml。我想把那个文件复制到我的项目中。为了复制它,我需要完整的路径。我想知道如何通过我的机器人课复制它。我不想使用Composer安装后脚本执行此操作。我刚刚用setup函数更新了示例代码,该函数显示了我要如何复制它。请查看
\uuuuu DIR\uuuu
,它包含放置任务的当前目录。你能从那里建立复制的文件路径吗?@NicoHaase-Dah为什么我没有想到这一点。我认为这应该行得通。你能把答案贴出来让我给你评分吗?