chalcedonyt/laravel-valueobject

Laravel 5 中实现值对象模式的助手

1.01 2015-11-13 13:23 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:58:59 UTC


README

Value Object 模式的一个简单实现(http://c2.com/cgi/wiki?ValueObject),为 Laravel 5 提供一些助手。

安装

通过 Composer

$ composer require chalcedonyt/laravel-valueobject:1.*

Composer 完成后,将服务提供者添加到 app/config/app.php 文件中的 providers 数组中

Chalcedonyt\ValueObject\Providers\ValueObjectServiceProvider::class

使用方法

此包添加了一个用于快速创建值对象的助手生成器。

php artisan make:valueobject NewValueObject

Enter the class or variable name for parameter 0 (Examples: \App\User or $user) [Blank to stop entering parameters] [(no_param)]:
 > $var1

 Enter the class or variable name for parameter 1 (Examples: \App\User or $user) [Blank to stop entering parameters] [(no_param)]:
 > $var2
<?php
namespace App\ValueObjects;

class NewValueObject extends Chalcedonyt\ValueObject\ValueObject
{
    /**
    * @var
    */
    protected $var1;

    /**
    * @var
    */
    protected $var2;

    /**
    *
    *  @param $var1
    *  @param $var2
    */
    public function __construct( $var1, $var2)
    {
        $this -> var1 = $var1;
        $this -> var2 = $var2;
    }
}

它还引入了一个静态方法 create,可以从数组中返回 ValueObject 的实例。

$args = ['var1' => 1, 'var2' => 2];
$obj = NewValueObject::create($args);
$obj -> __toString(); //"{"var1":1,"var2":2}"

变更日志

  • 1.1 您现在可以通过在类名中指定来在目录中创建 ValueObject,例如 php artisan make:valueobject MyDir\\MyObject

有关最近更改的更多信息,请参阅 [CHANGELOG]。