您缺少的是 运行 ,这将导入您的软件包并创建供应商文件夹以及自动加载脚本。composer install
确保您的相对路径正确无误。例如,PHPMailer 中的示例脚本位于 项目根目录下方的 中,因此从那里加载 composer 自动加载程序的正确相对路径为 。examples/
../vendor/autoload.php
您在自动加载.php可能是全局作曲家安装 - 您通常会在其中放置phpc,phpunit,phpmd等内容。C:\Windows\SysWOW64\vendor\autoload.php
composer update
不是一回事,可能不是你想用的。如果您的代码是使用当前的包版本进行测试的,那么运行可能会导致中断,这可能需要进一步的工作和测试,因此除非您有特定的原因并确切了解其含义,否则不要运行。为了进一步澄清 - 您可能只应该在本地运行,而不是在服务器上运行,因为它很可能在生产中破坏应用程序。update
update
composer update
我经常看到有人抱怨人们不能使用作曲家,因为他们不能在他们的服务器上运行它(例如,因为它是共享的,他们没有shell访问权限)。在这种情况下,您仍然可以使用 composer:在本地运行它(没有此类限制的环境),并上传它生成的本地供应商文件夹以及所有其他 PHP 脚本。
运行还会执行 一个 ,如果您当前没有文件夹(如果您重新签出项目,则正常),那么它将创建一个文件夹,并且还会覆盖您已经拥有的任何文件,更新其中标记的包版本,这就是潜在的危险。composer update
composer install
vendor
composer.lock
同样,如果您当前没有文件(例如,如果它未提交到项目中),则还可以有效地执行.因此,了解两者之间的区别至关重要,因为它们绝对不可互换。composer.lock
composer install
composer update
也可以通过命名来更新单个包,例如:
composer update ramsey/uuid
这将重新解析中指定的版本,并将其安装在供应商文件夹中,并更新文件以匹配。如果您只需要对一个软件包进行特定更新,则与一般软件包相比,这不太可能引起问题。composer.json
composer.lock
composer update
库不包含自己的文件是正常的;修复版本取决于应用程序,而不是他们使用的库。因此,库开发人员应保持与应用程序开发人员所需的更广泛的主机环境的兼容性。例如,库可能与 Laravel 5、6、7 和 8 兼容,但使用它的应用可能出于其他原因需要 Laravel 8。composer.lock
Composer 2.0删除了安装和更新结果之间的任何剩余不一致;如果你运行的是 composer 1.x,你绝对应该升级。