Laravel Composer更新了更改的文件

时间:2017-02-20 11:45:07

标签: php laravel laravel-5 laravel-4 composer-php

我需要为我讨论一个非常重要的事情(可能对于在他们的项目中使用作曲家的所有用户)。我正在研究laravel。每当我在本地机器上工作时,我在供应商中添加新库后运行composer update。

现在它在本地机器上运行正常。但是当我在我的服务器上传这些文件时,会发出类似“Undefine class ....”的错误。我不知道如何在服务器上运行composer update命令(也可能不安全)。

因此,我可以通过在cmd上使用composer update来了解哪些文件已更新。还需要哪些其他文件才能避免此错误?

3 个答案:

答案 0 :(得分:5)

你可以:

  • 只在您的本地服务器上运行composer update
  • 提交/推送每个文件(包括composer.lock,但vendor目录
  • 发送到您的生产服务器(不vendorcomposer.lock
  • 然后在生产服务器上运行composer install。它会根据您的composer.lock更新所有依赖项(因此完全版本与您在本地服务器上的上次更新版本相同)。

换句话说:您不应该在服务器上运行composer update,而是在每次投放时运行composer install(并且您需要保留composer.lock

希望它会对你有所帮助。

答案 1 :(得分:2)

composer dump-autoload之前运行composer update。如果仍然无法正常工作,请尝试使用composer clear-cache

清除作曲家缓存

答案 2 :(得分:1)

composer update将从您的供应商文件夹更新每个包的版本。

通常如果您无法确保需要更新每个包的所有版本,则应使用composer install

错误“undefined class”的原因通常是由app.php引起的。因为服务提供程序是在app.php中定义的,但是类(包)没有安装。

为了解决您的问题,请尝试以三种方式执行此操作:

  1. composer install --no-scripts;
  2. 评论尚未从app.php安装的服务提供商,然后编写作曲家安装
  3. composer dump-autoload