HookPHP一款基于C扩展搭建支持AI在线编程的PHP框架-安全秒杀ThinkPHP-性能秒Laravel-功能秒YAF-易用秒Symfony-入门秒Zend-组件秒Yii-耦合秒Phalcon

前端之家收集整理的这篇文章主要介绍了HookPHP一款基于C扩展搭建支持AI在线编程的PHP框架-安全秒杀ThinkPHP-性能秒Laravel-功能秒YAF-易用秒Symfony-入门秒Zend-组件秒Yii-耦合秒Phalcon前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_502_1@前言

众所周知,PHP7已经开始支持PHP强类型编程很久了,但是还是有那么多的程序员无论是理念还是实践依然停留在PHP弱类型的时代;

再回首,开启1个新项目,总有些工作如轮回似的重复再重复,比如 用户管理权限管理配置管理菜单管理语言管理、DB建模、模板管理等;

观今朝,高级架构师、IT大佬、CXO满天飞,但是真正为PHP行业进步做出贡献的寥寥无几,大多处在赶项目、解BUG、开会、扯皮、甩锅、宫斗、包装、升职、跳槽、转行、养老、复制、粘贴等;

作者LetWang对此深表痛心,决定从我做起,改变现状,加大PHP在行业的影响力!

此框架无论是作为PHP7高级教程,还是作为行业通用基础组件业务支撑,再或者是作为PHP开源宝库贡献一份力量,HookPHP的应运而生都有着划时代的重大意义!

HookPHP项目地址:https://github.com/letwang/HookPHP,如果大家喜欢的话,请给个Star,让更多的人看到优秀的开源项目,为PHP发展贡献一把力量!QQ架构探讨群:679116380

@H_502_1@背景

创作此框架的作者是LetWang,2007年ASP,2008年ASP.NET(C#),从2009年一直PHP

虽然中间几次创业,看过太多的源码,也曾服务于海外多家机构,但越是这样越发现自己的渺小:一个人无法改变太多,需要带动整个群体一起进步!

纵观PHP行业主流框架,大概有LaravelPhalconSymfonyCodeIgniterYiiAuraCakePHPZendKohanaFuelPHPSlimTypo3ThinkPHPFlightPHPixieYafSwooleNetteDrupalWorkermanPHPDevShellAkelosPradoZooPQPHP等,但是至今仍然没有一款像HookPHP框架这样基于PHP7强类型写法、开源免费、解决企业启动新项目时的重复劳动问题!

酝酿近10年,千魂梦绕,终崛起!向多年前《电商平台技术架构 多用户商城 仿天猫 淘宝 亚马逊 当当 阿里巴巴 大数据模块 低成本运维 高效开发》致敬!

@H_502_1@简介

一款基于C扩展搭建支持AI在线编程的PHP框架!

@H_502_1@理念

配置即产出,所想即所得。

@H_502_1@使命

解决企业启动新项目时的重复劳动问题。

@H_502_1@架构图

@H_502_1@特点

基于C系扩展搭建

基于PHP强大的WEB迅速开发能力,性能瓶颈用C扩展解决,后期如果业务需要不排除PHPshell_exec调用GO来支持天然并发.

sql中台集中管控

既避免业务代码中到处零散的sql拼接,也避免ORM极差的性能瓶颈,业务sql统一定义,一处定义多处随意使用。既方便sql安全审计,又方便DBA建模、升级、优化。

集成业务通用基础组件

用户管理、资源管理、角色管理、权限管理、配置管理、翻译管理、SEO管理、多菜单管理、多语言管理、多模块管理、多模板管理、多终端管理、多平台管理…

集成行业主流特性

微服务、多线程、多进程、常驻内存、主从分离、负载均衡…

支持组件在线管控

用户自主上传组件 在线达到组件 安装、卸载、启用、禁用、排序、移动、归类…

支持多模板

根据节假日等不同规则动态显示自定义模板,在线任意选择模板显示风格

支持多平台

PAAS、ERP、电商、博客、官网 等众多平台,可以部署到一台服务器,共享类库、session、文件

支持多域名

平台对应绑定独立域名或子域映射到对应平台

支持多终端

默认Bootstrap模板,多终端(手机、PC、Ipad…)设备、分辨率,风格自适应

支持多语言

国际化语言支持中文、英语、俄语、西班牙语…

一键安装

傻瓜式部署,一键初始化系统

云端管控

通过总admin后台,管控各大平台配置

常驻内存

PHP服务器启动,业务信息常驻内存 加速PHP

权限体系

集成强大的RBAC体系,后台一键配置立即生效。

APIRESTful

API支持RESTful风格,API产业化经济建设支持

前后端分离

API在手,随时重构适合多变的业务

@H_502_1@目录

//HookPHP基于C系扩展YAF搭建 感谢鸟哥

.

├── app//平台文件夹列表 下面每1个文件夹都是1个平台

│ ├── admin//【平台1】 中心管控 总后台,管理admin平台、paas平台、erp平台...

│ │ ├── bin//终端命令

│ │ │ ├── install.PHP//一键安装初始化该平台

│ │ │ └── queue.PHP//队列消费服务(通过RabbitMQ实现)

│ │ ├── Bootstrap.PHP//平台运行初始化引导

│ │ ├── controllers//控制器

│ │ │ ├── Abstract.PHP//抽象层封装

│ │ │ ├── Acl//RBAC权限体系

│ │ │ │ ├── Group.PHP//用户

│ │ │ │ ├── Index.PHP//列表

│ │ │ │ ├── Resource.PHP//资源

│ │ │ │ ├── Role.PHP//角色

│ │ │ │ └── User.PHP//用户

│ │ │ ├── App.PHP//多平台管理

│ │ │ ├── Config.PHP//云端配置管理

│ │ │ ├── Error.PHP//统一收集错误处理

│ │ │ ├── Hook//用户上传动态组件管理

│ │ │ │ ├── Index.PHP//事件管理

│ │ │ │ └── Module.PHP//组件管理

│ │ │ ├── Index.PHP//首页仪表盘大数据大屏展示

│ │ │ ├── Lang.PHP//多语言管理

│ │ │ ├── Login.PHP//统一登录服务

│ │ │ ├── Manager.PHP//超级管理员管理

│ │ │ ├── Menu.PHP//多菜单管理

│ │ │ ├── Theme.PHP//多模板管理

│ │ │ ├── Translation.PHP//翻译管理 从谷歌、Bing、百度等源智能翻译数据

│ │ │ └── User//多用户管理

│ │ │ └── Index.PHP//列表

│ │ ├── hooks//用户上传动态组件列表

│ │ │ ├── One//组件1

│ │ │ │ └── One.PHP//自动挂载到事件、回调

│ │ │ ├── Three//组件2

│ │ │ │ └── Three.PHP

│ │ │ └── Two//组件3

│ │ │ └── Two.PHP

│ │ ├── init.PHP//平台运行初始化

│ │ ├── library//admin平台运行私有类库

│ │ ├── models//模型 CRUD

│ │ │ ├── Abstract.PHP//抽象层封装

│ │ │ ├── Acl//RBAC权限体系

│ │ │ │ ├── Group.PHP//用户

│ │ │ │ ├── Index.PHP//列表

│ │ │ │ ├── Resource.PHP//资源

│ │ │ │ ├── Role.PHP//角色

│ │ │ │ └── User.PHP//用户

│ │ │ ├── App.PHP//多平台

│ │ │ ├── Config.PHP//云端配置

│ │ │ ├── Hook//用户上传动态组件

│ │ │ │ ├── Index.PHP//事件

│ │ │ │ └── Module.PHP//组件

│ │ │ ├── Lang.PHP//多语言

│ │ │ ├── Manager.PHP//超级管理员

│ │ │ ├── Menu.PHP//菜单

│ │ │ ├── Theme.PHP//模板

│ │ │ ├── Translation.PHP//远程智能翻译

│ │ │ └── User//多用户

│ │ │ └── Index.PHP//列表

│ │ ├── modules//应用列表 下面每1个文件夹都是1个应用,应用可以随意在平台间智能复制共享

│ │ │ ├── Api//【应用1】API服务 遵循RESTful规范 功能同上述 控制器 中目录、文件介绍 一一对应

│ │ │ │ └── controllers

│ │ │ │ ├── Acl

│ │ │ │ │ ├── Group.PHP

│ │ │ │ │ ├── Index.PHP

│ │ │ │ │ ├── Resource.PHP

│ │ │ │ │ ├── Role.PHP

│ │ │ │ │ └── User.PHP

│ │ │ │ ├── App.PHP

│ │ │ │ ├── Config.PHP

│ │ │ │ ├── Hook

│ │ │ │ │ ├── Index.PHP

│ │ │ │ │ └── Module.PHP

│ │ │ │ ├── Lang.PHP

│ │ │ │ ├── Manager.PHP

│ │ │ │ ├── Menu.PHP

│ │ │ │ ├── Translation.PHP

│ │ │ │ └── User

│ │ │ │ └── Index.PHP

│ │ │ ├── Cart//【应用2】购物车

│ │ │ │ ├── controllers

│ │ │ │ │ └── Index.PHP

│ │ │ │ └── views

│ │ │ │ └── default

│ │ │ │ └── index

│ │ │ │ └── index.phtml

│ │ │ ├── Order//【应用3】订单系统

│ │ │ │ ├── controllers

│ │ │ │ │ └── Index.PHP

│ │ │ │ └── views

│ │ │ │ └── default

│ │ │ │ └── index

│ │ │ │ └── index.phtml

│ │ │ └── Payment//【应用4】支付网关

│ │ │ ├── controllers

│ │ │ │ └── Index.PHP

│ │ │ └── views

│ │ │ └── default

│ │ │ └── index

│ │ │ └── index.phtml

│ │ ├── plugins//插件

│ │ │ └── Hook.PHP//每个插件行为一一映射到事件

│ │ └── views//视图 支持多终端手机、PC、Ipad...设备、分辨率,风格自适应(通过Bootstrap实现)

│ │ └── default//【模板1】默认模板

│ │ ├── bottom.phtml//通用底部

│ │ ├── error//通用底部

│ │ │ └── error.phtml

│ │ ├── index//通用首页

│ │ │ └── index.phtml

│ │ └── top.phtml//通用头部

│ ├── erp//【平台2】下属目录功能 同【平台1】

│ │ ├── bin

│ │ │ └── install.PHP

│ │ ├── Bootstrap.PHP

│ │ ├── controllers

│ │ │ ├── Abstract.PHP

│ │ │ ├── Error.PHP

│ │ │ └── Index.PHP

│ │ ├── init.PHP

│ │ ├── plugins

│ │ │ └── Hook.PHP

│ │ └── views

│ │ └── default

│ │ ├── bottom.phtml

│ │ ├── error

│ │ │ └── error.phtml

│ │ ├── index

│ │ │ └── index.phtml

│ │ └── top.phtml

│ └── paas//【平台3】下属目录功能 同【平台1】

│ ├── bin

│ │ └── install.PHP

│ ├── Bootstrap.PHP

│ ├── controllers

│ │ ├── Abstract.PHP

│ │ ├── Error.PHP

│ │ └── Index.PHP

│ ├── init.PHP

│ ├── plugins

│ │ └── Hook.PHP

│ └── views

│ └── default

│ ├── bottom.phtml

│ ├── error

│ │ └── error.phtml

│ ├── index

│ │ └── index.phtml

│ └── top.phtml

├── conf//系统常量 常驻内存(通过Yaconf实现)

│ ├── admin_lang_1.ini//admin平台中文语言包

│ ├── admin_product.ini//admin平台生产配置【DB、常用正则、秘钥...】

│ ├── admin_table.ini//admin平台表结构单机缓存静态化

│ ├── erp_lang_1.ini//erp平台中文语言包

│ ├── erp_product.ini//erp平台生产配置【DB、常用正则、秘钥...】

│ ├── erp_table.ini//erp平台表结构单机缓存静态化

│ ├── paas_lang_1.ini//paas平台中文语言包

│ ├── paas_product.ini//paas平台生产配置【DB、常用正则、秘钥...】

│ ├── paas_table.ini//paas平台表结构单机缓存静态化

│ └── pinyin.ini//平台通用汉字转拼音服务

├── log//平台日志(通过SeasLog实现)

│ ├── default//常规日志

│ └── user//用户行为日志

├── public//系统单入口,下属admin、erp、paas与上述app下属文件夹一一对应,此处可以对应绑定域名 支持多域名配置

│ ├── admin//www.admin.com

│ │ ├── assets//前端资源文件(通过Nginx UPS、Varnish 实现CDN、动静分离 HTTP Cache)

│ │ ├── index.PHP//单入口文件

│ │ ├── robots.txt//SEO蜘蛛爬取规则

│ │ └── sitemap.xml//站点地图生成 优化SEO

│ ├── erp//www.erp.com

│ │ ├── index.PHP

│ │ ├── robots.txt

│ │ └── sitemap.xml

│ └── paas//www.paas.com

│ ├── index.PHP

│ ├── robots.txt

│ └── sitemap.xml

└── vendor//平台公共类库

├── Hook//【类库1】系统默认

│ ├── Batch//批量处理类

│ │ ├── Insert.PHP

│ │ └── Process.PHP

│ ├── Cache//全局单例、缓存类

│ │ └── Cache.PHP

│ ├── Crypt//加密、解密类

│ │ ├── PassWord.PHP

│ │ └── Rijndael.PHP

│ ├── Data//大数据处理类

│ │ └── ArrayUtils.PHP

│ ├── Date//日期控件类

│ │ └── Calendar.PHP

│ ├── Db//DB操作类

│ │ ├── MongoConnect.PHP

│ │ ├── Orm.PHP

│ │ ├── PdoConnect.PHP

│ │ └── RedisConnect.PHP

│ ├── Extract//压缩包在线解压类

│ │ ├── AbstractAdapter.PHP

│ │ ├── ExtractInterface.PHP

│ │ ├── Extract.PHP

│ │ ├── RarAdapter.PHP

│ │ └── ZipAdapter.PHP

│ ├── File//文件

│ │ └── File.PHP

│ ├── Form//表单类

│ │ └── Form.PHP

│ ├── Hook//组件类

│ │ ├── Hook.PHP//事件管控类

│ │ └── Module.PHP//组件管控类

│ ├── Http//Http处理类

│ │ ├── Curl.PHP

│ │ └── Header.PHP

│ ├── Image//图片处理类

│ │ └── Image.PHP

│ ├── Paginator//分页

│ │ └── Paginator.PHP

│ ├── sql//sql集中化管控

│ │ ├── Acl.PHP

│ │ ├── App.PHP

│ │ ├── Hook.PHP

│ │ ├── Install.PHP

│ │ ├── Login.PHP

│ │ ├── Menu.PHP

│ │ ├── Module.PHP

│ │ └── Table.PHP

│ ├── Tika//文件内容提取类(通过Tika实现)

│ │ └── Tika.PHP

│ ├── Tools//常用工具类

│ │ └── Tools.PHP

│ ├── Translation//多语言远程智能翻译服务

│ │ ├── AbstractAdapter.PHP

│ │ ├── BaiduAdapter.PHP

│ │ ├── BingAdapter.PHP

│ │ ├── GoogleAdapter.PHP

│ │ ├── TranslationInterface.PHP

│ │ └── Translation.PHP

│ └── Validate//验证类

│ └── Validate.PHP

├── mongodb//【类库2】外部Composer引入

│ └── mongodb

├── PHPmailer//【类库3】外部Composer引入

│ └── PHPmailer

└── symfony//【类库4】外部Composer引入

└── process

@H_502_1@架构

PHP 7.3

sudo apt-get install PHP7.3-common PHP7.3-cli PHP7.3-bcmath PHP7.3-dev PHP7.3-xml PHP7.3-opcache PHP7.3-mbstring PHP7.3-MysqL PHP7.3-fpm PHP7.3-gd PHP7.3-zip PHP7.3-curl PHP7.3-intl PHP7.3-json

C Extensions

Yaf

sudo pecl install yaf

[yaf]

extension=yaf

yaf.use_namespace = 1

yaf.use_spl_autoload = 1

yaf.library = /home/letwang/workspace/HookPHP/vendor/

Yaconf

sudo pecl install yaconf

[yaconf]

extension=yaconf

yaconf.directory = /home/letwang/workspace/HookPHP/conf/

gRPC【可选】

sudo pecl install grpc

[grpc]

extension=grpc

SeasLog【可选】

sudo pecl install seaslog

[seaslog]

extension=seaslog

seaslog.trace_notice=1

seaslog.trace_warning=1

seaslog.default_basepath='/home/letwang/workspace/HookPHP/log'

seaslog.default_template = '%T | %L | %P | %Q | %t | %M | %H | %D | %R | %m | %I | %F | %U | %u | %C'

Xhprof【可选】

git clone https://github.com/longxinH/xhprof.git ./xhprof

cd xhprof/extension/

PHPize7.3

./configure --with-PHP-config=PHP-config7.3

make && sudo make install

sudo apt-get install graphviz-dev

[xhprof]

extension=xhprof

xhprof.output_dir = '/var/log/xhprof'

Rar【可选】

sudo pecl install rar

[rar]

extension=rar

PHP.ini【可选】

[Session]

session.save_handler = redis

session.save_path = "tcp://127.0.0.1:6379?weight=1&auth=123456&database=0,tcp://127.0.0.1:6379?weight=2&auth=123456&database=0"

hosts

sudo vim /etc/hosts

127.0.0.1 www.admin.com

127.0.0.1 www.erp.com

127.0.0.1 www.paas.com

Nginx 1.15.5

server {

listen 80;

root /home/letwang/workspace/HookPHP/public/admin/;

index index.html index.htm index.PHP;

error_log /var/log/Nginx/www.admin.com-error.log error;access_log /var/log/Nginx/www.admin.com-access.log combined;

server_name www.admin.com;

if (!-e $request_filename) {rewrite ^/(.*) /index.PHP?$1 last;}

location ~ .PHP$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

server {

listen 80;

root /home/letwang/workspace/HookPHP/public/erp/;

index index.html index.htm index.PHP;

error_log /var/log/Nginx/www.erp.com-error.log error;access_log /var/log/Nginx/www.erp.com-access.log combined;

server_name www.erp.com;

if (!-e $request_filename) {rewrite ^/(.*) /index.PHP?$1 last;}

location ~ .PHP$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

server {

listen 80;

root /home/letwang/workspace/HookPHP/public/paas/;

index index.html index.htm index.PHP;

error_log /var/log/Nginx/www.paas.com-error.log error;access_log /var/log/Nginx/www.paas.com-access.log combined;

server_name www.paas.com;

if (!-e $request_filename) {rewrite ^/(.*) /index.PHP?$1 last;}

location ~ .PHP$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

MysqL 8.0.12

Proxysql【可选】

wget https://github.com/sysown/proxysql/releases/download/v1.4.12/proxysql_1.4.12-ubuntu16_amd64.deb

sudo dpkg -i proxysql_1.4.12-ubuntu16_amd64.deb

Redis 5.0

RedisProxy【可选】

sudo pecl install redis

[redis]

extension=redis

MongoDB 4.2

sudo pecl install mongodb

[mongodb]

extension=mongodb

MongoDB Sharded Cluster【可选】

RabbitMQ 3.7.8【可选】

sudo apt-get install erlang-nox

wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.8/rabbitmq-server_3.7.8-1_all.deb

sudo rabbitmq-server start

sudo rabbitmqctl status

sudo rabbitmq-plugins enable rabbitmq_management

AMQP【可选】

wget https://github.com/alanxz/rabbitmq-c/archive/v0.9.0.zip

cd rabbitmq-c-0.9.0

mkdir build && cd build

cmake ..

cmake --build .

cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..

cmake --build . --target install

sudo pecl install amqp

[amqp]

extension=amqp.so

amqp.login=admin

amqp.password=12345678

Sphinx 3.0.3【可选】

wget -P /home/sphinx http://sphinxsearch.com/files/sphinx-3.0.3-facc3fb-linux-amd64.tar.gz

Varnish 6.1.0【可选】

curl -L https://packagecloud.io/varnishcache/varnish61/gpgkey | sudo apt-key add -

echo "deb https://packagecloud.io/varnishcache/varnish61/ubuntu/ xenial mainndeb-src https://packagecloud.io/varnishcache/varnish61/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/varnishcache_varnish61.list

sudo apt-get update

sudo apt-get install varnish

sudo apt-get install libvarnishapi1

sudo apt-get install libvarnishapi-dev

sudo pecl install varnish

[varnish]

extension=varnish

Composer

curl -sS https://getcomposer.org/installer | PHP

sudo mv composer.phar /usr/local/bin/composer

Tika【可选】

wget -P /home/letwang/workspace/HookPHP/vendor/Hook/Tika http://mirrors.hust.edu.cn/apache/tika/tika-app-1.19.1.jar

安装

cd ~/workspace/HookPHP/

sudo chmod 777 -R ./log

composer.phar install

PHP app/admin/bin/install.PHP

PHP app/erp/bin/install.PHP

PHP app/paas/bin/install.PHP

访问

http://www.admin.com/

http://www.erp.com/

http://www.paas.com/

admin@hookPHP.com

12345678

演示

@H_502_1@业务

目前只集成

admin 中心管控统一后台,目前重点开发中…

paas PAAS系统

erp ERP系统

每个域名绑定好平台单入口,可以建设众多平台。

@H_502_1@未来

目前HookPHP还未发布releases 0.1版本,虽然有众多用户焦急的催促等待我,但我心目中的releases 0.1版本至少应该可以达到:在线创建平台、在线建模、在线生成MVC,初步达到AI在线编程,代码生产代码的可用版本。

当0.1版本实现后,HookPHP基石应该初步落地,接下来开发天猫、亚马逊这种多用户商城0.1版。

路 还很长,我 还很年轻,生命不息 战斗不止 做点有意义的事情 加油!

原文链接:https://www.f2er.com/thinkphp/60497.html

猜你在找的ThinkPHP相关文章