命令行输入
ctrl+a
移动到当前行的开头ctrl+e
移动到当前行的结尾ctrl+u
擦除一行光标前面的部分ctrl+h
擦除光标前面的一个字符ctrl+k
清除光标到行尾的字符ctrl+w
清除光标之前一个单词
ctrl+a
移动到当前行的开头ctrl+e
移动到当前行的结尾ctrl+u
擦除一行光标前面的部分ctrl+h
擦除光标前面的一个字符ctrl+k
清除光标到行尾的字符ctrl+w
清除光标之前一个单词使用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 // 索引文件
在企业级开发中,AOP被广泛使用。
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)
}
}