duiying / pandora
自定义的组件化PHP框架
Installs: 5
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:project
This package is auto-updated.
Last update: 2025-03-29 00:50:11 UTC
README
自定义的组件化PHP框架
框架目录
Pandora
|----app 应用目录
|--------console 后台应用目录
|--------web WEB应用目录
|------------controllers 控制器目录
|------------models 模型类目录
|----config 配置文件目录
|--------config.php 框架配置文件
|----framework 框架核心目录
|--------base 框架基础目录
|------------Application.php 基础应用类
|------------Component.php 基础组件类
|------------Controller.php 基础控制器
|------------Model.php 基础模型类
|--------component 组件目录
|--------console 框架后台目录
|--------web 框架WEB目录
|------------Application.php WEB应用类
|------------Controller.php WEB控制器
|--------Pandora.php 框架核心类
|----public 框架入口目录
|--------web WEB入口目录
|----runtime runtime
|--------cache 缓存文件目录
|------------index.php 入口文件
组件
MySQL组件
文件缓存组件
安装
安装
git clone git@github.com:duiying/Pandora.git
cd Pandora
composer update
数据库配置 config/config.php
-- 新建数据库 CREATE DATABASE IF NOT EXISTS `pandora`; -- 选择数据库 USE `pandora`; -- 新建测试数据表 CREATE TABLE IF NOT EXISTS `user` ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50), age INT(11), PRIMARY KEY(id) ); -- 插入测试数据 INSERT INTO `user` (name, age) VALUES('duiying', 23), ('wangyaxian', 23);
规范
目录规范
1. web目录存放WEB相关代码,console目录存放后台脚本相关代码
代码规范
1. 变量名采用驼峰式命名方式
2. 类名首字母大写
执行流程分析
WEB
1. 入口文件:public/web/index.php。
2. index.php中执行\pandora\web\Application中的run方法,\pandora\web\Application继承\pandora\base\Application。
3. \pandora\base\Application中的run方法首先初始化框架核心类(读取配置),然后调用handle方法处理请求。
4. \pandora\web\Application中的handle方法分发路由。
如何引入并使用组件
1. 在config/config.php文件中定义了组件信息,包括组件的类名和属性。
2. 使用Pandora::component('组件名称')的方式使用组件,此时\pandora\Pandora.php中的component方法会读取组件信息并返回组件的对象。
ORM的实现思路
1. 基础模型类:\pandora\base\Model.php,自定义的模型类比如\app\web\models\User.php继承基础模型类。
2. 通过PDO查出相关记录,并通过基础模型类下的arr2Model方法转为Model。