ock / adaptism
用于映射适配器类的库。
dev-main
2024-09-18 00:00 UTC
Requires
- php: >=8.2
- ock/class-discovery: dev-main
- ock/dependency-injection: dev-main
- ock/egg: dev-main
- ock/helpers: dev-main
- psr/container: ^2.0
- symfony/dependency-injection: ^6.4
Requires (Dev)
- ock/testing: dev-main
- phpstan/phpstan: 2.0.x-dev
- phpunit/phpunit: ^9.5
- symfony/config: ^6.4
- symfony/yaml: ^6.2
- dev-main
- dev-issue-20-phpstan-github-action
- dev-issue-24-phpstan-in-helpers-package
- dev-issue-26-phpstan-class-discovery
- dev-issue-29-phpstan-dependency-injection
- dev-issue-30-ddev-here-command
- dev-issue-34-phpstan-testing-package
- dev-issue-38-different-phpstan-versions
- dev-issue-42-drop-phpstan-2
- dev-probe
- dev-issue-11-github-actions-in-packages
- dev-issue-16-ci-per-module
- dev-issue-16-prep
- dev-issue-14-add-all-packages-to-split
This package is auto-updated.
Last update: 2024-09-24 11:26:54 UTC
README
Adaptism
Adaptism 是一个使用分发映射查找对象适配器的包。
适配器可以用 属性 进行标注以便发现。
转换对象
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'); }
声明适配器
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())); } }
更多示例?
学习 测试!