Уже два дня бьюсь с такой проблемой, есть cron job в SugarCRM, он каждый период времени выполняет некую логику и заполняет массив.
Из другого сценария в расширении модуля "Accounts" - я хочу получать этот массив. Вот тестовый пример:
код работы (/var/www/sugarcrm/custom/Extension/modules/Schedulers/Ext/ScheduledTasks/acc_activities.php):
<?php
require_once('custom/registry.php');
array_push($job_strings, 'acc_activities');
function acc_activities() {
$color['1'] = 'green';
$GLOBALS['log']->debug('color:' . $color['1']);
Registry::set('color', $color);
return true;
}
Код кастомизации модуля, там где происходит дебаг.(/var/www/sugarcrm/custom/modules/Accounts/views/view.list.php):
require_once('include/MVC/View/views/view.list.php');
require_once('custom/registry.php');
class AccountsViewList extends ViewList
{
public function preDisplay()
{
$color = Registry::get('color');
var_dump($color);
parent::preDisplay();
$this->lv->targetList = true;
}
}
И собственно код Registory(/var/www/sugarcrm/custom/registry.php)
<?php
/**
* Статический класс registry
*/
class Registry
{
/**
* Статическое хранилище для данных
*/
protected static $store = array();
/**
* Защита от создания экземпляров статического класса
*/
protected function __construct() {}
protected function __clone() {}
/**
* Проверяет существуют ли данные по ключу
*
* @param string $name
* @return bool
*/
public static function exists($name)
{
return isset(self::$store[$name]);
}
/**
* Возвращает данные по ключу или null, если не данных нет
*
* @param string $name
* @return unknown
*/
public static function get($name)
{
return (isset(self::$store[$name])) ? self::$store[$name] : null;
}
/**
* Сохраняет данные по ключу в статическом хранилище
*
* @param string $name
* @param unknown $obj
* @return unknown
*/
public static function set($name, $obj)
{
return self::$store[$name] = $obj;
}
}
?>
Так вот в представлении var_dump всегда возвращает NULL...