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)
 | |
|         );
 | |
|     }
 | |
| }
 |