承接 elisdn/php-hydrator 相关项目开发

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

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

elisdn/php-hydrator

Composer 安装命令:

composer require elisdn/php-hydrator

包简介

Simple object hydrator

README 文档

README

The library allows to hydrate objects from an array and extract raw objects's values to an array.

Installation

Install with composer:

composer require elisdn/php-hydrator

Usage samples

Hydrating an object from an associative array:

$post = $this->hydrator->hydrate(Post::class, [
    'id' => $id,
    'date' => $date,
    'title' => $title,
])

Extracting of object values to an array by list of properies:

$data = $this->hydrator->extract($post, ['id', 'date', 'title'])

For example if we have Post entity:

class Post
{
    private $id;
    private $title;
    private $date;

    public function __construct($id, $title)
    {
        $this->id = $id;
        $this->title = $title;
        $this->date = new DateTimeImmutable();
    }
    
    public function getId()
    {
        return $this->id;
    }
    
    public function getTitle()
    {
        return $this->title;
    }
}

then we can use the hydrator in any repository class:

class SqlPostRepository implements PostRepository
{
    private $db;
    private $hydrator;

    public function get($id): Post
    {
        if (!$row = $this->db->selectOne('posts', ['id' => $id])) {
            throw new NotFoundException('Post not found.');
        }
    
        return $this->hydrator->hydrate(Post::class, [
            'id' => $row['id'],
            'date' => DateTimeImmutable::createFromFormat('Y-m-d', $row['create_date']),
            'title' => $row['title'],
        ]);
    }

    public function persist(Post $post): void
    {
        $data = $this->hydrator->extract($post, ['id', 'date', 'title'])
    
        $this->db->insert('posts', [
            'id' => $data['id'],
            'create_date' => $data['date']->format('Y-m-d'),
            'title' => $data['title'],
        );
    }
}

elisdn/php-hydrator 适用场景与选型建议

elisdn/php-hydrator 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 64.16k 次下载、GitHub Stars 达 41, 最近一次更新时间为 2017 年 07 月 21 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 elisdn/php-hydrator 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 elisdn/php-hydrator 我们能提供哪些服务?
定制开发 / 二次开发

基于 elisdn/php-hydrator 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 64.16k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 41
  • 点击次数: 12
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 41
  • Watchers: 3
  • Forks: 5
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2017-07-21