qiu-jin / phpegg
phpegg framework
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 26
Watchers: 1
Forks: 0
Open Issues: 0
Type:project
pkg:composer/qiu-jin/phpegg
Requires
- php: >=7.0
Requires (Dev)
- apache/thrift: ^0.10.0
- google/protobuf: ^3.4
- gregwar/captcha: ^1.1
- grpc/grpc: ^1.6
- maxmind-db/reader: ^1.1
- pda/pheanstalk: ^3.1
- phpunit/phpunit: ^5.3
- symfony/var-dumper: ^3.2
This package is not auto-updated.
Last update: 2019-01-29 23:04:18 UTC
README
简介
PHPEGG是一个轻量但功能丰富的PHP框架,支持Standard Rest Micro Inline Jsonrpc Grpc等应用模式,包含配置 类加载 事件 容器 路由 日志 错误处理等核心功能,并集成了数据库 缓存 存储 RPC 邮件 短信等多种功能驱动,而且框架耦合度低,模块之间依赖低,框架初始化只加载少量核心PHP文件,用户完全可以根据自己的需求定制一个灵活 高性能 并且功能丰富的应用框架。
应用模式
-
Standard 默认推荐的标准
MVC应用模式,适用于网页和接口开发。 -
Rest
RESTful风格模式,适用于开发RESTful风格的API接口。 -
Inline 内联调用控制器文件面向过程代码,快捷高效。
-
Micro 微框架模式,提供基本接口方法,灵活高效。
-
Jsonrpc 基于
jsonrpc协议的无schemeRPC应用。 -
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 认证处理
HTTP层
-
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 | 日志发送到队列(坑) |
rpcRPC
| 驱动 | 描述 |
|---|---|
| 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 | 极验验证 |
geoipIP定位
| 驱动 | 描述 |
|---|---|
| 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扩展(坑) |