redbox/hydrate

v1.0 2016-09-09 18:00 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:42:16 UTC


README

redbox-logo-klein

Build Status codecov Scrutinizer Code Quality PHP 7.1 Ready ![HHVM Ready](https://img.shields.io/badge/PHP 7.1-Ready-green.svg) ![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&label=Contact author)

Redbox-hydrate

对象的水合(Hydrating)是针对在PHP对象上填充属性的一种高级说法。这个水合器可以帮助你快速地水合新的类实例,并返回填充后的结果。请注意即使你的类中有私有或受保护的属性,它也会为你处理这些属性。请查看示例文件夹中的基本 示例

示例

我已尽力提供一种特别(读起来很性感)且小巧的API供你使用。你可以在操作中使用任何你喜欢的API风格,例如。

静态类方法

在这个示例中,我们将使用with()函数水合一个类User的新实例,并将其作为$result1返回。

use Redbox\Hydrate\Hydrator;

/**
 * Method 1
 */
$result1 = Hydrator::hydrate(new User())->with(
    [
        'username' => 'abc',
        'password' => 'pass'
    ]
);

水合函数

use function Redbox\Hydrate\Helpers\Hydrate;

/**
 * Method 2
 */
$result2 = Hydrate(new User())->with(
    [
        'username' => 'abc',
        'password' => 'pass'
    ]
);

实例化一个新的水合器

普通的PHP,创建水合器的实例,然后调用with( )方法。

请注意这个方法有一些问题。如果在循环中使用它,可能会因为创建的所有实例而消耗一些内存。如果你在循环中,请务必不要忘记使用unset函数。

use Redbox\Hydrate\Hydrator;

/**
 * Method 3
 */
$hydrator = new Hydrator(new User());
$result3 = $hydrator->with(
    [
        'username' => 'abcs',
        'password' => 'pass'
    ]
);
unset($hydrator);

系统需求

以下是使用此包的最低要求

  • PHP >= 5.40(但更高的版本总是更好的)
  • Composer 用于自动加载

安装

使用 composer

$ composer require redbox/hydrate

通过存档下载安装

如果你从网站(例如 github.iophpclasses.org 或其他)下载包,你需要在你的机器上安装composer。原因是Redbox-hydrate没有包含运行包所需的vendor目录。

首先,如果你没有安装composer,你可以在这里找到它。按照说明操作,实际上安装非常简单。

在这个示例中,我将假设您已安装了Composer(在任何机器上)。前往包根目录(composer.json所在位置)并执行以下命令。

$ composer install  --no-dev

现在您几乎准备好了。在您的项目中,需要引入redbox-hydrate.php(位于包根目录)。假设Redbox-hydrate已安装在./lib/redbox-hydrate/,您的PHP文件将如下所示。

<?php
require 'lib/redbox-hydrate/redbox-hydrate.php';
// more of your nice code below

您现在可以在应用程序中使用Redbox-hydrate了。

作者

Redbox-hydrate由Johnny Mast创建和维护。对于功能请求或建议,您可以考虑给我发送一封电子邮件。

许可证

Redbox-hydrate是在MIT公共许可证下发布的。

https://github.com/johnnymast/redbox-hydrator/blob/master/LICENSE.md

享受

哦,如果您已经看到这里,您不妨关注我在Twitter上。