ock/adaptism
Composer 安装命令:
composer require ock/adaptism
包简介
Library to map adapter classes.
README 文档
README
Adaptism
Adaptism is a package that finds adapters for objects using a dispatch map.
Adapters can be annotated with attributes for discovery.
Convert objects
use Ock\Adaptism\Tests\Fixtures\Color\Hex\HexColorInterface; use Ock\Adaptism\Tests\Fixtures\Color\Rgb\RgbColor; use Ock\Adaptism\UniversalAdapter\UniversalAdapterInterface; function f(UniversalAdapterInterface $universalAdapter): void { $rgb = new RgbColor(255, 0, 0); $hex = $universalAdapter->adapt($rgb, HexColorInterface::class); assert($hex instanceof HexColorInterface); assert($hex->getHexCode() === 'ff0000'); }
Declare adapters
use Ock\Adaptism\Attribute\Adapter; use Ock\Adaptism\Attribute\Parameter\Adaptee; use Ock\Adaptism\Tests\Fixtures\Color\Hex\HexColorInterface; use Ock\Adaptism\Tests\Fixtures\Color\Rgb\RgbColor; use Ock\Adaptism\Tests\Fixtures\Color\Rgb\RgbColorInterface; class C { #[Adapter] public static function adapt( #[Adaptee] RgbColorInterface $rgb, ): HexColorInterface { return new RgbColor( sprintf( '%02x%02x%02x', $rgbColor->red(), $rgbColor->green(), $rgbColor->blue())); } }
More examples?
Study the tests!
统计信息
- 总下载量: 331
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-09-14