PHPEGG是一个轻量但功能丰富的PHP框架,支持Standard
Rest
Micro
Inline
Jsonrpc
Grpc
等应用模式,包含配置
类加载
事件
容器
路由
日志
错误处理
等核心功能,并集成了数据库
缓存
存储
RPC
邮件
短信
等多种功能驱动,而且框架耦合度低,模块之间依赖低,框架初始化只加载少量核心PHP文件,用户完全可以根据自己的需求定制一个灵活 高性能 并且功能丰富的应用框架。
-
Standard 默认推荐的标准
MVC
应用模式,适用于网页和接口开发。 -
Rest
RESTful
风格模式,适用于开发RESTful
风格的API
接口。 -
Inline 内联调用控制器文件面向过程代码,快捷高效。
-
Micro 微框架模式,提供基本接口方法,灵活高效。
-
Jsonrpc 基于
jsonrpc
协议的无scheme
RPC应用。 -
Grpc 基于
grpc
协议的有scheme
(使用protobuf
定义)RPC应用。 -
View 视图驱动
View<->ViewModel<->Model
模式(未完成)。 -
Cli 命令行模式,用于命令行工具 计划任务 守护进程等(未完成)。
-
自定义应用 继承
App
基类,实现约定接口方法,自建应用模式类。 -
无模式应用 不使用任何应用模式,使用原生多入口方式开发应用。
另外为了实现不同模式应用之间的相互调用,框架在
rpc
驱动中实现了一套rpc client
来远程调用服务。
-
Config 配置处理
-
Loader 类加载处理
-
Hook 事件处理
-
Error 错误处理
-
Logger 日志处理
-
Router 路由处理
-
Container 容器
-
View 视图
-
Template 模版
-
Validator 验证器
-
Auth 认证处理
-
Client HTTP请求客户端
-
Request HTTP请求信息
-
Response HTTP响应处理
-
Cookie & Session
db
数据库
驱动 | 描述 |
---|---|
Mysqli | 基于php mysqli扩展,支持一些特有的mysql方法 |
Mysql | 基于php pdo_mysql扩展 |
Pgsql | 基于php pdo_pgsql扩展(粗略测试) |
Sqlite | 基于php pdo_sqlite扩展(粗略测试) |
Sqlsrv | 在win系统下使用pdo_sqlsrv扩展,类unix系统下使用pdo_odbc扩展(无环境,未测试) |
Oracle | 基于php pdo_oci扩展(无环境,未测试) |
Cluster | 基于Mysqli,支持设置多个数据库服务器,实现读写分离主从分离,原理是根据SQL的SELECT INSERT等语句将请求分配到不同的服务器。(无环境,未测试) |
cache
缓存
驱动 | 描述 |
---|---|
Apc | 基于php apcu扩展的单机共享内存缓存 |
Db | 使用关系数据库缓存数据 |
File | 使用文件保存缓存数据 |
Memcached | 使用Memcached服务缓存数据 |
Opcache | 将缓存数据写入php文件,使用php Opcache来缓存数据 |
Redis | 使用Redis服务缓存数据 |
storage
存储
驱动 | 描述 |
---|---|
Local | 本地文件处理简单适配封装 |
Ftp | 基于ftp协议,需要php ftp扩展 |
Sftp | 基于ssh协议,需要php ssh2扩展 |
S3 | 亚马逊s3服务 |
Oss | 阿里云oss服务 |
Qiniu | 七牛云存储 |
Webdav | 基于Webdav协议,兼容多种网盘,如Box OneDrive Pcloud 坚果云 |
logger
日志
驱动 | 描述 |
---|---|
WebConsole | 日志发送到浏览器控制台,支持Firefox,Chrome(需安装chromelogger插件) |
日志发送到邮件 | |
File | 日志写入文件 |
Queue | 日志发送到队列(坑) |
rpc
RPC
驱动 | 描述 |
---|---|
Jsonrpc | Jsonrpc协议rpc客户端 |
Http | rpc调用风格的httpClient封装 |
Rest | rpc调用风格的Rest httpClient封装 |
Thrift | Thrift rpc客户端 |
Grpc | Grpc rpc客户端 |
email
邮件
驱动 | 描述 |
---|---|
Smtp | 基于Smtp协议发送邮件 |
Sendmail | 使用php mail函数发送邮件(服务器需已装postfix等邮件服务器并已开放相应端口) |
Mailgun | 使用Mailgun提供的邮件发送服务 |
Sendcloud | 使用Sendcloud提供的邮件发送服务 |
sms
短信
驱动 | 描述 |
---|---|
Alidayu | 阿里大于短信服务 |
Aliyun | 阿里云短信服务(暂无企业账户,未测试) |
Baidu | 百度云短信服务(暂无企业账户,未测试) |
Qcloud | 腾讯云短信服务 |
Yuntongxun | 容联云通讯短信服务 |
captcha
验证码
驱动 | 描述 |
---|---|
Image | 使用gregwar/captcha包 |
Recaptcha | google recaptcha |
Geetest | 极验验证 |
geoip
IP定位
驱动 | 描述 |
---|---|
Baidu | Baidu地图IP定位接口,优点几乎不限请求,缺点无法定位国外ip |
Ipip | Ipip IP定位,有在线api接口和离线数据库两种使用方式 |
Maxmind | Maxmind IP定位,有在线api接口和离线数据库两种使用方式 |
crypt
加解密
驱动 | 描述 |
---|---|
Openssl | 基于php openssl扩展 |
Sodium | 基于php libsodium扩展 |
search
搜索
驱动 | 描述 |
---|---|
Elastic | 基于Elastic rest接口 (待完善) |
data
非关系数据库
驱动 | 描述 |
---|---|
Cassandra | 使用datastax扩展(坑) |
Mongo | 使用MongoDB扩展(待完善) |
Hbase | 使用Thrift Rpc客户端(坑) |
queue
队列
驱动 | 描述 |
---|---|
Redis | 使用redis list类型实现简单队列(坑) |
Amqp | 基于Amqp协议RabbitMQ服务(坑) |
Beanstalkd | pda/pheanstalk包(坑) |
Kafka | php-rdkafka扩展(坑) |