You are here

BootstrapConstant.php in Express 8

File

themes/contrib/bootstrap/src/Annotation/BootstrapConstant.php
View source
<?php

/**
 * @file
 * Contains \Drupal\bootstrap\Annotation\BootstrapConstant.
 */
namespace Drupal\bootstrap\Annotation;

use Doctrine\Common\Annotations\AnnotationException;
use Drupal\Component\Annotation\AnnotationBase;

/**
 * Defines a BootstrapConstant annotation object.
 *
 * @Annotation
 *
 * @ingroup utility
 */
class BootstrapConstant extends AnnotationBase {

  /**
   * The stored constant value.
   *
   * @var mixed
   */
  protected $value;

  /**
   * {@inheritdoc}
   */
  public function __construct(array $values) {
    $string = $values['value'];

    // Handle classes.
    if (strpos($string, '::') !== FALSE) {
      list($class, $constant) = explode('::', $string);
      try {
        $reflection = new \ReflectionClass($class);
        if ($reflection
          ->hasConstant($constant)) {
          $this->value = $reflection
            ->getConstant($constant);
          return;
        }
      } catch (\ReflectionException $e) {
      }
    }

    // Handle procedural constants.
    if (!$this->value && defined($string)) {
      $this->value = constant($string);
      return;
    }
    throw AnnotationException::semanticalErrorConstants($this->value);
  }

  /**
   * {@inheritdoc}
   */
  public function get() {
    return $this->value;
  }

}

Classes

Namesort descending Description
BootstrapConstant Defines a BootstrapConstant annotation object.