iluhansk / yii2-lazy
implementation pattern design 'lazy load' for components of yii2
Installs: 9
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2025-05-07 04:34:06 UTC
README
implementation pattern design "lazy load" for components of yii2
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist iluhansk/yii2-lazy "*"
or add
"iluhansk/yii2-lazy": "*"
to the require section of your composer.json
file.
Usage
Add LazyBehavior to target class and define methods corresponding lazy properties:
namespace common\components; use \yii\base\Component; use iluhansk\renderer\LazyBehavior; /** * @property int $passengersCount Count of passengers in the car */ class Car extends Component { public function behaviors() { return [ 'lazy' => [ 'class' => LazyBehavior::className() ], ]; } public function lazy_passengersCount() { //some logic here, for example: return rand(1,4); } }
And use lazy property in any place:
use common\components\Car; echo "PassengersCount first call: $o->passengersCount
"; //first use lazy property will call lazy_passengersCount method of object echo "PassengersCount second call: $o->passengersCount
"; //this will return stored value (and not call lazy_passengersCount method again)