Deployer init命令

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

你可能感兴趣的:(php,deploy)