Инструменты пользователя

Инструменты сайта


limb3:ru:packages:core:handles

Средства для отложенной инициализации объектов (Хендлы). Класс lmbHandle

Иногда объекты инициализировать слишком дорого, особенно если может возникнуть ситуация, что выполнение программы никогда до них не дойдет. Для таких случаев в Limb3 есть так называемые хендлы, которые реализованы в виде класса lmbHandle

lmbHandle - используется для отложенной инициализации объектов. lmbHandle наследуется от lmbProxy. По сути хендл - это прокси-объект, которые ведет себя как объект, который он замещает, и который загружает (инициализирует) проксируемый объект при первой реальной необходимости.

Конструктор lmbHandle принимает 2 параметра: путь до файла с классом и массив параметров, которые будут переданы в конструктор проксируемого объекта при его инициализации, когда это станет необходимым.

При использовании lmbHandle рекомендуется соблюдать соглашение, что для каждого класса создается отдельный файл. Так как в Limb3 каждый класс находится в отдельном файле названном по имени класса, то при создании хендла можно указать только путь до файла без расширения .class.php:

$filter = new lmbHandle('src/filter/lmbMyFilter', array($params));

Если у нас нарушается схема 1 класс - 1 файл с суффиксом .class.php, то можно использовать другой вызов, где имя класса указывается третьим параметром:

$filter = new lmbHandle('/src/filter/MyClasses.inc.php', array($params), 'lmbMyFilter');

lmbHandle является полноценным lmbProxy-объектом, поэтому при его использовании совсем не обязательно вызывать метод lmbHandle :: resolve() - это делается автоматически при первом обращении к любому методу или атрибуту lmbProxy-класса.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
  _____   _  __   _  __   ___    ____
 / ___/  | |/_/  | |/_/  / _ \  / __/
/ (_ /  _>  <   _>  <   / // / _\ \  
\___/  /_/|_|  /_/|_|  /____/ /___/
 
limb3/ru/packages/core/handles.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)