上节课将swoole官网上的样例代码从面向过程转变成面向对象的方式了,完成了第一个小目标,但是在使用过程中,我们注意到了两点不足,1.配置是写死到代码中,对于项目管理来说非常不友好,每次配置有变动需要修改代码 2.服务启动比较笨拙,对于项目管理来说非常不方便,因此,为了后续开发的便捷,我们需要更新改造服务管理脚本
在改造服务管理脚本之前,先来整理下思路,由结果反推实现方式
- 项目相关的数据要做成配置文件,通过读取配置文件来设置相应的参数
- 要想管理服务,必须要拿到服务的进程ID,并且将进程ID保存到文件中
- 要想在linux的命令行快速定位到对应进程,必须要在进程中设置独特的标识,方便使用grep命令来查询服务进程
- 为了能够直观的看到服务进程的启动关闭执行结果,必须在执行相应操作后输出对应的提示语到屏幕上,并且为了醒目,输出的提示语最好能加上颜色区分
在此,这里规定如下,除了php环境的相关配置,其他项目或者框架相关的配置统一用ini格式的配置文件,并且配置文件统一存放到目录/home/configs/yaconf-cli,后续不再累述
- 改造后的代码结构
- syserver.ini(服务配置)
- configs_project
- helper_service_manager
- ServiceManager(服务管理类)
- helper_service
- Project
- ServiceRunner(服务启动类)
- BaseServer
- HttpServer
- SimpleTrait
- 启动并检测(因为端口不再是8800,因此不能继续通过浏览器访问8800端口,下节课做了负载均衡后就可以通过8800继续访问了)
- 关闭并检测
至此,我们已经完成了服务管理脚本化的工作,现在回过头来看改造之前的需求,项目配置做成了配置文件,进程ID也保存在了进程ID文件,可以通过grep命令来搜索命令并且启动关闭服务的提示语都会带有颜色,能够显著的提醒操作结果,完美完成改造之前的需求