Can't install phpDocumentor via Composer

2019-01-27 22:45发布

问题:

In composer.json I've got

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

It's what is there because I'm trying to install phpDocumentor into an isolated folder with ./composer.phar install command. But what I'm getting is

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.

回答1:

The error message indicates that you are missing the XSL extension in your PHP setup. You can see http://www.php.net/manual/en/xsl.installation.php for more information on installing that extension.

Please note that the XSL extension is not necessary for the default template; you can also choose to use the PHAR executable or the downloadable archive. These can be downloaded from https://github.com/phpDocumentor/phpDocumentor2/releases/latest. These two do not check for the XSL extension and can thus be safely used.



回答2:

Try sudo apt-get install php5-xsl



回答3:

You can easily enable the XSL extension (since its included by default in php 5).

Locate the php.ini file and enable (uncomment)

extension=php_xsl.dll

(on WAMP; click on the wamp icon -> PHP -> PHP Extensions -> php_xsl)

Please DON'T FORGET to also enable the extension in the php.ini file used by PHP CLI (see here) as this is the one composer uses when run on command line.

For Reference (from above link):

/etc/php5/cli/php.ini is for the CLI PHP program, which you found by running php on the terminal.

/etc/php5/cgi/php.ini is for the php-cgi system which isn't specifically used in this setup.

/etc/php5/apache2/php.ini is for the PHP plugin used by Apache. This is the one you need to edit for changes to be applied for your Apache setup.

Might be handy to restart the server afterwords.

PS: You may verify the extension's availability using:

composer show -p

Good Luck.