class CRM_Core_CodeGen_Version extends CRM_Core_CodeGen_BaseTask

Generate configuration files

Properties

protected CRM_Core_CodeGen_Main $config from CRM_Core_CodeGen_BaseTask
protected $tables from CRM_Core_CodeGen_BaseTask

Methods

setConfig(object $config)

TODO: this is the most rudimentary possible hack. CG config should eventually be made into a first-class object.

bool
needsUpdate()

No description

static string|NULL
extractRegex(string $file, string $regex)

Extract a single regex from a file.

bool
isApproxPhpMatch($actual, $expected)

Determine if two snippets of PHP code are approximately equivalent.

run()

Perform the task.

Details

__construct(CRM_Core_CodeGen_Main $config)

Parameters

CRM_Core_CodeGen_Main $config

setConfig(object $config)

TODO: this is the most rudimentary possible hack. CG config should eventually be made into a first-class object.

Parameters

object $config

bool needsUpdate()

Return Value

bool TRUE if an update is needed.

static protected string|NULL extractRegex(string $file, string $regex)

Extract a single regex from a file.

Parameters

string $file File name
string $regex A pattern to match. Ex: "foo=([a-z]+)".

Return Value

string|NULL The value matched.

protected bool isApproxPhpMatch($actual, $expected)

Determine if two snippets of PHP code are approximately equivalent.

This includes exceptions to equivalence for (a) whitespace and (b) the token "GenCodeChecksum".

This is useful for determining if someone has manually mucked with one the files. However, it's not perfect -- because whitespace changes are not detected. Hence, it's good to use in combination with another heuristic.

Parameters

$actual
$expected

Return Value

bool

at line 7
run()

Perform the task.