框架目录结构

优质
小牛编辑
147浏览
2023-12-01

首先介绍一下 herosphp/framework 的框架结构

herophp/framework 是 herosphp/app 的依赖,使用 composer 安装就好了

安装最新版

composer require 'herosphp/framework:*@latest'
src 框架根目录 

    |---- api API 服务模块
    |---- bean bean模块 
    |---- cache 缓存模块  
    |---- core 内核模块 
    |---- exception 异常模块 
    |---- files 文件工具包 
    |---- filter 过滤器
    |---- gmodel gmodel工具
    |---- http http模块
    |---- image 图片处理
    |---- listener 监听器 
    |---- lock 同步锁 
    |---- model 模型层 
    |---- qrcode 二维码模块
    |---- rsa RSA 加密模块
    |---- session 会话 
    |---- string 字符串工具包 
    |---- utils 全局工具包 
    |---- web web工具包 
    |---- functions.core.php 框架全局函数 
    |---- Heros.const.php 框架常量 
    |---- BootStrap.php 框架启动文件
    |---- Artisan.php 命令行启动文件

herosphp-app 的目录结构

static 静态资源目录
runtime 运行时生成的目录,包括缓存和session文件存储目录都在里面
vendor composer依赖安装目录

app 应用名称
    |---- build 自动化构建的xml目录
    |---- client 客户端任务目录 
    |---- configs 应用配置目录 
    |---- server.php 通用入口文件
    |---- artisan.php artisan命令行入口文件 
    |---- index.php app入口文件 
    |---- phpunit.php 单元测试入口文件
    |---- functions.php 全局函数 
    |---- modules 应用模块根目录 
        |-- demo 模块名称
            |-- action 控制器目录
            |-- service 服务层目录
            |-- models model实体
            |-- dao 数据库操作DAO
            |-- template 模板目录
            |-- tests 单元测试目录
            |-- ModuleListener.php 模块生命周期监听器
        |-- DefaultWebappListener.php 应用全局生命周期监听器

需要详细说明的几个目录和文件

1. server.php

通用的入口文件,也可以看做是应用的初始化程序,所有其他的入口文件(index.php, phpunit.php, artisan, api.php)都要包含 server.php

2. artisan

命令行工具的入口文件,提供各种强大的命令,让你通过几行命令创建web应用。如何只用请参考 Artisan命令详解

3. index.php

web 应用的入口程序,在配置nginx或者apache的是时候需要将所有web请求 转发到index.php

4. phpunit.php

单元测试入口文件,在配置单元测试的时候需要用到。配置单元测试

app/modules目录

modules目录放置着你所有的开发模块,比如user, news, api等,每个模块的结构我们默认定义了action(控制器), service(服务层), template(模板), 后续我们会陆续具体讲到这些文件夹。

app/configs目录

configs目录中包含了该应用所有的相关配置文档:

  • env 跟环境相关的配置,app配置,数据库配置。包含了三个环境, dev(开发), test(测试), prod(生产)
  • beans beans服务配置文件目录
  • session.config.php session配置文档