Patcher

一个统一的 Diff 格式 Patcher 类

链接

此类派生自 Giuseppe Mazzotta 编写的 PhpPatcher 版本 0.1.1

1.0

Joomla 框架

方法

__construct

构造函数

__construct() : 

构造函数被保护以强制使用 Patcher::getInstance()

1.0

响应

混合

add

将统一的 diff 字符串添加到 patcher 中

add( udiff,  root,  strip) : \Joomla\Filesystem\Patcher

1.0

参数

udiff

string统一的 diff 输入字符串

root

string文件的根路径

strip

int要剥离的 '/' 的数量

响应

Patcher$this 用于链式调用

addFile

将统一的 diff 文件添加到 patcher 中

addFile( filename,  root,  strip) : \Joomla\Filesystem\Patcher

1.0

参数

filename

string统一 diff 文件的路径

root

string文件的根路径

strip

int要剥离的 '/' 的数量

响应

Patcher$this 用于链式调用

apply

应用补丁

apply() : 

1.0

抛出

RuntimeException

响应

int已修补的文件数量

applyHunk

应用补丁

applyHunk(mixed||string|int &lines,  src,  dst,  srcLine,  srcSize,  dstLine,  dstSize) : 

1.0

抛出

RuntimeException

参数

lines

array<string|int, mixed>udiff 行数组

src

string源文件

dst

string目标文件

srcLine

string源文件的补丁开始

srcSize

string源文件的补丁大小

dstLine

string目标文件的补丁开始

dstSize

string目标文件的补丁大小

响应

void

findHeader

查找 diff 标头

findHeader(mixed||string|int &lines,  &src,  &dst) : 
static

$lines 的内部数组指针位于查找结果的下一行

1.0

抛出

RuntimeException

参数

lines

array<string|int, mixed>udiff 行数组

src

string源文件

dst

string目标文件

响应

bool如果成功则为 TRUE,如果失败则为 FALSE

findHunk

查找下一个差异块

findHunk(mixed||string|int &lines,  &srcLine,  &srcSize,  &dstLine,  &dstSize) : 
static

$lines 的内部数组指针位于查找结果的下一行

1.0

抛出

RuntimeException

参数

lines

array<string|int, mixed>udiff 行数组

srcLine

string源文件的补丁开始

srcSize

string源文件的补丁大小

dstLine

string目标文件的补丁开始

dstSize

string目标文件的补丁大小

响应

bool如果成功则为 TRUE,如果失败则为 FALSE

getDestination

获取目标文件的行

getDestination( dst,  src) : mixed||string|int

1.0

参数

dst

string目标文件的路径

src

string源文件的路径

响应

array<string|int, mixed>目标文件的行

getInstance

获取 patcher 的方法

getInstance() : \Joomla\Filesystem\Patcher
static

1.0

响应

Patcherpatcher 的实例

getSource

获取源文件的行

getSource( src) : mixed||string|int

1.0

参数

src

string文件的路径

响应

array<string|int, mixed>源文件的行

reset

重置 pacher

reset() : \Joomla\Filesystem\Patcher

1.0

响应

Patcher此对象用于链式调用

splitLines

分离 CR 或 CRLF 行

splitLines( data) : mixed||string|int
static

1.0

参数

data

string输入字符串

响应

array<string|int, mixed>输入目标文件的行

常量

SRC_FILE

用于搜索源文件的正则表达式

'/^---\s+(\S+)\s+\d{1,4}-\d{1,2}-\d{1,2}\s+\d{1,2}:\d{1,2}:\d{1,2}(\.\d+)?\s+(\+|-)\d{4}/A'

1.0

类型

string

DST_FILE

用于搜索目标文件的正则表达式

'/^\+\+\+\s+(\S+)\s+\d{1,4}-\d{1,2}-\d{1,2}\s+\d{1,2}:\d{1,2}:\d{1,2}(\.\d+)?\s+(\+|-)\d{4}/A'

1.0

类型

string

HUNK

用于搜索差异块的正则表达式

'/@@ -(\d+)(,(\d+))?\s+\+(\d+)(,(\d+))?\s+@@($)/A'

1.0

类型

string

SPLIT

用于拆分行的正则表达式

'/(\r\n)|(\r)|(\n)/'

1.0

类型

string

属性

sources

源文件

1.0

类型

array<string|int, mixed>

destinations

目标文件

1.0

类型

array<string|int, mixed>

removals

移除文件

1.0

类型

array<string|int, mixed>

patches

补丁

1.0

类型

array<string|int, mixed>

instance

此类的单例实例

static

1.0

类型

Patcher