【问题标题】:how can i use one vendor directory for 5 different laravel 5.1 projects我如何将一个供应商目录用于 5 个不同的 laravel 5.1 项目
【发布时间】:2019-03-27 23:25:09
【问题描述】:

我有 5 个不同的 Laravel 5.1 项目。如何为所有项目使用一个供应商目录。有什么建议吗?

【问题讨论】:

  • 真正的原因是什么?
  • 节省服务器空间。
  • @Straven 更容易管理?防止文件重复?节省硬盘空间?有关系吗?
  • 它会跳出顶部。我认为使用一个供应商目录不是正确的方法,因为如果我们在其中一个项目中出现错误,其中一个软件包我们将失去所有项目的正常工作,而不是发生错误的项目。
  • vendor目录目前占用了多少空间?如果它只有几百 MB,那么我建议维护问题不值得在不同项目中跟踪 vendor 目录中的差异。

标签: php laravel vendor


【解决方案1】:

在 composer.json 中插入:

"config": {
        "vendor-dir": "plugins"
    }

并更改bootstrap/autoload.php

require __DIR__ . '/../vendor/autoload.php';

到您设置供应商目录的目录。

【讨论】:

  • 我已经尝试过了,花了几个小时但没有工作。我想我必须为所有项目保留不同的供应商目录!
【解决方案2】:

这对我有用:

我为每个仅包含 autoload.php 文件的项目使用供应商目录。在这个文件中,我添加了一行,存储了应用程序目录的位置,例如$GLOBALS['mydir'] = 'absolute path to project';,我修改了require_once 语句,更改了路径,指向公共供应商目录。

在常见的vendor目录下,我修改了vendor/composer/autoload_classmap.php,在return数组前添加了$appDir =$GLOBALS['mydir'];这一行。

我将所有 $baseDir 替换为 $appDir ,其中 /app/ 存在于路径中(对我来说有 23 个替换)。

请注意,就我而言,我没有更新我的 5.1 Laravel。更新后我认为 autoload_static.php 也必须这样做。 只使用一个供应商目录的一个很好的理由是,一些主机计划对每个主机帐户的文件有限制,而供应商有超过 6000 个文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    • 2015-07-12
    • 2016-12-22
    • 2018-12-09
    相关资源
    最近更新 更多