Laravel 4上具有相同供应商文件夹的多个项目

时间:2013-10-12 12:59:37

标签: laravel laravel-4

我有多个项目的空间很小。

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

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

我实际上搞砸了autoload.php和其他一些配置文件但是我无法做到。

我只需将vendor文件夹放在public_html下,然后创建像project1 project2这样的文件夹。 在这些文件夹下,我将把除项目文件夹之外的所有项目都放在供应商文件夹中,然后将它们作为子域名。

2 个答案:

答案 0 :(得分:4)

简答:

你不能。

答案很长:

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

<强> Workaroud:

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

答案 1 :(得分: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创建了../

php artisan optimize -v --force

生成优化的类加载器 编译公共类