====== Средства для отложенной инициализации объектов (Хендлы). Класс lmbHandle ====== Иногда объекты инициализировать слишком дорого, особенно если может возникнуть ситуация, что выполнение программы никогда до них не дойдет. Для таких случаев в Limb3 есть так называемые **хендлы**, которые реализованы в виде класса lmbHandle **lmbHandle** - используется для отложенной инициализации объектов. lmbHandle наследуется от [[lmb_proxy|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 является полноценным [[lmb_proxy|lmbProxy]]-объектом, поэтому при его использовании совсем не обязательно вызывать метод lmbHandle :: resolve() - это делается автоматически при первом обращении к любому методу или атрибуту lmbProxy-класса.