Patcher

A Unified Diff Format Patcher class

link

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

since

3.0.0

package

Application

Methods

__construct

Constructor

__construct() : mixed

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

since

3.0.0

Response

mixed

add

Add a unified diff string to the patcher

add(string udiff, string root = JPATH_BASE, int strip) : \Joomla\CMS\Filesystem\Patcher
since

3.0.0

Arguments

udiff

stringUnified diff input string

root

stringThe files root path

strip

intThe number of '/' to strip

Response

\Joomla\CMS\Filesystem\Patcher$this for chaining

addFile

Add a unified diff file to the patcher

addFile(string filename, string root = JPATH_BASE, int strip) : \Joomla\CMS\Filesystem\Patcher
since

3.0.0

Arguments

filename

stringPath to the unified diff file

root

stringThe files root path

strip

intThe number of '/' to strip

Response

\Joomla\CMS\Filesystem\Patcher$this for chaining

apply

Apply the patches

apply() : int
since

3.0.0

throws

\RuntimeException

Response

intThe number of files patched

applyHunk

Apply the patch

applyHunk(array &lines, string src, string dst, string srcLine, string srcSize, string dstLine, string dstSize) : void
since

3.0.0

throws

\RuntimeException

Arguments

lines

arrayThe udiff array of lines

src

stringThe source file

dst

stringThe destination file

srcLine

stringThe beginning of the patch for the source file

srcSize

stringThe size of the patch for the source file

dstLine

stringThe beginning of the patch for the destination file

dstSize

stringThe size of the patch for the destination file

findHeader

Find the diff header

findHeader(array &lines, string &src, string &dst) : bool
static

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

since

3.0.0

throws

\RuntimeException

Arguments

lines

arrayThe 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(array &lines, string &srcLine, string &srcSize, string &dstLine, string &dstSize) : bool
static

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

since

3.0.0

throws

\RuntimeException

Arguments

lines

arrayThe udiff array of lines

srcLine

stringThe beginning of the patch for the source file

srcSize

stringThe size of the patch for the source file

dstLine

stringThe beginning of the patch for the destination file

dstSize

stringThe 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(string dst, string src) : array
since

3.0.0

Arguments

dst

stringThe path of a destination file

src

stringThe path of a source file

Response

arrayThe lines of the destination file

getInstance

Method to get a patcher

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

3.0.0

Response

\Joomla\CMS\Filesystem\Patcheran instance of the patcher

getSource

Get the lines of a source file

getSource(string src) : array
since

3.0.0

Arguments

src

stringThe path of a file

Response

arrayThe lines of the source file

reset

Reset the patcher

reset() : \Joomla\CMS\Filesystem\Patcher
since

3.0.0

Response

\Joomla\CMS\Filesystem\PatcherThis object for chaining

splitLines

Separate CR or CRLF lines

splitLines(string data) : array
static
since

3.0.0

Arguments

data

stringInput string

Response

arrayThe lines of the inputdestination 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'

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'

HUNK

Regular expression for searching hunks of differences

Value '/@@ -(\\d+)(,(\\d+))?\\s+\\+(\\d+)(,(\\d+))?\\[email protected]@($)/A'

SPLIT

Regular expression for splitting lines

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

Properties

sources

sources files

since

3.0.0

Type(s)

array

destinations

destination files

since

3.0.0

Type(s)

array

removals

removal files

since

3.0.0

Type(s)

array

patches

patches

since

3.0.0

Type(s)

array

instance

instance of this class

static
since

3.0.0

Type(s)

array