Deployer安装完成后
输入dep init
开始初始化,生成默认的配置文件deploy.php
init命令的实如今srcConsoleInitCommand.php文件中
scrInitializer目录则包含了初始化相关的模板
class InitCommand extends Command{}
InitCommand类继承了Symfony的Command类,
实现为一个命令行的命令
构造函数主要初始化了InitCommand的initializer和availableTemplates两个变量initalizer 是一个包含了多个模板的初始化器
具体实现就是下面将要分析的InitalizerphpavailableTemplates 是初始化器中已注册的模板名数组laravel
这里调用Symfony的command的setName(),setDescription(),addOption()配置了init命令
setName("init") 命令名称为initsetDescription() 设置了命令的描述信息,在输入help时显示数组
addOption() 添加了三个选项-template默认初始化模板
-directory 配置文件deploy.php生成目录 -filename 配置文件的名称,默认为deploy.php框架
首先获取命令行输入的选项参数$template $directory $file
若是没有输入$template,则调用Symfony输出模板选项信息提示用户选择一个模板
而后调用初始化器initializer的initalize()方法开始初始化配置文件
输出提示信息 建立配置文件成功
在InitCommand的构造函数中用来建立初始化器
其中注册了deployer自带的模板
Initializer类是deployer用来管理配置模板的初始化器。
添加模板到模板初始化器中
返回已注册的全部模板名数组
$template参数 模板类型
$directory参数 配置模板生成目录
$file参数 配置模板文件名
$params参数 其余参数首先根据$template获取对应的注册的模板类
而后建立模板文件
最后调用获取的模板类的initalize()初始化模板文件函数
检查初始化模板目录并建立
检查初始化模板文件并建立
声明全部模板类须要实现initalize()方法
用来初始化模板类的配置文件
initalize() 初始化模板文件
首先合并参数信息到$params。
而后调用模板子类的getTemplateContent()获取模板内容。
写入获取的内容到模板配置文件
获取模板内容
获取简单的模板内容
获取模板内容
框架类模板的基础内容
而后调用getExtraContent()获取特定框架的内容信息
获取模板食谱名
获取特定框架类的配置内容
这里的框架模板类以Laravel为例
获取框架的食谱名称,deployer为Laravel框架预设了部署流程 具体内容在reciple目录的laravel文件中
这里的getRecipe()就是获取文件名
获取Laravel框架的特定内容
这里主要注册了deploy:symlink前执行artisn:migrate命令
init 命令初始化deploy的配置文件deploy.php其中根据选项参数获取template 初始化不一样的模板。命令行
-2018-4-5 18:58code