ommua / solid-domain

一个遵循SOLID原则,在统一位置封装和处理错误的PHP库

0.1.2 2020-09-29 18:45 UTC

This package is auto-updated.

Last update: 2024-09-29 05:36:33 UTC


README

一个遵循SOLID原则,在统一位置封装和处理错误的PHP库

Total Downloads

如何安装

Composer

$ composer require ommua/solid-domain

或者在composer.json中添加

{
    "require": {
        "ommua/solid-domain": "*"
    }
}

如何使用

注意:在您的新对象Domain中实现"final protected function invokeDomain()"是必需的
EXAMPLE: 
<?php
use Ommua\FailureResponse;
use Ommua\SuccessResponse;
use Ommua\SolidDomain;
use Ommua\Interfaces\EitherFailureOrSuccess;



class ConvertStringToInteger extends SolidDomain
{
    /**
     *  
     * @param String $stringNumber
     * @return EitherFailureOrSuccess
     */
    final protected function invokeDomain(String $stringNumber)
    {
        if (is_numeric($stringNumber))
            return new SuccessResponse(intval($stringNumber));
        else
            return new FailureResponse(["Error cast string {$stringNumber}"]);
    }
}

$convertStringToInteger = new ConvertStringToInteger();
$failureOrSuccess = $convertStringToInteger("5");

$result= $failureOrSuccess->fold(function($error){
   return $error;
}, function ($success){
    return $success;
});

// Print: 5
echo $result;

$failureOrSuccess = $convertStringToInteger("five");
$result= $failureOrSuccess->fold(function($error){
   return $error;
}, function ($success){
    return $success;
});


// Print:  ["Error cast string five"]
echo $result;