Laravel 5.3框架-多项目公用框架-架构设计方案

前言

该文章内容仅限于互相探讨与学习。希望为普及LaravelPHP编程思想出一份力!

正题

由于最近一些朋友在使用laravel框架的时候碰到了一个非必须解决的问题,可能也是有存在一部分强迫症的原因吧。

具体需求是这样的。

Laravel框架是基于Composer设计的,项目所依赖的文件非常的多,同时在web根目录下会有着一箩筐的文件,单单vendor文件夹里有着5000+的文件。看起来不美观的同时,每一次新建一个项目,都必须重新导入laravel框架放在根目录下。对于项目的建立管理也是不方便的。于是朋友们提出了一个需求,希望laravel的框架独立,多项目共用框架,目录结构干净等等。

虽然这个需求多多少少是偏离了laravel本身的设计思路和结构,但是用过CodeIgniter,ThinkPHP的开发者一定还是受不了这样的结构方式吧。有种一进门就眼花缭乱的感觉。(当然,题外话。用了那么多的PHP框架,个人还是觉得TP框架更适合新手,成本更低,更加适合创业型公司。同时,看了ThinkPHP7新的结构,特别期待它的完善)

虽然我在两年前碰过laravel,但是那时候并非比较主流的框架,就随便看了看。所以,我用laravel最新的5.3做个结构改变的方案供大家学习。有什么不对的地方可以留言,欢迎探讨。

我也在业余时间帮朋友把Laravel框架重新进行了调整,以适应他们的需求。

有兴趣的朋友可以去github下载来看看。

https://github.com/lynk-coder/lynk-public-laravel/

教程

那么我们先看看最终改成的目录结构会变成什么样子:



这么做的目的,是将我们可爱的laravel框架彻底分割出去,同时根据自己的需求去切换自己项目所需求的框架。那么我们开始进行一步步的修改和调整。

首先我们要保证PHP在5.6及以上的版本。

我们先从项目基本结构先改,然后再修改框架。

1、<project>/public/index.php

我们在public文件夹里,把index.php进行一些修改。

我们在代码里面加入一些内容,这三段代码放在最开头的位置

define('APPLICATION_WEB_ROOT',__DIR__."/../"); 
define('LARAVEL_FRAMEWORK_DIR',APPLICATION_WEB_ROOT.'/../framework/laravel5.3');
require APPLICATION_WEB_ROOT.'/../vendor/autoload.php';


其次,我们将原来的

require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

改成

require LARAVEL_FRAMEWORK_DIR.'/bootstrap/autoload.php';
$app = require_once LARAVEL_FRAMEWORK_DIR.'/bootstrap/app.php';

这样,我们的index.php改好了。


2、我们在< project >的同级目录下,新建framework,在framework下面建立laravel5.3目录,将bootstrap,vendor(框架文件),.env移动到laravel5.3目录里面,同时新建目录common


 

3、我们在< project >下面建立目录vendor,将config,database,resources

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值