60 lines
1.3 KiB
PHP
60 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Doctrine\Common\Annotations;
|
|
|
|
use BadMethodCallException;
|
|
|
|
use function sprintf;
|
|
|
|
/**
|
|
* Annotations class.
|
|
*/
|
|
class Annotation
|
|
{
|
|
/**
|
|
* Value property. Common among all derived classes.
|
|
*
|
|
* @var mixed
|
|
*/
|
|
public $value;
|
|
|
|
/**
|
|
* @param array<string, mixed> $data Key-value for properties to be defined in this class.
|
|
*/
|
|
final public function __construct(array $data)
|
|
{
|
|
foreach ($data as $key => $value) {
|
|
$this->$key = $value;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Error handler for unknown property accessor in Annotation class.
|
|
*
|
|
* @param string $name Unknown property name.
|
|
*
|
|
* @throws BadMethodCallException
|
|
*/
|
|
public function __get($name)
|
|
{
|
|
throw new BadMethodCallException(
|
|
sprintf("Unknown property '%s' on annotation '%s'.", $name, static::class)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Error handler for unknown property mutator in Annotation class.
|
|
*
|
|
* @param string $name Unknown property name.
|
|
* @param mixed $value Property value.
|
|
*
|
|
* @throws BadMethodCallException
|
|
*/
|
|
public function __set($name, $value)
|
|
{
|
|
throw new BadMethodCallException(
|
|
sprintf("Unknown property '%s' on annotation '%s'.", $name, static::class)
|
|
);
|
|
}
|
|
}
|