Laravel 项目抽离 vendor 目录的问题
第一次来问问题,最近才用 laravel 框架,之前一直用 yaf 及公司自研框架
核心的问题是:希望把 vendor 目录从项目代码中抽离出来,实现单独部署 vendor 并几个项目共用一个 vendor。
遇到的问题是:把 vendor 目录拷贝出来到一个单独目录,然后软连接 ln -s
到项目目录中的 vendor,但它不工作,找到的原因是 laravel 框架引入项目文件时是从单独出来的 vendor 目录查找,所以很显然是找不到的。
把 vendor 抽离出来的原因是:希望自动化部署,不希望每次增加新包或者更新包的时候在部署的时候需要 composer require
,单独部署 vendor。
生成环境运行
composer
真的很蛋疼
有没有同学抽离过 vendor,分享一下经验。
@Wi1dcard 提供了比较成熟的部署方案。
刚刚我也解决了 vendor 抽离只后 autoload 不到的问题
在 bootstrap 注册 autoload 就可以了。
./bootstrap/app.php
<?php
require_once __DIR__ . '/../vendor/autoload.php';
$autoload = new Composer\Autoload\ClassLoader();
$autoload->addPsr4('App\\', "../app/");
$autoload->addClassMap([
"database/",
"tests/"
]);
$autoload->register();
非常感谢大家的意见和建议。
推荐文章: