Skip to content
This repository has been archived by the owner on Dec 10, 2019. It is now read-only.

Commit

Permalink
Обновлен ридми
Browse files Browse the repository at this point in the history
  • Loading branch information
iiifx committed Dec 1, 2015
1 parent 64fbee3 commit bb01941
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class DeepThought
{
return $this->lazyInit(function () {
return 42;
}, __METHOD__);
});
}
}

Expand All @@ -54,7 +54,7 @@ $ composer require "iiifx-production/lazy-init:0.3.*"

## Использование

LazyInitTrait содержит метод lazyInit() и свойство $lazyInitData, в котором буферизирует результаты вычислений.
LazyInitTrait содержит метод lazyInit() и свойство $lazyInitData, в котором буферизирует результаты вычислений. Предназначен для использования в объектах в динамическом контексте.

``` php
mixed lazyInit( Closure $container, string $key = NULL, array $params = [] )
Expand All @@ -64,6 +64,16 @@ mixed lazyInit( Closure $container, string $key = NULL, array $params = [] )
- **$key** - Ключ для сохранения результата вычисления, как правило используется `__METHOD__`. Если не указывать ключ, то он будет сгенерирован автоматически.
- **$params** - Дополнительные данные, которые будут переданы в Closure-контейнер при его запуске.

LazyInitStaticTrait содержит метод lazyInitStatic() и свойство $lazyInitStaticData, в котором буферизирует результаты вычислений. Предназначен для использования в статических классах в статическом контексте.

``` php
mixed lazyInitStatic( Closure $container, string $key = NULL, array $params = [] )
```
Параметры метода аналогичны.

Методы способны автоматически генерировать $key для буферизации данных основываясь на точке вызова в коде. Это реализуется с использованием функции [debug_backtrace()][link-debug-backtrace].

## Примеры

Простой геттер:
``` php
Expand Down Expand Up @@ -280,3 +290,4 @@ echo Multiton::getInstance('master')->key; # 'master'
[link-wikipedia-lazyinit]: https://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D0%B8%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F
[link-wikipedia-singleton]: https://ru.wikipedia.org/wiki/%D0%9E%D0%B4%D0%B8%D0%BD%D0%BE%D1%87%D0%BA%D0%B0_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
[link-wikipedia-multiton]: https://en.wikipedia.org/wiki/Multiton_pattern
[link-debug-backtrace]: http://www.php.net/manual/ru/function.debug-backtrace.php

0 comments on commit bb01941

Please sign in to comment.