litert / delay-initializer
A simple delay-initializer library for PHP.
Installs: 344
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
pkg:composer/litert/delay-initializer
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.