Patcher

A Unified Diff Format Patcher class

link

This has been derived from the PhpPatcher version 0.1.1 written by Giuseppe Mazzotta

since

1.0

package

Joomla Framework

Methods

__construct

Constructor

__construct() : 

The constructor is protected to force the use of Patcher::getInstance()

since

1.0

Response

mixed

add

Add a unified diff string to the patcher

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

1.0

Arguments

udiff

stringUnified diff input string

root

stringThe files root path

strip

intThe number of '/' to strip

Response

Patcher$this for chaining

addFile

Add a unified diff file to the patcher

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

1.0

Arguments

filename

stringPath to the unified diff file

root

stringThe files root path

strip

intThe number of '/' to strip

Response

Patcher$this for chaining

apply

Apply the patches

apply() : 
since

1.0

throws

RuntimeException

Response

intThe number of files patched

applyHunk

Apply the patch

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

1.0

throws

RuntimeException

Arguments

lines

array<string|int, mixed>The udiff array of lines

src

stringThe source file

dst

stringThe destination file

srcLine

intThe beginning of the patch for the source file

srcSize

intThe size of the patch for the source file

dstLine

intThe beginning of the patch for the destination file

dstSize

intThe size of the patch for the destination file

Response

void

findHeader

Find the diff header

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

The internal array pointer of $lines is on the next line after the finding

since

1.0

throws

RuntimeException

Arguments

lines

array<string|int, mixed>The udiff array of lines

src

stringThe source file

dst

stringThe destination file

Response

boolTRUE in case of success, FALSE in case of failure

findHunk

Find the next hunk of difference

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

The internal array pointer of $lines is on the next line after the finding

since

1.0

throws

RuntimeException

Arguments

lines

array<string|int, mixed>The udiff array of lines

srcLine

intThe beginning of the patch for the source file

srcSize

intThe size of the patch for the source file

dstLine

intThe beginning of the patch for the destination file

dstSize

intThe size of the patch for the destination file

Response

boolTRUE in case of success, false in case of failure

getDestination

Get the lines of a destination file

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

1.0

Arguments

dst

stringThe path of a destination file

src

stringThe path of a source file

Response

array<string|int, mixed>The lines of the destination file

getInstance

Method to get a patcher

getInstance() : \Joomla\Filesystem\Patcher
static
since

1.0

Response

Patcheran instance of the patcher

getSource

Get the lines of a source file

getSource( src) : mixed||string|int
since

1.0

Arguments

src

stringThe path of a file

Response

array<string|int, mixed>The lines of the source file

reset

Reset the pacher

reset() : \Joomla\Filesystem\Patcher
since

1.0

Response

PatcherThis object for chaining

splitLines

Separate CR or CRLF lines

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

1.0

Arguments

data

stringInput string

Response

array<string|int, mixed>The lines of the input destination file

Constants

SRC_FILE

Regular expression for searching source files

Value '/^---\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'
since

1.0

Type(s)

string

DST_FILE

Regular expression for searching destination files

Value '/^\+\+\+\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'
since

1.0

Type(s)

string

HUNK

Regular expression for searching hunks of differences

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

1.0

Type(s)

string

SPLIT

Regular expression for splitting lines

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

1.0

Type(s)

string

Properties

sources

Source files

since

1.0

Type(s)

array<string|int, mixed>

destinations

Destination files

since

1.0

Type(s)

array<string|int, mixed>

removals

Removal files

since

1.0

Type(s)

array<string|int, mixed>

patches

Patches

since

1.0

Type(s)

array<string|int, mixed>

instance

Singleton instance of this class

static
since

1.0

Type(s)

Patcher|null