[TOC]
* * * * *
## 1 文件
tp在console目錄下實現了控制臺的
輸入,輸出,命令實現,控制臺助手等功能
~~~
\bin\ 輸入助手
\command\ 命令實現
\helpler\ 控制臺助手
\input\ 控制臺輸入
\output\ 控制臺輸出
Input.php 輸入類
Output.php 輸出類型
~~~
## 2 控制臺輸入
### 1 (輸入接口)Input.php
1 成員變量
~~~
protected $definition;
protected $options = [];
protected $arguments = [];
protected $interactive = true;
private $tokens;
private $parsed;
~~~
2 輸入對象構造函數
`public function __construct($argv = null)`
> $argv: 輸入參數;默認為$_SERVER['argv']
3 初始化解析字符串
`protected function setTokens(array $tokens)`
> $token:待解析字符串
4 綁定實例
`public function bind(Definition $definition)`
> $definition:實例對象
5 參數解析
`protected function parse()`
6 短指令操作 -
`private function parseShortOption($token)`
> $token:待解析字符串
7 短指令獲取
`private function parseShortOption($token)`
> $name:短指令名稱
8 長指令操作 --
`private function parseLongOption($token)`
> $token:待解析字符串
9 參數解析 ''
`private function parseArgument($token)`
> $token:待解析字符串
10 注冊短指令選項的值
~~~
private function addShortOption($shortcut, $value)
~~~
> $shortcut:短指令名稱
$value:短指令值
11 注冊長指令選項的值
`private function addLongOption($name, $value)`
> $name: 長指令名稱
> $value:長指令值
12 獲取第一個參數
`public function getFirstArgument()`
13 參數檢查
`public function hasParameterOption($values)`
> $value:需要檢查的值
14 獲取原始選項的值
~~~
public function getParameterOption($values, $default = false)
~~~
> $values: 檢查值
$default: 默認值
15 輸入驗證
`public function validate()`
16 操作的交互控制
~~~
public function isInteractive()
public function setInteractive($interactive)
~~~
17 參數的操作
~~~
public function getArguments()
public function getArgument($name)
public function setArgument($name, $value)
public function hasArgument($name)
~~~
18 選項的操作
~~~
public function getOption($name)
public function setOption($name, $value)
public function hasOption($name)
~~~
19 指令操作
~~~
public function escapeToken($token)
public function __toString()
~~~
### 2 (輸入指令)input\Definition.php
1 成員變量
~~~
private $arguments;
private $requiredCount;
private $hasAnArrayArgument = false;
private $hasOptional;
private $options;
private $shortcuts;
~~~
2 構造函數
~~~
public function __construct(array $definition = [])
~~~
3 設置選項的指令
~~~
public function setDefinition(array $definition)
~~~
4 設置指令的參數
~~~
public function setArguments($arguments = [])
~~~
5 添加指令參數
~~~
public function addArguments($arguments = [])
public function addArgument(Argument $argument)
~~~
6 參數操作
~~~
public function getArgument($name)
public function getArguments()
public function hasArgument($name)
public function getArgumentCount()
public function getArgumentRequiredCount()
public function getArgumentDefaults()
~~~
7 選項操作
~~~
public function setOptions($options = [])
public function addOptions($options = [])
public function addOption(Option $option)
public function getOption($name)
public function hasOption($name)
public function getOptions()
public function getOptionDefaults()
~~~
8 短指令選項操作
~~~
public function hasShortcut($name)
public function getOptionForShortcut($shortcut)
private function shortcutToName($shortcut)
~~~
9 獲取指令介紹
~~~
public function getSynopsis($short = false)
~~~
### 3 (輸入參數)input\Argument.php
1 成員變量
~~~
const REQUIRED = 1;
const OPTIONAL = 2;
const IS_ARRAY = 4;
private $name;
private $mode;
private $default;
private $description;
~~~
2 構造函數
`public function __construct($name, $mode = null, $description = '', $default = null)`
3 獲取參數名
`public function getName()`
4 是否必須
`public function isRequired()`
5 是否接受數組參數
`public function isArray()`
6 設置默認值
~~~
public function setDefault($default = null)
~~~
7 獲取默認值
~~~
public function getDefault()
~~~
8 獲取描述
~~~
public function getDescription()
~~~
### 4 (輸入選項)input\Option.php
1 成員變量
~~~
const VALUE_NONE = 1;
const VALUE_REQUIRED = 2;
const VALUE_OPTIONAL = 4;
const VALUE_IS_ARRAY = 8;
private $name;
private $shortcut;
private $mode;
private $default;
private $description;
~~~
2 構造函數
`public function __construct($name, $shortcut = null, $mode = null, $description = '', $default = null)`
3 獲取短指令
`public function getShortcut()`
4 獲取選項名
`public function getName()`
5 選項狀態
~~~
public function acceptValue()
public function isValueRequired()
public function isValueOptional()
public function isArray()
~~~
6 設置選項默認值
~~~
public function setDefault($default = null)
public function getDefault()
~~~
7 獲取選項描述
~~~
public function getDescription()
~~~
8 選項比較
~~~
public function equals(Option $option)
~~~
## 3 控制臺輸出
### 1 (輸出接口)Out.php
1 成員變量
~~~
private $stderr;
~~~
2 構造函數
`public function __construct()`
3 設置是否美化
public function setDecorated($decorated)
4 設置輸出格式
public function setFormatter(Formatter $formatter)
5 設置輸出狀態
public function setVerbosity($level)
6 錯誤輸出設置
~~~
public function getErrorOutput()
public function setErrorOutput(Output $error)
~~~
7 控制臺輸出檢查
`protected function hasStdoutSupport()`
### 2 (輸出流)\output\Stream.php
1 成員變量
~~~
const VERBOSITY_QUIET = 0;
const VERBOSITY_NORMAL = 1;
const VERBOSITY_VERBOSE = 2;
const VERBOSITY_VERY_VERBOSE = 3;
const VERBOSITY_DEBUG = 4;
const OUTPUT_NORMAL = 0;
const OUTPUT_RAW = 1;
const OUTPUT_PLAIN = 2;
private $verbosity = self::VERBOSITY_NORMAL;
private $formatter;
private $stream;
~~~
2 構造函數
`public function __construct($stream, Formatter $formatter = null)`
> $stream:輸出流
> $formatter:輸出格式
3 輸出格式操作
~~~
public function setFormatter(Formatter $formatter)
public function getFormatter()
~~~
4 輸出格式美化操作
~~~
public function setDecorated($decorated)
public function isDecorated()
~~~
5 輸出狀態操作
~~~
public function setVerbosity($level)
public function getVerbosity()
public function isQuiet()
public function isVerbose()
public function isVeryVerbose()
public function isDebug()
~~~
6 行輸出
~~~
public function writeln($messages, $type = self::OUTPUT_NORMAL)
~~~
7 輸出接口
`public function write($messages, $newline = false, $type = self::OUTPUT_NORMAL)`
8 輸出操作
`protected function doWrite($message, $newline)`
9 獲取輸出流
`public function getStream()`
10 是否支持著色
`protected function hasColorSupport()`
### 3 (輸出格式) \output\Formatter.php
1 成員變量
~~~
private $decorated = false;
private $styles = [];
private $styleStack;
~~~
2 輸出內容轉義
`public static function escape($text)`
3 輸出格式初始化
`public function __construct()`
4 輸出美化控制
~~~
public function setDecorated($decorated)
public function isDecorated()
~~~
5 輸出樣式操作
~~~
public function setStyle($name, Style $style)
public function hasStyle($name)
public function getStyle($name)
public function getStyleStack()
~~~
6 格式化輸出內容
`public function format($message)`
7 創建輸出樣式
~~~
private function createStyleFromString($string)
~~~
8 應用當前輸出樣式
~~~
private function applyCurrentStyle($text)
~~~
### 4 (輸出樣式棧)\output\formatter\Stack.php
1 成員變量
~~~
private $styles;
private $emptyStyle;
~~~
2 構造函數
~~~
public function __construct(Style $emptyStyle = null)
~~~
3 清空輸出樣式棧
`public function reset()`
4 添加輸出樣式到棧
`public function push(Style $style)`
5 彈出棧一個樣式
`public function pop(Style $style = null)`
6 獲取堆棧的頂層樣式
`public function getCurrent()`
6 空樣式操作
~~~
public function setEmptyStyle(Style $emptyStyle)
public function getEmptyStyle()
~~~
### 5 (輸出樣式)\output\formatter\Style.php
1 成員變量
~~~
private static $availableForegroundColors
private static $availableBackgroundColors
private static $availableOptions
private $foreground;
private $background;
private $options = [];
~~~
2 構造函數
`public function __construct($foreground = null, $background = null, array $options = [])`
3 設置字體顏色
`public function setForeground($color = null)`
4 設置背景色
`public function setBackground($color = null)`
5 設置字體格式
~~~
public function setOption($option)
~~~
6 重置字體格式
~~~
public function unsetOption($option)
~~~
7 批量設置字體格式
`public function setOptions(array $options)`
8 應用樣式到文字
`public function apply($text)`
## 4 控制臺命令
### 1 (命令行父類)\command\Command.php
1 成員變量
~~~
private $console;
private $name;
private $aliases = [];
private $definition;
private $help;
private $description;
private $ignoreValidationErrors = false;
private $consoleDefinitionMerged = false;
private $consoleDefinitionMergedWithArgs = false;
private $code;
private $synopsis = [];
private $usages = [];
private $helperSet;
~~~
2 構造函數
~~~
public function __construct($name = null)
~~~
3 忽略驗證錯誤
`public function ignoreValidationErrors()`
4 控制臺操作
~~~
public function setConsole(Console $console = null)
public function getConsole()
~~~
5 幫助集操作
~~~
public function setHelperSet(HelperSet $helperSet)
public function getHelperSet()
public function getHelper($name)
~~~
6 指令是否有效
`public function isEnabled()`
7 指令配置
`protected function configure()`
8 指令的執行實現
~~~
protected function execute(Input $input, Output $output)
~~~
9 用戶驗證
`protected function interact(Input $input, Output $output)`
10 命令初始化回調
`protected function initialize(Input $input, Output $output)`
11 命令的執行接口
`public function run(Input $input, Output $output)`
12 執行代碼設置
`public function setCode(callable $code)`
13 參數定義操作
~~~
public function mergeConsoleDefinition($mergeArgs = true)
public function setDefinition($definition)
public function getDefinition()
public function getNativeDefinition()
~~~
14 添加參數
`public function addArgument($name, $mode = null, $description = '', $default = null)`
15 添加選項
`public function addOption($name, $shortcut = null, $mode = null, $description = '', $default = null)`
16 指令名稱
~~~
public function setName($name)
public function getName()
~~~
17 指令描述
~~~
public function setDescription($description)
public function getDescription()
~~~
18 幫助信息
~~~
public function setHelp($help)
public function getHelp()
~~~
19 描述信息
`public function getProcessedHelp()`
20 別名操作
~~~
public function setAliases($aliases)
public function getAliases()
~~~
21 命令簡介
`public function getSynopsis($short = false)`
22 命令使用方法
~~~
public function addUsage($usage)
public function getUsages()
~~~
23 命令名稱驗證
~~~
private function validateName($name)
~~~
### 2 (自動構建應用命令)\command\Build.php
1 命令配置
`protected function configure()`
2 命令執行
~~~
protected function execute(Input $input, Output $output)
~~~
### 3 (列出命令)\command\Lists.php
1 命令配置
`protected function configure()`
2 命令定義
`public function getNativeDefinition()`
3 命令執行
`protected function execute(Input $input, Output $output)`
4 創建命令
`private function createDefinition()`
### 4 (幫助命令)\command\Help.php
1 命令配置
`protected function configure()`
2 命令添加
`public function setCommand(Command $command)`
3 命令執行
~~~
protected function execute(Input $input, Output $output)
~~~
### 5 (控制器創建命令)\command\make\Controller.php
1 構造函數
`public function __construct()`
### 6 (數據模型創建命令)\command\make\Model.php
1 構造函數
`public function __construct()`
## 5 控制臺助手
- 更新記錄
- 概述
- 文件索引
- 函數索引
- 章節格式
- 框架流程
- 前:章節說明
- 主:(index.php)入口
- 主:(start.php)框架引導
- 主:(App.php)應用啟動
- 主:(App.php)應用調度
- C:(Controller.php)應用控制器
- M:(Model.php)數據模型
- V:(View.php)視圖對象
- 附:(App.php)應用啟動
- 附:(base.php)全局變量
- 附:(common.php)模式配置
- 附:(convention.php)全局配置
- 附:(Loader.php)自動加載器
- 附:(Build.php)自動生成
- 附:(Hook.php)監聽回調
- 附:(Route.php)全局路由
- 附:(Response.php)數據輸出
- 附:(Log.php)日志記錄
- 附:(Exception.php)異常處理
- 框架工具
- 另:(helper.php)輔助函數
- 另:(Cache.php)數據緩存
- 另:(Cookie.php)cookie操作
- 另:(Console.php)控制臺
- 另:(Debug.php)開發調試
- 另:(Error.php)錯誤處理
- 另:(Url.php)Url操作文件
- 另:(Loader.php)加載器實例化
- 另:(Input.php)數據輸入
- 另:(Lang.php)語言包管理
- 另:(ORM.php)ORM基類
- 另:(Process.php)進程管理
- 另:(Session.php)session操作
- 另:(Template.php)模板解析
- 框架驅動
- D:(\config)配置解析
- D:(\controller)控制器擴展
- D:(\model)模型擴展
- D:(\db)數據庫驅動
- D:(\view)模板解析
- D:(\template)模板標簽庫
- D:(\session)session驅動
- D:(\cache)緩存驅動
- D:(\console)控制臺
- D:(\process)進程擴展
- T:(\traits)Trait目錄
- D:(\exception)異常實現
- D:(\log)日志驅動
- 使用范例
- 服務器與框架的安裝
- 控制器操作
- 數據模型操作
- 視圖渲染控制
- MVC開發初探
- 模塊開發
- 入口文件定義全局變量
- 運行模式開發
- 框架配置
- 自動生成應用
- 事件與插件注冊
- 路由規則注冊
- 輸出控制
- 多種應用組織
- 綜合應用
- tp框架整合后臺auto架構快速開發
- 基礎原理
- php默認全局變量
- php的魔術方法
- php命名空間
- php的自動加載
- php的composer
- php的反射
- php的trait機制
- php設計模式
- php的系統時區
- php的異常錯誤
- php的輸出控制
- php的正則表達式
- php的閉包函數
- php的會話控制
- php的接口
- php的PDO
- php的字符串操作
- php的curl
- 框架心得
- 心:整體結構
- 心:配置詳解
- 心:加載器詳解
- 心:輸入輸出詳解
- 心:url路由詳解
- 心:模板詳解
- 心:模型詳解
- 心:日志詳解
- 心:緩存詳解
- 心:控制臺詳解
- 框架更新
- 4.20(驗證類,助手函數)
- 4.27(新模型Model功能)
- 5.4(新數據庫驅動)
- 7.28(自動加載)