文档章节

phpDocumentor2的正确安装和使用方法

inuxor
 inuxor
发布于 2016/02/03 12:52
字数 912
阅读 39
收藏 0

缘起

本来我对phpdocumentor2(以下简称doc2)是拒绝的,想用doxygen来着。然而不知为何doxygen无法安装,遂转而去用doc2。 doc2生成的文档还是相当漂亮的,然而安装是场噩梦。下面我们追溯一下噩梦情节。

通过pear安装

一切正常的安装流程

github上的readme文件给出了3种安装方式,我们选择最古典的pear方式 首先得安装pear,可以通过go-pear获得。怎么获得兹不赘述,我用的开发套件,里面有这个东西。总之认为pear已经安装好了。 于是执行readme里面的代码

pear channel-discover pear.phpdoc.org

然而会报错,说是没这个东西,path的问题,找不到 于是切换到安装目录再执行,还是没有,于是只好这样

.\pear channel-discover pear.phpdoc.org

OK,频道已注册 看一眼都有哪些版本

.\pear remote-list -c phpdoc

目前只有一个版本,2.8.5。于是安装

.\pear install phpdoc/phpDocumentor 

下载正常,网速较快的话秒下,网速慢的话,可以去泡杯咖啡(并不是!)

奇葩的安装方式,本文重点

实际上下载完了我这里出现了错误:无法解包phpDocumentor-2.8.5.tgz 用7z解包,正常,解压出一个phpDocumentor-2.8.5.tar和一个package.xml。压缩包没有损坏。见了鬼。 于是百度,毫无意外,百度很和谐,边都不沾。 于是google——前提是改了hosts文件。 google给出了一个链接,不意外,是stackoverflow上面的讨论。上面采纳的答案是这样的

pear install --nocompress phpdoc/phpDocumentor

这回可以去泡咖啡了? 并不能.下载的文件是个phpDocumentor-2.8.5.tar包,依旧无法解包. 于是往下看,看到最后,别人这样说:

My solution for phpDocumentor 2.8.5 was 1.Download the tarball archive from https://github.com/phpDocumentor/phpDocumentor2/releases 2.Uncompress the archive phpDocumentor-2.8.5.tgz manulay (e.g. with 7zip) You will get the phpDocumentor-2.8.5.tar, uncompress it too and you will get the folder phpDocumentor-2.8.5 and the file package.xml 3.Edit the archive package.xml and change the text template:init to template_init (line 2036) in fact it is a path (Info source: https://github.com/phpDocumentor/phpDocumentor2/issues/1608) 4.Compress the folder phpDocumentor-2.8.5 and the file package.xml (e.g. phpdoc285.tar) 5.Install the archive phpdoc285.tar pear install --nocompress phpdoc285.tar

觉得靠谱,于是照做.于是成功了 归纳下来是这样

  1. 把刚才那个phpDocumentor-2.8.5.tar解包得到目录phpDocumentor-2.8.5和文件package.xml
  2. 修改里面的package.xml,将2036行的template:init改为template_init
  3. 把目录phpDocumentor-2.8.5和文件package.xml重新打包为phpdoc285.tar
  4. 执行命令
pear install --nocompress phpdoc285.tar

终于可以去泡咖啡了! 并不能:joy:

正确运行

readme分明写着

phpdoc run -d <SOURCE_DIRECTORY> -t <TARGET_DIRECTORY>

自然是不行的,依旧要找到安装目录并且.\

.\phpdoc run -d <SOURCE_DIRECTORY> -t <TARGET_DIRECTORY>

然而抛出如下错误:

Could not open input file: \phpdoc

WTF! google来到毫不陌生的stackoverflow,去粗取精后,得到如下solution 编辑器打开phpdoc.bat

@echo off
if "%PHPBIN%" == "" set PHPBIN=php.exe
if not exist "%PHPBIN%" if "%PHP_PEAR_PHP_BIN%" neq "" goto USE_PEAR_PATH
GOTO RUN
:USE_PEAR_PATH
set PHPBIN=%PHP_PEAR_PHP_BIN%
:RUN
"%PHPBIN%" "%PHP_PEAR_BIN_DIR%\phpdoc" %*

把最后一行简单粗暴的改为

"%PHPBIN%" "phpdoc" %*

问题终获解决,现在可以抽支烟压压惊了..... 并不能!!! 不出意外的话,当你乐滋滋的盯着美观大方的powershell,犹豫着是先抽烟还是先喝咖啡的时候,如你所料,又TM出错了.

Execute transformation using writer "Graph" Unable to find the dot command of the GraphViz package. Is GraphViz correctly installed and present in your path?

不过不要紧,这东西是画图表用的,用得着就装上,用不着就算逑.本文到此为止.

© 著作权归作者所有

共有 人打赏支持
inuxor
粉丝 29
博文 25
码字总数 14402
作品 0
技术主管
码云推出免费 PHPDoc 在线文档生成和托管服务

继月初我们推出的 JavaDoc 在线生成和托管服务,今天我们为了又给广大 PHPer 们上线了 PHP 项目的文档自动生成和托管服务。 使用方法: 1. 首先确保项目的编程语言选项是 PHP 如果不是 PHP,...

红薯
06/28
0
0
如何制作一份接口文档(PHP版本)

mac osx brew 安装的php默认情况是没有安装pear的,需要手工安装,方法如下: 1.转到php bin目录 安装文档 http://pear.php.net/manual/en/installation.getting.php Pear仓库还是有很多有趣...

swingcoder
2016/06/12
51
0
phpdocumentor2怎么生成chm或是pdf呢?

如题,不是phpdocumentor1是phpdocumentor2

wslk857208
2014/05/04
216
1
如何做好 PHP 项目文档管理?PHPer 开发必备利器!

对于常年写 PHP 的老司机来说,PHPDoc 一定不会陌生,不过从1.3.0开始,更名为 phpDocumentor。它作为一个用 PHP 写的工具,主要作用是从你的源代码的注释中生成文档,因此在给你的程序做注释...

码云Gitee
06/28
0
0
Markdown 格式检查工具--hint

hint 是一个简单的 markdown 静态检查的控制台 工具,可以方便 markdown 开发者轻松集成 travis 自动检测。 一、安装 pip install hint 然后在系统中会得到一个 的命令 cli 工具。 二、使用 ...

小薇
2017/02/09
176
1

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
26
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部