<?php
ini_set('include_path', '.' . PATH_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'packages' . PATH_SEPARATOR . '..');
-ini_set('memory_limit', '512M');
+// make sure the memory_limit is at least 512 MB
+$memLimitString = trim(ini_get('memory_limit'));
+$memLimitUnit = strtolower(substr($memLimitString, -1));
+$memLimit = (int) $memLimitString;
+switch ($memLimitUnit) {
+ case 'g': $memLimit *= 1024;
+ case 'm': $memLimit *= 1024;
+ case 'k': $memLimit *= 1024;
+}
+
+if ($memLimit >= 0 and $memLimit < 536870912) {
+ ini_set('memory_limit', '512M');
+}
date_default_timezone_set('UTC'); // avoid php warnings if timezone is not set - CRM-10844
define('CIVICRM_UF', 'Drupal');
function generateListAll($tables) {
$this->smarty->clear_all_assign();
$this->smarty->assign('tables', $tables);
- file_put_contents($this->CoreDAOCodePath . "../AllCoreTables.php", $this->smarty->fetch('listAll.tpl'));
+ file_put_contents($this->CoreDAOCodePath . "AllCoreTables.php", $this->smarty->fetch('listAll.tpl'));
}
function generateCiviTestTruncate($tables) {
function generateCreateSql($database, $tables, $fileName = 'civicrm.mysql') {
echo "Generating sql file\n";
- $this->smarty->clear_all_assign();
+ $this->reset_smarty_assignments();
$this->smarty->assign_by_ref('database', $database);
$this->smarty->assign_by_ref('tables', $tables);
$dropOrder = array_reverse(array_keys($tables));
function generateNavigation() {
echo "Generating navigation file\n";
- $this->smarty->clear_all_assign();
+ $this->reset_smarty_assignments();
file_put_contents($this->sqlCodePath . "civicrm_navigation.mysql", $this->smarty->fetch('civicrm_navigation.tpl'));
}
function generateLocalDataSql($db_version, $locales) {
- $this->smarty->clear_all_assign();
+ $this->reset_smarty_assignments();
global $tsLocale;
$oldTsLocale = $tsLocale;
}
function generateSample() {
- $this->smarty->clear_all_assign();
+ $this->reset_smarty_assignments();
$sample = $this->smarty->fetch('civicrm_sample.tpl');
$sample .= $this->smarty->fetch('civicrm_acl.tpl');
file_put_contents($this->sqlCodePath . 'civicrm_sample.mysql', $sample);
}
function generateDAOs($tables) {
- $this->smarty->clear_all_assign();
foreach (array_keys($tables) as $name) {
$this->smarty->clear_all_cache();
echo "Generating $name as " . $tables[$name]['fileName'] . "\n";
- $this->smarty->clear_all_assign();
+ $this->reset_smarty_assignments();
$this->smarty->assign_by_ref('table', $tables[$name]);
$php = $this->smarty->fetch('dao.tpl');
}
}
- $this->smarty->clear_all_cache();
- $this->smarty->clear_all_assign();
+ $this->reset_smarty_assignments();
$this->smarty->assign_by_ref('columns', $columns);
$this->smarty->assign_by_ref('indices', $indices);
function getTable($tableXML, &$database, &$tables) {
$name = trim((string ) $tableXML->name);
$klass = trim((string ) $tableXML->class);
- $base = $this->value('base', $tableXML) . '/DAO/';
- $pre = str_replace('/', '_', $base);
+ $base = $this->value('base', $tableXML);
+ $sourceFile = "xml/schema/{$base}/{$klass}.xml";
+ $daoPath = "{$base}/DAO/";
+ $pre = str_replace('/', '_', $daoPath);
$this->classNames[$name] = $pre . $klass;
$localizable = FALSE;
$table = array(
'name' => $name,
- 'base' => $base,
+ 'base' => $daoPath,
+ 'sourceFile' => $sourceFile,
'fileName' => $klass . '.php',
'objectName' => $klass,
'labelName' => substr($name, 8),
}
return 'CRM_Utils_Type::HUGE';
}
+
+ /**
+ * Clear the smarty cache and assign default values
+ */
+ function reset_smarty_assignments() {
+ $this->smarty->clear_all_assign();
+ $this->smarty->clear_all_cache();
+ $this->smarty->assign('generated', "DO NOT EDIT. Generated by " . basename(__FILE__));
+ }
}