user1513171
user1513171

Reputation: 1994

PHP: Using a Phing Task in Composer Package

I've created a Composer package, and in it I have defined a custom Phing Task that extends Task. In my project that includes the Composer package, I want to be able to use this Phing task in my build file but I keep getting this error:

   [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.

Here's my build file trying to use the "generateview" task:

<taskdef name="generateview" classname="generateViews.GenerateView" />

 <target name="viewgenerator" >
    <echo msg="Generating View: ${absname}" />
    <generateview name="${absname}"/>
</target>

Here's my actual task:

namespace tasks\generateViews;

class GenerateView extends \Task {

And here's my autoload section of composer.json. This is the part I'm really not sure about.

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

In case it helps, my project structure is as follows:

MyProject
   src
      tasks
         generateViews
      otherStuff
         view
   tests

Upvotes: 2

Views: 496

Answers (1)

user1513171
user1513171

Reputation: 1994

Found the answer.

I needed to add this to my build file:

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

And I added GenerateView.php file to autoload classmap like:

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

Upvotes: 2

Related Questions