<?php
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;
}
public static function Version(){
echo 'version 0.11';
}
}
PD9waHAKCmNsYXNzIFJlZ2lzdHJ5CnsKICAgIC8qKgogICAgICog0KHRgtCw0YLQuNGH0LXRgdC60L7QtSDRhdGA0LDQvdC40LvQuNGJ0LUg0LTQu9GPINC00LDQvdC90YvRhQogICAgICovCiAgICBwcm90ZWN0ZWQgc3RhdGljICRzdG9yZSA9IGFycmF5KCk7CgogICAgLyoqCiAgICAgKiDQl9Cw0YnQuNGC0LAg0L7RgiDRgdC+0LfQtNCw0L3QuNGPINGN0LrQt9C10LzQv9C70Y/RgNC+0LIg0YHRgtCw0YLQuNGH0LXRgdC60L7Qs9C+INC60LvQsNGB0YHQsAogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKQogICAgewogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfX2Nsb25lKCkKICAgIHsKICAgIH0KCiAgICAvKioKICAgICAqINCf0YDQvtCy0LXRgNGP0LXRgiDRgdGD0YnQtdGB0YLQstGD0Y7RgiDQu9C4INC00LDQvdC90YvQtSDQv9C+INC60LvRjtGH0YMKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCiAgICAgKiBAcmV0dXJuIGJvb2wKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBleGlzdHMoJG5hbWUpCiAgICB7CiAgICAgICAgcmV0dXJuIGlzc2V0KHNlbGY6OiRzdG9yZVskbmFtZV0pOwogICAgfQoKICAgIC8qKgogICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LTQsNC90L3Ri9C1INC/0L4g0LrQu9GO0YfRgyDQuNC70LggbnVsbCwg0LXRgdC70Lgg0L3QtSDQtNCw0L3QvdGL0YUg0L3QtdGCCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZQogICAgICogQHJldHVybiB1bmtub3duCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0KCRuYW1lKQogICAgewogICAgICAgIHJldHVybiAoaXNzZXQoc2VsZjo6JHN0b3JlWyRuYW1lXSkpID8gc2VsZjo6JHN0b3JlWyRuYW1lXSA6IG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiDQodC+0YXRgNCw0L3Rj9C10YIg0LTQsNC90L3Ri9C1INC/0L4g0LrQu9GO0YfRgyDQsiDRgdGC0LDRgtC40YfQtdGB0LrQvtC8INGF0YDQsNC90LjQu9C40YnQtQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKICAgICAqIEBwYXJhbSB1bmtub3duICRvYmoKICAgICAqIEByZXR1cm4gdW5rbm93bgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNldCgkbmFtZSwgJG9iaikKICAgIHsKICAgICAgICByZXR1cm4gc2VsZjo6JHN0b3JlWyRuYW1lXSA9ICRvYmo7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBWZXJzaW9uKCl7CgogICAgICAgIGVjaG8gJ3ZlcnNpb24gMC4xMSc7CiAgICB9Cn0=