PHP:在Composer包中使用Phing任务


PHP: Using a Phing Task in Composer Package

我创建了一个Composer包,并在其中定义了一个扩展Task的自定义Phing Task。在我的项目中,包括Composer包,我想能够在我的构建文件中使用这个Phing任务,但我一直得到这个错误:

   [taskdef] Error importing generateViews'GenerateView.php
[PHP Error] include_once(generateViews'GenerateView.php): failed to open stream: No such file or directory [line 1058 of C:'Users'Me'Downloads'phing-2.4.13'classes'phing'Phing.php]
[PHP Error] include_once(): Failed opening 'generateViews'GenerateView.php' for inclusion (include_path='C:'Users'Me'Downloads'phing-2.4.13'bin/../classes;.;C:'php'pear') [line 1058 of C:'Users'Me'Downloads'phing-2.4.13'classes'phing'Phing.php]
BUILD FAILED
Error reading project file [wrapped: Error importing generateViews'GenerateView.php]
Total time: 0.1742 seconds

Build finished at 6/28/2015 8:35 PM with exit code 0.

以下是我尝试使用"generateview"任务的构建文件:

<taskdef name="generateview" classname="generateViews.GenerateView" />
 <target name="viewgenerator" >
    <echo msg="Generating View: ${absname}" />
    <generateview name="${absname}"/>
</target>

这是我的实际任务:

namespace tasks'generateViews;
class GenerateView extends 'Task {

这是我的composer.json的自动加载部分。这是我真的不确定的部分。

"autoload": {
  "psr-0": {
    "MyProject": "src/",
    "tasks": "src/tasks",
    "generateViews": "src/tasks/generateViews"
  }
}

如果有帮助,我的项目结构如下:

MyProject
   src
      tasks
         generateViews
      otherStuff
         view
   tests

找到了答案。

我需要将此添加到我的构建文件中:

<php expression="include('vendor/autoload.php')"/>

我添加了GenerateView.php文件来自动加载类映射,比如:

   "classmap": ["src/tasks/generateViews/GenerateView.php"],