nick-lai/lazy-object
最新稳定版本:1.0.3
Composer 安装命令:
composer require nick-lai/lazy-object
包简介
A lightweight lazy object library for PHP 8.4+ project.
关键字:
README 文档
README
LazyObject
A lightweight lazy object library for PHP 8.4+ project.
Table of Contents
Requirements
LazyObject requires PHP >= 8.4.0.
Installation
composer require nick-lai/lazy-object
Usage
LazyObjectTrait
use NickLai\LazyObject\LazyObjectTrait; class NormalClass { use LazyObjectTrait; public function __construct( public string $name, ) { echo 'Initialized.' . PHP_EOL; } } // Output: Initialized. $normalClass = new NormalClass('Tom'); // Output: Hi, Tom! echo "Hi, {$normalClass->name}!" . PHP_EOL; $lazyObject = NormalClass::createLazyObject('Jerry'); // Outputs: // Initialized. // Hi, Jerry! echo "Hi, {$lazyObject->name}!" . PHP_EOL; $lazyObject = NormalClass::createLazyObjectByArgumentsGetter(fn () => [ 'name' => 'Spike', ]); // Outputs: // Initialized. // Hi, Spike! echo "Hi, {$lazyObject->name}!" . PHP_EOL; $lazyObject = NormalClass::createLazyObjectByInitializer(fn ($object) => $object->__construct( name: 'Tyke', )); // Outputs: // Initialized. // Hi, Tyke! echo "Hi, {$lazyObject->name}!" . PHP_EOL;
LazyObjectFactory
use NickLai\LazyObject\LazyObjectFactory; class NormalClass { public function __construct( public string $name, ) { echo 'Initialized.' . PHP_EOL; } } $factory = LazyObjectFactory::create(NormalClass::class); $lazyObject = $factory->createLazyObject('Jerry'); // Outputs: // Initialized. // Hi, Jerry! echo "Hi, {$lazyObject->name}!" . PHP_EOL; $lazyObject = $factory->createLazyObjectByArgumentsGetter(fn () => [ 'name' => 'Spike', ]); // Outputs: // Initialized. // Hi, Spike! echo "Hi, {$lazyObject->name}!" . PHP_EOL; $lazyObject = $factory->createLazyObjectByInitializer(fn ($object) => $object->__construct( name: 'Tyke', )); // Outputs: // Initialized. // Hi, Tyke! echo "Hi, {$lazyObject->name}!" . PHP_EOL;
LazyObjectHelper
use NickLai\LazyObject\LazyObjectHelper; class NormalClass { public function __construct( public string $name, ) { echo 'Initialized.' . PHP_EOL; } } $lazyObject = LazyObjectHelper::createLazyObject( className: NormalClass::class, name: 'Jerry', ); // Outputs: // Initialized. // Hi, Jerry! echo "Hi, {$lazyObject->name}!" . PHP_EOL; $lazyObject = LazyObjectHelper::createLazyObjectByArgumentsGetter( className: NormalClass::class, argumentsGetter: fn () => [ 'name' => 'Spike', ], ); // Outputs: // Initialized. // Hi, Spike! echo "Hi, {$lazyObject->name}!" . PHP_EOL; $lazyObject = LazyObjectHelper::createLazyObjectByInitializer( className: NormalClass::class, initializer: fn ($object) => $object->__construct( name: 'Tyke', ), ); // Outputs: // Initialized. // Hi, Tyke! echo "Hi, {$lazyObject->name}!" . PHP_EOL;
License
LazyObject is released under the MIT License. See the bundled LICENSE file for details.
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-12-15
