Maslosoft Signals API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
<?php
/**
* This software package is licensed under `AGPL, Commercial` license[s].
*
* @package maslosoft/signals
* @license AGPL, Commercial
*
* @copyright Copyright (c) Peter Maselkowski <pmaselkowski@gmail.com>
* @link https://maslosoft.com/signals/
*/
namespace Maslosoft\Signals;
use Maslosoft\Addendum\Helpers\ParamsExpander;
use Maslosoft\Addendum\Utilities\ClassChecker;
use Maslosoft\Addendum\Utilities\NameNormalizer;
use Maslosoft\Signals\Helpers\ExceptionFormatter;
use Maslosoft\Signals\Meta\SignalsAnnotation;
use UnexpectedValueException;
/**
* SlotForAnnotation
* @template SlotFor(${SignalClass})
* @codeCoverageIgnore
* @author Piotr
*/
class SlotForAnnotation extends SignalsAnnotation
{
const Ns = __NAMESPACE__;
public $value;
public function init()
{
$data = ParamsExpander::expand($this, ['class']);
$class = '';
if (isset($data['class']))
{
$class = $data['class'];
}
if (empty($class) || !ClassChecker::exists($class))
{
$msg = ExceptionFormatter::formatForAnnotation($this, $class);
throw new UnexpectedValueException($msg);
}
NameNormalizer::normalize($class);
$this->getEntity()->slotFor[] = $class;
}
}
API documentation generated by ApiGen