【问题标题】:multiple projects with same vendor folder on Laravel 4Laravel 4上具有相同供应商文件夹的多个项目
【发布时间】:2013-10-20 11:56:35
【问题描述】:

我有多个项目,但空间很小。

因为它们中的大多数使用几乎相同的包(只有 1 个使用 phpexcel 而另一个使用 swiftmailer )并且供应商文件夹在 laravel 上需要最大的空间。

我想也许我可以为他们每个人使用相同的供应商文件夹。

我实际上弄乱了 autoload.php 和其他一些配置文件,但是我做不到。

我将把 vendor 文件夹放在 public_html 下并创建像 project1 project2 这样的文件夹。 在这些文件夹下,我将放置有关我的项目的所有内容,除了供应商文件夹,然后将它们设为子域。

【问题讨论】:

    标签: laravel laravel-4


    【解决方案1】:

    简答:

    你不能。

    长答案:

    /vendor 文件夹不仅仅是关于包的,你还有vendor/composer 文件夹,你的应用程序类名称存储在其中以用于自动加载目的。每次运行 composer dump-autoload 时,Composer 都会更改其中一些文件的内容。查看 vendor/composer/autoload_classmap.php 文件,您会发现其中一些类来自您自己的项目。

    解决方法:

    请注意,我看不到这样的事情进展顺利,但实际上,您可以创建一个空白项目,仅用于下载包并将所有供应商文件夹中的所有包符号链接到该项目。为了一点点的收获,麻烦很多。当然,这取决于你。

    【讨论】:

      【解决方案2】:

      来源:http://www.wenda.io/questions/2416709/laravel-4-1-vendor-directory-config.html

      编辑 composer.json

      "config": {
          "preferred-install": "dist",
          "vendor-dir": "../vendor"
      },
      

      编辑 bootstrap/autoload.php 文件

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

      编辑 bootstrap/start.php 文件

      $framework = $app['path.base'].
                   '/../vendor/laravel/framework/src';
      

      编辑../vendor/laravel/framework/src/Illuminate/Foundation/Console/Optimize/config.php

      $basePath = $app['path.base'].'/../';
      

      然后运行composer install,你会发现vendor dir created ../

      php artisan optimize -v --force
      

      生成优化的类加载器 编译通用类

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-30
        • 1970-01-01
        • 2019-03-24
        • 2018-06-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多