showx/phpshow


phpshow,简单易用的php框架

  • Users starred: 15
  • Users forked: 4
  • Users watching: 2
  • Updated at: 2020-06-17 10:01:46

      _               _
 _ __ | |__  _ __  ___| |__   _____      __
| '_ \| '_ \| '_ \/ __| '_ \ / _ \ \ /\ / /
| |_) | | | | |_) \__ \ | | | (_) \ V  V /
| .__/|_| |_| .__/|___/_| |_|\___/ \_/\_/
|_|         |_|

phpshow

phpshow,轻量简单易用的高性能php框架,默认启动workerman模式,抗大并发能力。

服务器环境

  1. Nginx
  2. php7以上

相关扩展

  1. pcntl
  2. libevent
  3. seaslog(选用)
  4. swoole(选用)

安装

统一使用phpcomposer安装 composer require showx/phpshow

协议

phpshow 的开源协议为 Apache-2.0,详情参见LICENSE

php配置

项目config/site.php配置

详见参考事例

return [
    //框架里的模式 [0普通启动|1 workerman模式];
    'type' => 1,
    // 绑定的地址
    'host' => '0.0.0.0',
	// 启动的端口
    'port' => 8080,
	//进程worker数量
    'count' => 4,
    //数据库池的数量
    'mysql_pool_num' => 6,
    //调试模式
    'debug' => 1,
    //开发模式 [dev 查看加载异常|dev2 查看接口使用内存等]
    'dev' => 1,
    'dev2' => 0,
];

php.ini

建议短标记

  1. short_open_tag = On ;php短标记打开 ,模板要使用这样的标记

nginx配置

nginx正常模式

server{
    ...
	location / {
		if ( !-e $request_filename) {
			rewrite ^(.*)$ /index.php?s=/$1 last;
			break;
		}
		try_files $uri $uri/ /index.html;
	}
	location ~ [^/]\.php(/|$) {
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_index index.php;
		include fastcgi_params;
		fastcgi_split_path_info       ^(.+\.php)(.*)$;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		fastcgi_param PATH_INFO       $fastcgi_path_info;
	}
	...
}

高性能workerman模式

server {
	server_name xxx.com
	location / {
		proxy_pass http://172.20.0.3:8080;
	    proxy_http_version 1.1;
	    proxy_set_header X-Real-IP $remote_addr;
	}
}

框架教程

composer之后 ./vender/showx/phpshow/app 项目示例 ./vender/showx/phpshow/src 核心代码文件

简单的mvc模式 主要逻辑在于/app文件夹中 入口在/public文件夹(详情查询./vender/showx/phpshow/app)

路由

路由采用简单的定义方式 $url/{$ct}/{$ac},http://www.baidu.com/index/index,默认ct和ac为index. 支持path_info /index.php/index/index

配置文件

配置文件主要饮食site(基础配置)database(数据库配置)route_rule(路由规则配置) 放在app项目下的config文件夹

app项目

├── config 配置目录
│   ├── cron.php
│   ├── db.php
│   ├── signkey.php
│   └── site.php
├── control 控制类
│   ├── IndexController.php
├── index.php   程序入口
├── model 模型类
│   ├── IndexModel.php
├── public 静态文件目录
│   ├── favicon.ico
│   ├── index.html
│   ├── index.php   普通模式下的入口
│   └── robots.txt
├── runtime  临时缓存与日志目录
│   └── Log
└── view  模板目录
    ├── footer.php
    ├── header.php
    ├── index.php

新建composer.json文件

	autoload": {
        "psr-4": {
            "app\\": "app/"
        }
    },

增加本地项目的autoload composer require showx/phpshow 在app里使用php index.php start启动服务器

核心类的介绍

  1. \phpshow\request 获取数据类
  2. \phpshow\response 输出类
  3. \phpshow\loader 核心加载类
  4. \phpshow\control 基层控制器
  5. \phpshow\model 基层模型

工具库

  1. \phpshow\lib\redis redis类
  2. \phpshow\lib\http http请求类
  3. \phpshow\lib\mysql 数据库驱动
  4. \phpshow\lib\debug 页面调试
  5. \phpshow\lib\jwt jwt会话验证
  6. \phpshow\lib\log 日志类
  7. \phpshow\lib\pool 进程池
  8. \phpshow\helper\util 辅助函数库

模型层

继承\phpshow\model即可调用相关函数

  1. insert1 新增数据
  2. update1 更新数据
  3. get_one 获取一条数据
  4. get_all 获取所有数据
  5. get_sql_one 获取指定sql的一条数据
  6. get_sql_all 获取指定sql的全部数据

模板引擎

使用纯php输出,模板里简单用 作为标签 vue带领大家,前后端分离,没需要用到模拟引擎

简单缓存

使用

  • 设置缓存 \phpshow\loader::set($key,$value);
  • 获取缓存 \phpshow\loader::get($key);
  • 建议与反馈

    联系本人 9448923#qq.com