2013-08-01 64 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> 

少的選項,而不是真的很漂亮,但工程。