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();
非常感谢大家的意见和建议。
推荐文章: