承接 ock/adaptism 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ock/adaptism

Composer 安装命令:

composer require ock/adaptism

包简介

Library to map adapter classes.

README 文档

README

Build Status Coverage Status

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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-09-14