class CRM_Core_CodeGen_Schema extends CRM_Core_CodeGen_BaseTask

Create SQL files to create and populate a new schema.

Properties

protected CRM_Core_CodeGen_Main $config from CRM_Core_CodeGen_BaseTask
protected $tables from CRM_Core_CodeGen_BaseTask

Methods

__construct(CRM_Core_CodeGen_Main $config)

CRM_Core_CodeGen_Schema constructor.

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.

generateCreateSql(string $fileName = 'civicrm.mysql')

No description

generateDropSql(string $fileName = 'civicrm_drop.mysql')

No description

generateNavigation()

No description

generateLocaleDataSql()

No description

generateSample()

No description

array
findLocales()

No description

Details

at line 13
__construct(CRM_Core_CodeGen_Main $config)

CRM_Core_CodeGen_Schema constructor.

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 18
run()

Perform the task.

at line 37
generateCreateSql(string $fileName = 'civicrm.mysql')

Parameters

string $fileName

at line 53
generateDropSql(string $fileName = 'civicrm_drop.mysql')

Parameters

string $fileName

at line 61
generateNavigation()

at line 67
generateLocaleDataSql()

at line 97
generateSample()

at line 111
array findLocales()

Return Value

array