laravel 5,在作曲家转储自动加载后将文件投入生产

时间:2016-02-17 07:31:37

标签: laravel-5 composer-php

最近我将一些东西添加到我的composer.json文件中并做了一个" composer dump autoload"。所有在开发方面都很好。

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

  

[2016-02-17 08:17:47] local.ERROR:异常   ' Symfony的\元器件\调试\异常\ FatalErrorException'与消息   '调用未定义的函数App \ Http \ Controllers \ f_array_classe()'在   /home/dominiquir/ecole/app/Http/Controllers/MatieresEnseigneesController.php:67

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

1 个答案:

答案 0 :(得分:3)

使用Composer的应用程序必须联机

  1. 运行应用程序本身所需的所有文件 - 您应该知道文件的位置,因为我认为您创建了它们
  2. vendor文件夹中的所有文件。
  3. 如果您不确切地知道第1点,那么全局正确答案是:您运行composer install后的整个项目文件夹。

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

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

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

    您也可以为图像,CSS和Javascript运行优化软件。它们中的大多数可以在不损失质量或功能的情况下进行压缩。

    最后,您将获得一个文件夹,其中包含您知道必须联机的文件。只需上传整个文件夹即可。完成。

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

相关问题