【问题标题】:laravel 5, which files to put in production after a composer dump autoloadlaravel 5,作曲家转储自动加载后要投入生产的文件
【发布时间】:2016-05-28 18:53:00
【问题描述】:

最近我在 composer.json 文件中添加了一些内容并执行了“composer dump autoload”。在开发方面一切正常。

当我将更新投入生产时,我遇到了这个错误:

[2016-02-17 08:17:47] local.ERROR: 异常 带有消息的“Symfony\Component\Debug\Exception\FatalErrorException” '调用未定义的函数 App\Http\Controllers\f_array_classe()' /home/dominiquir/ecole/app/Http/Controllers/MatieresEnseigneesController.php:67

当我将我的应用程序投入生产时,我只放置了“app”文件夹。但当然,当这个文件被修改时,我还必须将一些其他文件投入生产,但是哪些?

【问题讨论】:

  • 您使用哪种工具进行部署?我将整个项目部署到生产中,除了供应商文件夹。但在生产中我需要运行composer install 来加载依赖项
  • 我使用“filezilla”!我第一次把我所有的项目。然后对于每个新版本,我只放置“app”和“public”文件夹。否则会花费太多时间(我的连接速度非常慢)。但是当我修改 composer.json 文件时,我当然也必须放一些其他文件,但我不知道是哪个。

标签: laravel-5 composer-php


【解决方案1】:

使用 Composer 的应用程序必须上线

  1. 运行应用程序本身所需的所有文件 - 您应该知道文件的位置,因为我想它们是您创建的
  2. vendor 文件夹中的所有文件。

如果您不确切知道第 1 点,则全局正确答案是:您运行 composer install 后的整个项目文件夹。

要优化上传时间,您应该省略开发依赖项:运行composer install --no-dev 以删除任何未用于运行应用程序的内容。开发依赖项通常包括测试框架,如 PHPUnit 或任何仅用于帮助开发的库,例如正在使用的框架的一些命令行界面等。如果您的 composer.jsonrequire-dev 下有条目,那就是被省略的内容。

减少上传大小的下一步是不上传任何不相关的应用程序本身,例如测试。但这完全取决于您如何构建应用程序。

我建议编写一个脚本来完成所有准备工作以创建优化上传。它可以是一个简单的 shell 脚本,它创建一个新的空文件夹,然后将所有需要的文件和文件夹复制到其中,然后在那里运行composer install --no-dev,然后可能再次从不需要的依赖包中删除文件(如测试文件夹)。

您还可以运行优化图像、CSS 和 Javascript 的软件。它们中的大多数都可以在大小上进行压缩,而不会损失任何质量或功能。

最后你会得到一个文件夹,里面装满了你知道必须上网的文件。只需上传整个文件夹。完成。

更多的优化是尝试使用rsync,它将目标中已经存在的文件与源中的文件进行比较,并且只传输必要的最小值,但这需要某种形式的 SSH 访问,而不仅仅是 FTP .

【讨论】:

  • 非常感谢斯文。我已经明白了。我将所有文件夹“供应商/作曲家”投入生产(仅 8 个非常轻的文件)。它现在工作正常!谢谢。
猜你喜欢
  • 2014-05-29
  • 2016-05-26
  • 1970-01-01
  • 2017-02-26
  • 2015-12-16
  • 2015-04-06
  • 2013-12-16
  • 2017-12-28
  • 2018-06-15
相关资源
最近更新 更多