资讯专栏INFORMATION COLUMN

Deployer init命令

Vultr / 1405人阅读

摘要:简介安装完成后输入开始初始化,生成默认的配置文件命令的实现在文件中目录则包含了初始化相关的模板命令类类继承了的类,实现为一个命令行的命令构造函数构造函数主要初始化了的和两个变量是一个包含了多个模板的初始化器具体实现就是下面将要分析的是初始化

0 简介
Deployer安装完成后
输入dep init开始初始化,生成默认的配置文件deploy.php
init命令的实现在srcConsoleInitCommand.php文件中
scrInitializer目录则包含了初始化相关的模板
1 InitCommand.php init命令 1 InitCommand类
class InitCommand extends Command{}
InitCommand类继承了Symfony的Command类,
实现为一个命令行的命令
2 __constrcut() 构造函数
构造函数主要初始化了InitCommand的initializer和availableTemplates两个变量

initalizer 是一个包含了多个模板的初始化器
具体实现就是下面将要分析的Initalizer

availableTemplates 是初始化器中已注册的模板名数组

3 configure() 命令配置函数
这里调用Symfony的command的setName(),setDescription(),addOption()配置了init命令
setName("init") 命令名称为init

setDescription() 设置了命令的描述信息,在输入help时显示

addOption() 添加了三个选项-template默认初始化模板
-directory 配置文件deploy.php生成目录 -filename 配置文件的名称,默认为deploy.php

4 execute() 命令执行函数
首先获取命令行输入的选项参数$template $directory $file
如果没有输入$template,则调用Symfony输出模板选项信息提示用户选择一个模板
然后调用初始化器initializer的initalize()方法开始初始化配置文件
输出提示信息 创建配置文件成功
5 createInitializer() 创建初始化器
在InitCommand的构造函数中用来创建初始化器
其中注册了deployer自带的模板
2 Initializer 模板初始化器 1 Initializer.php 初始化器 0 简介
Initializer类是deployer用来管理配置模板的初始化器。
1 addTemplate() 添加模板
添加模板到模板初始化器中
2 getTemplateNames() 获取已注册模板名
返回已注册的所有模板名数组
3 initalize() 初始化配置模板
$template参数 模板类型
$directory参数 配置模板生成目录
$file参数 配置模板文件名
$params参数 其他参数

首先根据$template获取对应的注册的模板类
然后创建模板文件
最后调用获取的模板类的initalize()初始化模板文件

4 checkDirectoryBeforeInitialize()
检查初始化模板目录并创建
5 checkFileBeforeInitialize()
检查初始化模板文件并创建
2 Template 初始化模板 1 TemplateInterface.php 模板接口
声明所有模板类需要实现initalize()方法
用来初始化模板类的配置文件
2 Template.php 模板基类
initalize() 初始化模板文件
首先合并参数信息到$params。
然后调用模板子类的getTemplateContent()获取模板内容。
写入获取的内容到模板配置文件
3 CommonTemplate 基础模板类 1 getTemplateContent()
获取模板内容
获取简单的模板内容
4 FrameworkTemplate.php 框架模板基类 1 getTemplateContent() 1 getTemplateContent()
获取模板内容
框架类模板的基础内容
然后调用getExtraContent()获取特定框架的内容信息
2 getRecipe()
获取模板食谱名
3 getExtraContent()
获取特定框架类的配置内容
5 LaravelTemplate Laravel配置模板类
这里的框架模板类以Laravel为例
1 getRecipe()
获取框架的食谱名称,deployer为Laravel框架预设了部署流程 具体内容在reciple目录的laravel文件中
这里的getRecipe()就是获取文件名
2 getExtraContent()
获取Laravel框架的特定内容
这里主要注册了deploy:symlink前执行artisn:migrate命令
3 总结
init 命令初始化deploy的配置文件deploy.php

其中根据选项参数获取template 初始化不同的模板。

-2018-4-5 18:58

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28549.html

相关文章

  • 简单轻松部署你的项目 - Deployer

    摘要:文件包含了基本的部署配置和任务,且有明确的注释,你可以根据注释在适当的地方添加配置以及任务。自动部署到了这里,恭喜你,已经可以愉快使用。 showImg(https://pigjian.com/storage/post_img/2017-04-09/deployer.jpg); 本文主要介绍 Deployer —— 一个具有模块化、代码回滚、并行任务等功能的 PHP 部署工具。 De...

    cartoon 评论0 收藏0
  • deployer 实战经验分享

    摘要:开发完项目,免不了要部署上线。进行部署的过程中,项目仍然能够正常访问。能十分方便地进行回滚。线上测试与生产使用的是青云的云主机,系统。或者想办法设置实现免密码登录。 开发完项目,免不了要部署上线。纯手动操作,登录、拉代码、改配置、清缓存、各种服务重启等等一条龙下来,人生宝贵的几分钟就过去了。而且手动操作十分容易出错,遗漏部分步骤都有可能产生一些邪门问题。所以我很早就开始寻求一种能轻松部...

    cangck_X 评论0 收藏0
  • 阿里云VPS搭建自己的的Hexo博客

    摘要:博客的架构先搞明白博客从搭建到自动发布的架构,才能更好的理解我们每一步进行的操作。整个搭建流程第一部分服务器环境搭建,包括安装配置创建用户。在裸库的文件夹中,新建文件。 1. 博客的架构 先搞明白Hexo博客从搭建到自动发布的架构,才能更好的理解我们每一步进行的操作。不然只跟着步骤过了一遍,却不知道为什么这么做。 首先看这张架构图:showImg(https://segmentfaul...

    hizengzeng 评论0 收藏0
  • 从零开始搭建hexo静态博客

    摘要:后来网上看到了很多和搭建的静态博客,由于编辑器的实用性,及,等代码托管平台的免费特点,让很多人都转向了和。于是我也花了两三天的时间来研究搭建了自己的博客。 以前的博客(blog.duweibin.cn)是在学习thinkphp的时候自己做的一个小项目,模板也是网上找的,后台是自己用thinkphp框架写的,上一个博客搭建过程中让自己学会了thinkphp对MVC操作,(M层还没具体用过...

    venmos 评论0 收藏0
  • Deployer整体结构

    摘要:功能简介实现的自动化部署的任务执行工具项目地址代码结构命令行入口目录命令行入口常用项目配置模板发布脚本核心实现安装生成目录常用项目配置模板目录下包括一些常见框架部署配置模板相关命令当前运行服务器目录信息当前配置信息当前服务器信息 0 功能简介 php实现的自动化部署的任务执行工具 1 项目地址 https://github.com/deployphp/... 2 代码结构 deplo...

    _ivan 评论0 收藏0

发表评论

0条评论

Vultr

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<