无法通过Composer安装phpDocumentor

时间:2014-04-24 08:44:38

标签: php composer-php documentation-generation package-managers

在composer.json中,我有

{
    "require":
    {
        "phpdocumentor/phpdocumentor": "*"
    }
}

它是什么,因为我试图用./composer.phar install命令将phpDocumentor安装到一个隔离的文件夹中。但我得到的是

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - phpdocumentor/phpdocumentor v2.0.0 requires phpdocumentor/template-abstract ~1.2 -> satisfiable by phpdocumentor/template-abstract[1.2, 1.2.1].
    - phpdocumentor/phpdocumentor v2.0.1 requires phpdocumentor/template-abstract ~1.2 -> satisfiable by phpdocumentor/template-abstract[1.2, 1.2.1].
    - phpdocumentor/phpdocumentor v2.1.0 requires phpdocumentor/template-abstract ~1.2 -> satisfiable by phpdocumentor/template-abstract[1.2, 1.2.1].
    - phpdocumentor/phpdocumentor v2.2.0 requires phpdocumentor/template-abstract ~1.2 -> satisfiable by phpdocumentor/template-abstract[1.2, 1.2.1].
    - phpdocumentor/phpdocumentor v2.3.2 requires phpdocumentor/template-abstract ~1.2 -> satisfiable by phpdocumentor/template-abstract[1.2, 1.2.1].
    - phpdocumentor/phpdocumentor v2.4.0 requires phpdocumentor/template-abstract ~1.2 -> satisfiable by phpdocumentor/template-abstract[1.2, 1.2.1].
    - phpdocumentor/phpdocumentor v2.3.1 requires dompdf/dompdf dev-master@dev -> no matching package found.
    - phpdocumentor/phpdocumentor v2.3.0 requires dompdf/dompdf dev-master@dev -> no matching package found.
    - phpdocumentor/template-abstract 1.2.1 requires ext-xsl * -> the requested PHP extension xsl is missing from your system.
    - phpdocumentor/template-abstract 1.2 requires ext-xsl * -> the requested PHP extension xsl is missing from your system.
    - Installation request for phpdocumentor/phpdocumentor * -> satisfiable by phpdocumentor/phpdocumentor[v2.0.0, v2.0.1, v2.1.0, v2.2.0, v2.3.0, v2.3.1, v2.3.2, v2.4.0].

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

5 个答案:

答案 0 :(得分:9)

尝试使用sudo apt-get install php5-xsl

答案 1 :(得分:8)

错误消息表明您在PHP设置中缺少XSL扩展。有关安装该扩展程序的详细信息,请参阅http://www.php.net/manual/en/xsl.installation.php

请注意,默认模板不需要XSL扩展名;您也可以选择使用PHAR可执行文件或可下载的存档。这些可以从https://github.com/phpDocumentor/phpDocumentor2/releases/latest下载。这两个不检查XSL扩展,因此可以安全使用。

答案 2 :(得分:1)

您可以轻松启用XSL扩展(因为它默认包含在php 5中)。

找到php.ini文件并启用(取消注释)

  

延长= php_xsl.dll

(在WAMP上;点击wamp图标 - &gt; PHP - &gt; PHP Extensions - &gt; php_xsl)

请不要忘记启用PHP CLI see here)使用的php.ini文件中的扩展名,因为这是作曲家在命令运行时使用的线。

供参考(来自上面的链接):

  

/etc/php5/cli/php.ini用于您找到的CLI PHP程序   在终端上运行php。

     

/etc/php5/cgi/php.ini适用于php-cgi系统,它不是   专门用于此设置。

     

/etc/php5/apache2/php.ini用于Apache使用的PHP插件。这个   是您需要编辑的应用程序,以便为Apache应用更改   设置。

可能很方便重启服务器。

PS:您可以使用以下方式验证扩展程序的可用性:

  

作曲家秀-p

祝你好运。

答案 3 :(得分:0)

只是想更新当前(PHP 7.4)在 php.ini 文件中取消注释的行是:

<块引用>

;extension=xsl

答案 4 :(得分:0)

您不应该编写安装 PhpDocumentor!

为什么?在 Official PhpDocumentator website 的主页上,您可以找到:

<块引用>

但是等等?作曲家呢?

啊,你发现了我们的秘密。有一个 phpDocumentor 作曲家 可用于安装 phpDocumentor 的软件包。

然而:phpDocumentor 是一个复杂的应用程序,它的库是 用于无数其他库和应用程序(我们的库中有 2 个 下载量均超过 1.5 亿);这意味着 我们的依赖项之一与您的依赖项之间发生冲突的可能性是 高的。当我说高时,它真的很高。

所以,因为以上:我们不认可也不积极支持 使用 Composer 安装 phpDocumentor。

基于此,也许最好创建一个脚本来安装它。这里只是一个例子:

wget https://phpdoc.org/phpDocumentor.phar
chmod 0755 phpDocumentor.phar
sudo mv phpDocumentor.phar /usr/local/bin/phpdoc
sudo apt install -y graphviz