litert / delay-initializer
This package is abandoned and no longer maintained.
No replacement package was suggested.
A simple delay-initializer library for PHP.
0.3.0
2017-11-07 09:41 UTC
Requires
- php: >=7.0.0
- litert/core: ^0.2.0
This package is not auto-updated.
Last update: 2023-01-18 23:27:28 UTC
README
A simple delay-initializer and dependency injection library for PHP.
Installation
It's recommended to install by composer:
composer require litert/delay-initializer
Or just git clone this repository, and put the lib directory into you project.
Samples
Using the delay initializer.
<?php declare (strict_types = 1); require 'vendor/autoload.php'; /** * @property string $hello */ class Tester implements \L\Kits\DelayInit\PropertyContainerEx { use \L\Kits\DelayInit\TPropertyContainerEx; public function __construct() { $this->_initializeDelayInit(); $this->setInitializer( 'hello', function() { echo 'Initialized "hello" here.', PHP_EOL; return 'world'; } ); } } $tester = new Tester(); echo 'Now try reading the property "hello" of $tester.', PHP_EOL; echo $tester->hello, PHP_EOL;
Using the dependency injection container
<?php declare (strict_types = 1); require 'vendor/autoload.php'; /** * @property string $name * @property int $age */ class MyDI extends \L\Kits\DelayInit\PropertyDIContainer { } $di = new MyDI(); $di->setInitializer( 'name', function () { return 'Mike'; } ); $di->setInitializer( 'age', function() { return 17; } ); echo "Hi, I'm {$di->name}. I'm {$di->age}.", PHP_EOL;
Document
- English (Preparing yet)
- 简体中文版
License
This library is published under Apache-2.0 license.