zgJian's Note


  • Home

  • Archives

  • Tags

Vim常用快捷键

Posted on 2017-10-10 | In 开发工具 |

命令行输入

  • ctrl+a 移动到当前行的开头
  • ctrl+e 移动到当前行的结尾
  • ctrl+u 擦除一行光标前面的部分
  • ctrl+h 擦除光标前面的一个字符
  • ctrl+k 清除光标到行尾的字符
  • ctrl+w 清除光标之前一个单词
Read more »

PHP协程

Posted on 2017-09-20 | In PHP , 网络编程 , |

在PHP中使用协程实现多任务调度

Read more »

PHP-MSF

Posted on 2017-09-10 | In PHP , 开发框架 , |
示例项目

使用msf构建业务应用的推荐方式,主要目录结构为

.
├── README.md
├── app // PHP业务代码
│   ├── AppServer.php // 应用server类,可根据需求自定义
│   ├── Controllers // 控制器类目录
│   ├── Lib // 特殊逻辑处理类目录
│   ├── Models // Model类目录
│   ├── Route // 特殊路由规则**类**目录
│   ├── Tasks // Task类目录
│   └── Views // 视图文件目录
├── build.sh // 构建脚本(拉取docker镜像,启动容器)
├── checkstyle.sh // 代码检查脚本
├── composer.json // composer包依赖配置文件
├── config // 配置目录
│   ├── check.php // 代码检查配置
│   ├── server.php // 主配置文件(server服务相关)
│   ├── constant.php // 业务常量定义文件
│   ├── log.php // 全局日志配置
│   ├── http.php // HTTP服务配置
│   ├── params.php // 全局业务配置(和运行环境无关)
│   ├── dev // 研发联调环境特殊配置目录
│   ├── docker // docker环境特殊配置目录
│   ├── product // 生产环境特殊配置目录
│   ├── qa // QA环境特殊配置目录
├── server.php // server启动脚本
├── console.php // 命令行脚本
├── test // 单元测试目录
└── www  // server根目录
    └── index.html // 索引文件
Read more »

AOP-面向切面编程

Posted on 2017-09-06 | In 编程模式 |

在企业级开发中,AOP被广泛使用。

Read more »

CatApiApp

Posted on 2017-08-23 | In PHP , 开发框架 , |

理解

  • cache process定时广播,向worker process更新写入缓存数据
  • CacheLoader.php中onPipeMessage接受cache的更新数据,写入到当前worker进程中
  • 单worker处理过程使用了协程技术promise以及异步函数优化性能,结合主进程的资源池,使得各个worker间共享资源(redis、mysql)
Read more »

Swoole知识点

Posted on 2017-08-21 | In PHP , 网络编程 , |

运行流程图

主进程

主进程内有多个Reactor线程,基于epoll/kqueue进行网络事件轮询。收到数据后转发到worker进程去处理

Read more »

OpenResty最佳实践-基础

Posted on 2017-08-15 | In web服务器 |

与其他 location 配合

location = /app/test_queue {
    content_by_lua_block {
        local start_time = ngx.now()
        local res1 = ngx.location.capture_multi( {
                        {"/sum", {args={a=3, b=8}}}
                    })
        local res2 = ngx.location.capture_multi( {
                        {"/subduction", {args={a=3, b=8}}}
                    })
        ngx.say("status:", res1.status, " response:", res1.body)
        ngx.say("status:", res2.status, " response:", res2.body)
        ngx.say("time used:", ngx.now() - start_time)
    }
}
Read more »

Nginx常用配置以及陷阱

Posted on 2017-08-15 | In web服务器 |

location匹配规则

语法规则

location [=|~|~*|^~] /uri/ { … }

Read more »

PHP框架压测

Posted on 2017-08-02 | In 开发框架 |

系统配置

  • 虚拟机 2核 4G
  • 主机ab压测虚拟机
Read more »

Swagger-Notify(API文档通知工具)

Posted on 2017-07-15 | In 开发工具 |

通知流程

notify flow

Read more »
1 2 … 4
Garvin Zhang

Garvin Zhang

GvZhang 的小站

35 posts
12 categories
49 tags
RSS
© 2019 Garvin Zhang
Powered by Jekyll
Theme - NexT.Muse