PHP code example of zrnik / php-attribute-reflection
1. Go to this page and download the library: Download zrnik/php-attribute-reflection library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
zrnik / php-attribute-reflection example snippets
namespace Zrnik\Example;
use ReflectionClass;
use RuntimeException;
enum CaseToSolve
{
#[AttributeToFind('AnyParameter')]
case FirstCase;
#[AttributeToFind('DifferentParameter')]
#[AnotherAttribute('WhateverIsHere')]
case SecondCase;
case ThirdCase;
public function getParameter(): string
{
$reflection = new ReflectionClass(self::class);
$caseReflection = $reflection->getReflectionConstant($this->name);
if($caseReflection === false) {
throw new RuntimeException('case not found');
}
foreach ($caseReflection->getAttributes() as $reflectionAttribute) {
if ($reflectionAttribute->getName() === AttributeToFind::class) {
/** @var AttributeToFind $attributeToFindInstance */
$attributeToFindInstance = $reflectionAttribute->newInstance();
return $attributeToFindInstance->customValue;
}
}
throw new RuntimeException(
sprintf(
'attribute "%s" not found on "%s"!',
AttributeToFind::class,
$this->name
)
);
}
}