Как правильно использовать PHP в файле сборки Phing?

Я пишу PHP прямо внутри файла Phing build.xml, используя adhoc-task.

Следующее работает, но вызывает ошибки консоли:

<adhoc-task name="foo"><![CDATA[

 define('WP_INSTALLING', true);

 require_once '${build.dir.wp}/wp-load.php';
 require_once '${build.dir.wp}/wp-admin/includes/upgrade.php';
 require_once '${build.dir.wp}/wp-includes/wp-db.php';

 $result = wp_install( 'title', 'admin', '[email protected]');

]]></adhoc-task>

Ошибка: определенный вами специальный класс должен быть экземпляром phing.Task BUILD FAILED. Определенный вами специальный класс должен быть экземпляром phing.Task

Но все равно работает ...

Если я заверну PHP в класс, он вообще не сработает:

<adhoc-task name="foo"><![CDATA[

   class FooTest extends Task {
   //php code ....
   }
]]></adhoc-task>

Ошибка: необходимо определить хотя бы один класс для AdhocTaskdefTask.

Как правильно включить PHP в файл сборки (без доступа к папке php / phing / tasks)?


person Wyck    schedule 25.08.2012    source источник


Ответы (1)


От 1_:

<?xml version="1.0" encoding="utf-8"?>
<project name="test" default="main">

  <target name="main">
    <bar/>
  </target>

  <adhoc-task name="bar"><![CDATA[
      class BarTask extends Task {
          function main() {
              print("BarTask: success!\n");
          }
      }
  ]]></adhoc-task>

</project>
person cweiske    schedule 17.09.2012
comment
Спасибо. Я не заметил <bar/> в документах, ошибок больше нет, но теперь проблема в том, что он вообще не работает, например gist.github.com/3766989, мне не хватает чего-то простого? - person Wyck; 22.09.2012
comment
используйте параметры -verbose и -debug в интерфейсе командной строки, чтобы увидеть, где это не удается. - person cweiske; 22.09.2012
comment
Спасибо, проблема связана с несколькими глобальными переменными во включаемых файлах, как показано здесь: stackoverflow.com/questions/9136073/. Есть ли способ просто запустить необработанный php вне функции с помощью <adhoc-task>? - person Wyck; 23.09.2012