Laravel 项目重构策略

Laravel 项目重构策略

项目github地址

自去年开始转为PHP开发,已经有一年。学习php基础之后,便开始使用Laravel框架。

一年来,主要工作是使用Laravel开发电商系统。开发的模块也大体相同。前端,后台,API接口。三个模块是相互独立,又有互相关联的站点。以下,假设三个模块的入口分别为 shopping.cn, admin.shopping.cn, api.shopping.cn。

作为三个独立站点,共享相同的数据库和Model类,若作为三个独立项目开发,显然不够合理。若对数据库结构进行更改,需要三个项目同步修改。然而Laravel框架只提供了一个入口文件,只能搭建一个站点。这里将给出Laravel项目重构策略,实现一个Laravel项目同步开发多个站点。

项目主要结构:

 - shopping
   * docs
     - schema
     - file:shopping.mwb
   * src
   * README.md

通常会在项目路径下添加一个docs路径,存放项目文档,如数据库脚本存放在schema目录下。
src路径下为Laravel项目代码。原始代码结构可以参照官方网站介绍,

app目录包含了应用的核心代码;

bootstrap目录包含了少许文件用于框架的启动和自动载入配置,还有一个cache文件夹用于包含框架生成的启动文件以提高性能;

config目录包含了应用所有的配置文件;

database目录包含了数据迁移及填充文件,如果你喜欢的话还可以将其作为 SQLite 数据库存放目录;

public目录包含了前端控制器和资源文件(图片、JavaScript、CSS等);

resources目录包含了视图文件及原生资源文件(LESS、SASS、CoffeeScript),以及本地化文件;

storage目录包含了编译过的Blade模板、基于文件的session、文件缓存,以及其它由框架生成的文件,该文件夹被细分为成app、framework和logs子目录,app目录用于存放应用要使用的文件,framework目录用于存放框架生成的文件和缓存,最后,logs目录包含应用的日志文件;

tests目录包含自动化测试,其中已经提供了一个开箱即用的PHPUnit示例;

vendor目录包含Composer依赖
项目重构

Laravel项目将扩展为web,admin,api三个模块,以下将以web为例,对项目文件及结构进行修改。

配置项目入口
  • 入口文件: 复制public文件夹,重命名为www-web作为前台web项目的入口并存放相关静态文件。配置服务器指向www-web并设置域名为shopping.cn
重写Application

index.php中请求bootstrap目录下的文件app.php。初始化了Application类。这里需要对Application类进行重构。

// index.php
$app = require_once __DIR__.'/../bootstrap/app.php';

// app.php
$app = new Illuminate\Foundation\Application(
    realpath(__DIR__.'/../')
);

在app目录下新增web\Application类重写Illuminate\Foundation\Application类,主要功能是覆盖项目路径相关的方法,修改publicPath,configPath,langPath,storagePath等路径。

<?php

namespace App\Web;

use Illuminate\Foundation\Application as LaravelApplication;

class Application extends LaravelApplication
{
   
    /**
     * Get the path to the public / web directory.
     *
     * @return string
     */
    public function publicPath()
    {
   
        return $this->basePath . DIRECTORY_SEPARATOR . 'www-web';
    }

    /**
     * Get the path to the application configuration files.
     *
     * @return string
     */
    public function configPath
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值