2

保持するスペースがほとんどない複数のプロジェクトがあります。

それらのほとんどはほぼ同じパッケージを使用しているため(1つだけがphpexcelを使用し、もう1つはswiftmailerを使用しています)、ベンダーフォルダーはlaravelで最大のスペースを必要としました。

それらのすべてに同じベンダーフォルダーを使用できるのではないかと考えました。

私は実際にautoload.phpと他のいくつかの設定ファイルを台無しにしましたが、それを作ることができませんでした.

単純に、ベンダー フォルダーを public_html の下に置き、project1 project2 のようなフォルダーを作成します。これらのフォルダーの下に、vendor フォルダー以外のプロジェクトに関するすべてを配置し、それらをサブドメインにします。

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 に答える