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