2

我有多个项目,可保留的空间很小。

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

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

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

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

4

2 回答 2

5

简短的回答:

你不能。

长答案:

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

解决方法:

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

于 2013-10-12T19:39:22.407 回答
0

来源: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

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

于 2015-01-13T03:48:09.700 回答