热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于golang:网站在线客服系统GOFLY源码开发日志-2-开发命令行应用

我始终以来都是做PHP开发,除非是应用swoole框架,大部分PHP利用都是把代码传到服务器对应的目录里,启动nginx+php-fpm来运行PHP代码。

我始终以来都是做 PHP 开发,除非是应用 swoole 框架,大部分 PHP 利用都是把代码传到服务器对应的目录里,启动 nginx+php-fpm 来运行 PHP 代码。

golang 和 PHP 是不一样的,golang 能够作为一个后端的服务监听端口来运行,这个时候就要能在命令行中启动和传递参数。

选用 github.com/spf13/cobra 这个库来解决命令行参数的解析。能够通过命令行把想要执行的不同动作辨别开,不同的动作外面又要传递不同的参数

比方我实现的性能是 ./go-fly-pro server 是开启监听端口服务,./go-fly-pro install 是导入数据库的脚本,这个就是命令行的第二个参数辨别不同的动作

命令的第三个到最初的参数是传递不同的配置参数,我实现了./go-fly-pro server -p 端口号 ,能够配置监听不同的端口,这就是命令行利用的次要逻辑。

入口文件是 go-fly.go ,外面就是间接调用 cmd 包的 Execute 办法

package main

import ( "go-fly-muti/cmd" )

func main() {
    cmd.Execute()
}

自定义的 cmd 包就是命令行利用的性能包,有入口办法,有全局变量,有初始化动作

每个动作都是一个 cobra.Command 构造实体

package cmd

import ( "github.com/spf13/cobra"
    "log"
    "os" ) var rootCmd = &cobra.Command{
    Use: "go-fly-pro",
    Short: "go-fly-pro",
    Long:  `简洁疾速的GO语言在线客服零碎GOFLY`,
}

func init() {
    rootCmd.AddCommand(serverCmd)
    rootCmd.AddCommand(installCmd)
    rootCmd.AddCommand(stopCmd)
    rootCmd.AddCommand(indexCmd)
}
func Execute() { if err := rootCmd.Execute(); err != nil {
        log.Println("执行命令参数谬误:", err)
        os.Exit(1)
    }
}

这就是命令行入口文件,前面还遇到了哪些问题和知识点将会持续进行总结。

演示网站:
gofly.sopans.com


推荐阅读
  • Docker基础指南:快速入门与实践
    Docker自发布以来便受到广泛欢迎,其提供的容器化技术极大地简化了软件开发和部署流程。本文旨在帮助初学者快速掌握Docker的基本操作,包括安装、运行容器、创建和管理镜像等内容,以激发大家对Docker的兴趣。 ... [详细]
  • 本指南详细介绍了如何在 CentOS 7.0 系统上部署 Spring Boot 2.x 应用程序,包括必要的配置和步骤。 ... [详细]
  • 本文详细探讨了Xshell6评估版到期后无法使用的常见问题,并提供了有效的解决方案,包括如何合法购买授权以继续使用。 ... [详细]
  • PHP调用Shell命令的多种方法及环境配置指南
    本文详细介绍了在PHP中调用Shell命令的不同方式及其应用场景,同时提供了在Ubuntu系统中配置PHP以支持Shell命令执行的具体步骤。此外,还涵盖了安装与配置Apache服务器及PHP环境的过程,以便于开发者能够顺利地在Web环境中执行Shell脚本。 ... [详细]
  • 本文介绍了如何在Ubuntu 16.04系统上配置Nginx服务器,以便能够通过网络访问存储在服务器上的图片资源。这解决了在网页开发中需要使用自定义在线图标的需求。 ... [详细]
  • 利用宝塔面板高效部署与使用Easyswoole框架详解
    本文详细介绍了如何在宝塔面板上高效部署和使用Easyswoole框架。以PHP 7.4和宝塔面板7.6为环境基础,首先配置了Swoole扩展,并禁用了`symlink`、`readlink`和`proc_open`三个潜在风险函数。接着,通过宝塔面板的便捷管理功能,顺利完成了Easyswoole框架的安装与初步配置,为开发者提供了高效、稳定的开发环境。 ... [详细]
  • MixPHP V2.1:从多进程架构转向单线程协程的深层原因与技术解析 ... [详细]
  • 使用Swoole的时候出现以下问题,如何解决呢?不是太懂,希望高手们能帮帮忙!谢谢了!是运行https://github.com/matyhtf/webim里的开源项目:matyh ... [详细]
  •  在使用PHP多年之后,我对PHP的优势和劣势已经非常清楚,与后起之秀Golang相比,两者已经不在一个重量级。 PHP更像是70kg级别的选手,脚本语言,极速开发,部署方便,性能 ... [详细]
  • 本文详细介绍了ActivityManagerService (AMS) 的工作原理及其在Android系统中的重要角色。AMS作为system_server进程的一部分,在系统启动时加载,负责管理和协调应用程序中的Activity和服务(Service)。文章将通过具体的接口图和通信流程,帮助读者更好地理解AMS的工作机制。 ... [详细]
  • Microsoft即将发布WPF/E的CTP(Community Technology Preview)和SDK,标志着RIA(Rich Internet Application)技术的新里程碑。更多详情及下载链接请参见MSDN官方页面。 ... [详细]
  • 持续集成概述与实践指南
    本文探讨了持续集成(CI)的基本概念、目的及其在现代软件开发中的应用。通过实例分析,帮助读者理解如何有效实施持续集成,提高软件开发效率。 ... [详细]
  • 在CentOS上构建Ntopng实时网络流量监控平台
    本文详细介绍了如何在CentOS操作系统上安装和配置Ntopng,一个强大的网络流量监控工具。Ntopng能够提供实时的网络流量分析,并通过Web界面展示详细的流量报告。 ... [详细]
  • 前言昨天,在本地安装Swoole调试环境的时候,遇到好几个坑,因为我的电脑是Windows系统,所以安装的是c ... [详细]
  • 如何通过swoole加速laravel的问题?
    这篇文章主要介绍了关于如何使用swoole加速laravel,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下再来复习一下吧,导致php慢的各种因素中解析性语言的 ... [详细]
author-avatar
杨俊其632
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有