mirror of
https://github.com/kevinveenbirkenbach/infinito.git
synced 2025-09-13 21:57:16 +02:00
Added logic draft and optimized rights
This commit is contained in:
19
application/src/Logic/Operation/OperandInterface.php
Normal file
19
application/src/Logic/Operation/OperandInterface.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
namespace App\Logic\Operation;
|
||||
|
||||
use App\Logic\Result\ResultInterface;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author kevinfrantz
|
||||
*
|
||||
*/
|
||||
interface OperandInterface
|
||||
{
|
||||
/**
|
||||
* Returns the result of the Operation
|
||||
* @return ResultInterface
|
||||
*/
|
||||
public function getResult():ResultInterface;
|
||||
}
|
||||
|
26
application/src/Logic/Operation/OperationInterface.php
Normal file
26
application/src/Logic/Operation/OperationInterface.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
namespace App\Logic\Operation;
|
||||
|
||||
use App\Logic\Result\ResultInterface;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author kevinfrantz
|
||||
*
|
||||
*/
|
||||
interface OperationInterface extends OperandInterface
|
||||
{
|
||||
/**
|
||||
* Sets the Operators the operation has to deal with
|
||||
* @param ArrayCollection $operands | OperandInterface[]
|
||||
*/
|
||||
public function setOperators(ArrayCollection $operands):void;
|
||||
|
||||
/**
|
||||
* Process the logic
|
||||
*/
|
||||
public function process():void;
|
||||
}
|
||||
|
49
application/src/Logic/Result/Result.php
Normal file
49
application/src/Logic/Result/Result.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
namespace App\Logic\Result;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author kevinfrantz
|
||||
*
|
||||
*/
|
||||
class Result implements ResultInterface
|
||||
{
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
protected $bool;
|
||||
|
||||
/**
|
||||
* The concrete result value
|
||||
* @var mixed
|
||||
*/
|
||||
protected $value;
|
||||
|
||||
public function getValue()
|
||||
{
|
||||
return $this->value;
|
||||
}
|
||||
|
||||
public function getBool(): bool
|
||||
{
|
||||
return $this->bool;
|
||||
}
|
||||
|
||||
public function setBool(bool $bool): void
|
||||
{
|
||||
$this->bool = $bool;
|
||||
}
|
||||
|
||||
public function setValue($value): void
|
||||
{
|
||||
$this->value = $value;
|
||||
}
|
||||
|
||||
public function setAll($value): void
|
||||
{
|
||||
$this->bool = (bool)$value;
|
||||
$this->value = $value;
|
||||
}
|
||||
|
||||
}
|
||||
|
39
application/src/Logic/Result/ResultInterface.php
Normal file
39
application/src/Logic/Result/ResultInterface.php
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
namespace App\Logic\Result;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author kevinfrantz
|
||||
*
|
||||
*/
|
||||
interface ResultInterface
|
||||
{
|
||||
/**
|
||||
* Returns the Result as a string
|
||||
* @return string
|
||||
*/
|
||||
//public function __toString():string;
|
||||
|
||||
/**
|
||||
* Returns if the result is true
|
||||
* @return bool
|
||||
*/
|
||||
public function getBool():bool;
|
||||
|
||||
public function setBool(bool $bool):void;
|
||||
|
||||
/**
|
||||
* Returns the concrete result value
|
||||
* @var mixed
|
||||
*/
|
||||
public function getValue();
|
||||
|
||||
public function setValue($value):void;
|
||||
|
||||
/**
|
||||
* Sets bool and value attribut
|
||||
* @param mixed $value
|
||||
*/
|
||||
public function setAll($value):void;
|
||||
}
|
||||
|
Reference in New Issue
Block a user