Пример #1
0
 /**
  * Класс для создания экземпляра источника данных.
  * 
  * @param string $mident - идентификатор маппинга. Должен совпадать для источника и цели.
  * @param array $params - параметры. Используются для уточнения, что необходимо загрузить (например идентификатор фолдинга).
  * @return MappingSource
  */
 public static final function inst($mident, array $params = array())
 {
     //Получим название класса-имплементации
     $class = get_called_class();
     //Отсортируем параметры
     ksort_deep($params);
     //Получим hash загрузчика данных
     $hash = simple_hash(array('class' => $class, 'params' => $params, 'mident' => $mident));
     if (!array_key_exists($hash, self::$items)) {
         self::$items[$hash] = new $class($class, $params, $mident, $hash);
     }
     return self::$items[$hash];
 }
Пример #2
0
function simple_hash($data)
{
    $data = to_array($data);
    ksort_deep($data);
    return md5(serialize($data));
}