2013-08-01 39 views
0

我为我的项目配置了Jenkins,我想创建phpdoc但它不起作用。 我使用phing,我的服务器是Debian。使用phing生成phpdoc时出错

什么我做:

  • 安装PHPDoc的

    pear install phpdoc/phpDocumentor-beta 
    
  • Phing:

    <target name="phpdoc"> 
        <phpdoc2 destdir="${workspace}/app/docs" template="responsive"> 
         <fileset dir="./src"> 
          <include name="**.*.php" /> 
         </fileset> 
        </phpdoc2> 
    </target> 
    

我得到这个错误:

PHP Fatal error: Call to undefined method phpDocumentor\Parser\Parser::setTitle() in /usr/share/php/phing/tasks/ext/phpdoc/PhpDocumentor2Wrapper.php on line 169 
    PHP Stack trace: 
    PHP 1. {main}() /usr/share/php/phing.php:0 
    PHP 2. Phing::fire() /usr/share/php/phing.php:43 
    PHP 3. Phing::start() /usr/share/php/phing/Phing.php:270 
    PHP 4. Phing->runBuild() /usr/share/php/phing/Phing.php:170 
    PHP 5. Project->executeTargets() /usr/share/php/phing/Phing.php:572 
    PHP 6. Project->executeTarget() /usr/share/php/phing/Project.php:791 
    PHP 7. Target->performTasks() /usr/share/php/phing/Project.php:818 
    PHP 8. Target->main() /usr/share/php/phing/Target.php:321 
    PHP 9. Task->perform() /usr/share/php/phing/Target.php:298 
    PHP 10. PhingCallTask->main() /usr/share/php/phing/Task.php:260 
    PHP 11. PhingTask->main() /usr/share/php/phing/tasks/system/PhingCallTask.php:158 
    PHP 12. PhingTask->processFile() /usr/share/php/phing/tasks/system/PhingTask.php:150 
    PHP 13. Project->executeTarget() /usr/share/php/phing/tasks/system/PhingTask.php:277 
    PHP 14. Target->performTasks() /usr/share/php/phing/Project.php:818 
    PHP 15. Target->main() /usr/share/php/phing/Target.php:321 
    PHP 16. Task->perform() /usr/share/php/phing/Target.php:298 
    PHP 17. PhpDocumentor2Task->main() /usr/share/php/phing/Task.php:260 
    PHP 18. PhpDocumentor2Wrapper->run() /usr/share/php/phing/tasks/ext/phpdoc/PhpDocumentor2Task.php:147 
    PHP 19. PhpDocumentor2Wrapper->parseFiles() /usr/share/php/phing/tasks/ext/phpdoc/PhpDocumentor2Wrapper.php:201 
    Build step 'Invoke Phing targets' marked build as failure 

似乎phpDocumentor类没有找到,但我不明白为什么!我的包含路径是:/ usr/share/php:/ usr/share/pear,phpDocumentor安装在/ usr/share/pear文件夹中。

任何想法?

编辑: 我创建了一个简单的测试文件:

# cat test.php 
    <?php 
    $parser = new \phpDocumentor\Parser\Parser(); 

但我得到这个错误:

# php -f test.php 
    PHP Fatal error: Class 'phpDocumentor\Parser\Parser' not found in /var/www/test.php on line 2 
    PHP Stack trace: 
    PHP 1. {main}() /var/www/test.php:0 

为什么要没有安装phpDocumentor的接缝,而我有:

pear info phpdoc/phpDocumentor 
About pear.phpdoc.org/phpDocumentor-2.0.0 
========================================= 
Release Type   PEAR-style PHP-based Package 
Name     phpDocumentor 
Channel    pear.phpdoc.org 
[...] 
Release Date   2013-08-03 06:08:35 
Release Version  2.0.0 (stable) 
API Version   2.0.0 (stable) 
package.xml version 2.0 
Last Modified   2013-08-06 08:17 
Previous Installed - None - 
Version 

回答

0

下载稳定1.4.4(稳定) - http://pear.php.net/package/PhpDocumentor/

尝试也许设置标题:

<target name="phpdoc"> 
    <phpdoc2 title="Some Title" destdir="${workspace}/app/docs" template="responsive"> 
     <fileset dir="./src"> 
      <include name="**.*.php" /> 
     </fileset> 
    </phpdoc2> 
</target> 
+0

谢谢,但我得到完全相同的错误。我认为这可能是梨自动加载配置问题... – Gilles

0

我的预感是要安装phpDocumentor的1.x中,但使用Phing任务设计2.x版本的phpDocumentor

+0

我已按照http://www.phpdoc.org/安装指南: pear channel-discover pear.phpdoc.org pear install phpdoc/phpDocumentor – Gilles

+0

我试图安装phpDocumentor 1.x但同样的问题,所以我回到phpDocumentor 2.x. – Gilles

+0

我的观点是,它看起来像我正在使用的Phing Task是为phpDocumentor 2.x编写的一个(http://www.phing.info/docs/guide/stable/chapters/appendixes/AppendixC-OptionalTask​​s。 HTML#PhpDocumentor2Task)。但是如果你实际上安装了phpDocumentor 1.x,你需要使用为它编写的Phing任务(http://www.phing.info/docs/guide/stable/chapters/downloads/AppendixC-OptionalTask​​s.html#PhpDocumentorTask )。 – ashnazg

1

我终于取得使用exec命令是:

<target name="phpdoc" description="API Documentation"> 
    <exec command="phpdoc 
     -d ${ws}/src 
     -t ${builddir}/reports/doc/ 
     --template responsive 
    " /> 
</target> 

少的选项,而不是真的很漂亮,但工程。