目录结构

project目录结构

project 工程目录
├── app 应用目录
│ └── demo 子应用目录
│ ├── env.php 环境配置文件
│ ├── config 配置文件目录
│ ├── controller 控制器目录
│ ├── hook 事件代码目录
│ ├── library 用户库类目录
│ ├── logic 业务逻辑目录
│ ├── model 模型目录
│ ├── public 公共访问目录
│ │ └── index.php 应用入口文件
│ ├── resource 资源文件目录
│ ├── scheme 协议文件目录
│ ├── service 业务逻辑目录
│ ├── storage 文件存储目录
│ │ ├── cache 缓存文件目录
│ │ └── log 日志文件目录
│ └── view 视图文件目录
├── framework 框架文件目录
| ├── app.php 应用基类文件
| ├── common.php 辅助函数文件
│ ├── core 框架核心类库目录
| ├── driver 框架驱动类库目录
| ├── extend 框架扩展类库目录
| └── util 框架工具类库目录
│── test 测试文件目录
└── vendor Composer安装目录

目录 project app framework可以使用常量ROOT_DIR APP_DIR FW_DIR指定。

// framework/app.php文件所在目录默认为框架文件目录
define('FW_DIR', __DIR__.'/');
// FW_DIR的上一级目录默认为工程目录
defined('ROOT_DIR') || define('ROOT_DIR', dirname(__DIR__).'/');
// $_SERVER['DOCUMENT_ROOT']的上一级目录默认为应用目录
defined('APP_DIR') || define('APP_DIR', dirname($_SERVER['DOCUMENT_ROOT']).'/');

目录 vendorconfig可以使用环境配置常量VENDOR_DIR CONFIG_DIR指定。

namespace APP\ENV;
//配置文件目录,默认为应用目录下的config子目录
const CONFIG_DIR = APP_DIR.'config/';
//composer vendor目录,默认为工程目录下的vendor子目录
const VENDOR_DIR = ROOT_DIR.'vendor/';

应用目录app下可以建多个子应用目录(上面目录结构示例中使用了子应用目录demo),子应用之间基本无任何关联,如用户无需多个子应用也可以直接把应用代码放在应用目录app目录下