Форум → Программирование → PHP для идиотов → PHP и ООП → непонятки с ООП
непонятки с ООП
Страницы: ← Предыдущая страница • Следующая страница →
-
Май 8, 2010, 11:46 п.п., спустя 20 минут 59 секунд
тогда сразу делай адаптеры. И внутри своего logout делай $this->adapter->logout -
Май 9, 2010, 1:36 д.п., спустя 1 час 49 минут 38 секунд
Синглтон для единственности экземпляра класс. Это делается для ЕДИНСТВЕННОСТИ. Если ты, например, добавляешь объекты в поле класс, например в массив, то ты можешь добавить объекты в один экземпляр, а можешь в несколько. Так вот если тебе надо только в один, то надо использовать синглтон. Вот такой синий расклад )) -
Май 9, 2010, 7:07 д.п., спустя 5 часов 31 минуту 5 секунд
SpartakuS, варианты:
- Singleton (т.к. статический метод можно вызвать из любой области видимости)
- Registry (т.к. статический метод можно вызвать из любой области видимости)
- передать готовый объект класса Cookie в конструктор User и сохранить в свойстве юзера.
Почитай про Инверсию зависимостиιιlllιlllι унц-унц -
Май 10, 2010, 8:13 п.п., спустя 1 день 13 часов 6 минут
добавлю еще ссылку к artoodetoo, про S.O.L.I.D вкратце - http://blog.byndyu.ru/2009/10/solid.html -
-
Май 31, 2010, 10:23 п.п., спустя 20 дней 23 часа 59 минут
Что то типа синглтон хранилища для глобал переменных. Хуита?<?php /* * Статический singlton класс, который служит для глобализации классов. * * @author vaseninm * @version 1.0 * */ class Pixelio { /* * Переменная в которой будет записан объект * @name $instance */ static private $instance = NULL; static function get() { if (self::$instance == NULL) { self::$instance = new Pixelio(); } return self::$instance; } static function set($name, $var) { if (self::$instance == NULL) { self::$instance = new Pixelio(); } self::$instance->{$name} = $var; } private function __construct(){} private function __clone(){} } ?>
-
Май 31, 2010, 10:27 п.п., спустя 4 минуты 35 секунд
if (self::$instance == NULL) { self::$instance = new Pixelio(); }
нахуй это?
заведи статическую переменную и в ней храни данные -
Май 31, 2010, 10:31 п.п., спустя 4 минуты 12 секунд
SpartakuS, вопервых метод укажи область видимости (паблик, протектед, приват)
это что за нах ?self::$instance = new Pixelio();
ты же вроде пишешь что класс статическийСпустя 18 сек.блять, миня апиридилиСпустя 67 сек./** * Registry collection * * @var array */ static private $_registry = array(); /** * Retrieve a value from registry by a key * * @param string $key * @return mixed */ public static function registry($key) { if (isset(self::$_registry[$key])) { return self::$_registry[$key]; } return null; } /** * Register a new variable * * @param string $key * @param mixed $value * @param bool $graceful * @throws Mage_Core_Exception */ public static function register($key, $value, $graceful = false) { if (isset(self::$_registry[$key])) { if ($graceful) { return; } self::throwException('Mage registry key "'.$key.'" already exists'); } self::$_registry[$key] = $value; }
-
Май 31, 2010, 10:33 п.п., спустя 1 минуту 28 секунд
Абырвалг, так чтоли?class Pixelio { /* * Переменная в которой будет записан объект * @name $instance */ static public function get($name) { return $this->{$name} ; } static public function set($name, $var) { $this->{$name} = $var; } }
-
Май 31, 2010, 10:34 п.п., спустя 1 минуту 37 секунд
внутри статик нельзя $this использоватьself::$container[$name] = $var
Спустя 43 сек.блять, миня апиридили
хе-хе) -
-
Май 31, 2010, 11:14 п.п., спустя 30 минут 43 секунды
<?php /* * Статический singlton класс, который служит для глобализации классов. * * @author vaseninm * @version 1.0 * */ class Pixelio { static private $_registry; /* * Доступ к классу. Получение переменных. * @name get * @param name * @return object */ static function get($name) { return self::$_registry[$name] ? self::$_registry[$name] : NULL; } /* * Записываем переменную в хранилище * @param $name Имя для обращения Pixelio::get('name') * @param $var Объект класса, к которому мы будем обращатся * @return bool */ static function set($name, $var) { if (isset(self::$_registry[$name])) { throw new Exception ('Такой объект уже записан.'); } else { self::$_registry[$name] = $var; return true; } } } ?>
Вот так? -
Май 31, 2010, 11:04 п.п., спустя 23 часа 50 минут 31 секунду
А ну в общем так. У нрг почти так же.Спустя 29 сек.А че посты не склеиваются?Спустя 14 сек.О бля. Склеиваются. -
Май 31, 2010, 11:05 п.п., спустя 1 минуту
if (self::$_registry[$name]) { return self::$_registry[$name]; } else { return NULL; }
можно через тренарный оператор в одну строку свернуть— self::$instance->{$name} = $var; +++ self::$registry[$name] = $var;
-
Май 31, 2010, 11:10 п.п., спустя 4 минуты 58 секунд
спасибо кэп =)if (self::$_registry[$name]) { return self::$_registry[$name]; } else { return NULL; }
можно через тренарный оператор в одну строку свернуть
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!