php:如何使用 composer 安装一个包
Posted
技术标签:
【中文标题】php:如何使用 composer 安装一个包【英文标题】:php: how to install a package using composer 【发布时间】:2018-12-05 13:53:25 【问题描述】:我对作曲家完全陌生 ;-)
我尝试使用 composer 在我的本地主机 (ubuntu 16.04) 上安装 mPDF 7.1。
1.) 我安装了 composer 1.6.5。
2.) 下载 mPDF 7.1 (https://github.com/mpdf/mpdf/releases) 并将文件夹解压缩到硬盘。
3.) 在 mpdf-7.1.0 文件夹中打开终端并输入$ composer require mpdf/mpdf
以启动进程
--> 抛出错误信息:
Problem 1
- The requested package mpdf/mpdf No version set (parsed as 1.0.0) is satisfiable by mpdf/mpdf[No version set (parsed as 1.0.0)] but these conflict with your requirements or minimum-stability.
所以我不知道问题出在哪里,也找不到任何帮助搜索网络。你能帮帮我吗?
安德烈亚斯
编辑:我也试过了:
$ composer require mpdf/mpdf:7.1.0
和
$ composer require mpdf/mpdf "^7.1.0"
抛出同样的错误信息...
【问题讨论】:
How to install a specific version of package using Composer?的可能重复 不是那个的副本。这更多是关于错误运行 composer install 导致的错误(在错误的文件夹中),并且与特定版本没有太大关系(尽管有错误消息)。 确保作曲家已全局安装。如果有任何问题,请尝试sudo composer require vendor/pacakge
。
【参考方案1】:
-
确保已全局安装 composer。效果很好。
创建一个空目录,您将在其中使用任何包,例如 mPDF
在新目录中运行
composer require mpdf/mpdf
上面的命令不起作用使用sudo composer require mpdf/mpdf
如果你想指定你的包的任何版本
然后指定composer require vendor/package:version
例如:composer require mpdf/mpdf:7.1.0
Composer 现在将安装 mPDF 并在供应商目录中创建 autoload.php 用于自动加载文件
mPDF 安装完成。 现在在同一目录中创建一个名为 mpdf.php
的 php 文件。
在该 PHP 文件中需要 vendor/autoload.php
。
目录结构应该是您安装mPDF的位置:
vendor
composer.json
composer.lock
mpdf.php
而mpdf.php文件如下:
<?php
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new \Mpdf\Mpdf();
$mpdf->Writehtml('<h1>Hello world!</h1>');
$mpdf->Output();
【讨论】:
【参考方案2】:你不需要下载 mPDF,composer 会为你做的。
这样做:
-
创建一个空目录,您将在其中使用 mPDF
在新目录中运行
composer require mpdf/mpdf
Composer 现在将安装 mPDF 并创建自动加载文件
在 PHP 文件中需要 vendor/autoload.php
完成,您现在可以在文件中使用 mPDF。
【讨论】:
当前目录下没有 composer.json @BMX 缺少上下文。也许您可以尝试在网上搜索作曲家基础知识,然后如果仍有问题,请在此处提交单独的问题。 如果您尝试执行您在此处回答的操作,这就是 cmd 将显示的内容。 "当前目录中没有 composer.json" 以更好的方式解释它,以免人们感到困惑。 困惑怎么办?更加详细一些。我刚刚遵循了4点,没有任何问题。甚至没有任何No composer.json in current directory
消息,只注意到./composer.json has been created
。以上是关于php:如何使用 composer 安装一个包的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHP Composer 从 Laravel 中删除一个包?
如何将自己的php包GitHub项目与composer集成使用和同时开发