mgdigital/deconstructor

该包已被弃用且不再维护。未建议替代包。
该包最新版本(v0.1.4)没有可用的许可证信息。

v0.1.4 2016-06-02 13:41 UTC

This package is not auto-updated.

Last update: 2018-02-16 12:34:27 UTC


README

是什么?

类可以有构造函数,那么为什么不能有解构函数呢?

为什么?

允许对象描述其是如何实例化的,从而能够根据其构造函数参数创建相同的副本。

如何?

<?php

class ValueObject implements MGDigital\Deconstructor\DeconstructorInterface
{

    private $property;

    public function __construct($property)
    {
        $this->property = $property;
    }

    public function deconstruct(): array
    {
        return [$this->property];
    }

    public function getProperty()
    {
        return $this->property;
    }

}

$instance = new ValueObject('value');
$deconstruction = MGDigital\Deconstructor\Deconstruction::deconstruct($instance);
$copy = $deconstruction->construct();
echo $copy->getProperty(); // value