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 是一個包含了多個模板的初始化器
具體實現就是下面將要分析的Initalizerphp

availableTemplates 是初始化器中已註冊的模板名數組laravel

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:58code

相關文章
相關標籤/搜索