<?php namespace FML; /** * Unique ID Model Class * * @author steeffeen * @copyright FancyManiaLinks Copyright © 2014 Steffen Schröder * @license http://www.gnu.org/licenses/ GNU General Public License, Version 3 */ class UniqueID { /* * Constants */ const PREFIX = 'FML_ID_'; /* * Static properties */ protected static $currentIndex = 0; /** * Protected properties */ protected $index = null; /** * Create a new Unique ID object * * @return \FML\UniqueID|static */ public static function create() { return new static(); } /** * Get a new unique index * * @return int */ protected static function newIndex() { self::$currentIndex++; return self::$currentIndex; } /** * Construct a Unique ID object */ public function __construct() { $this->index = static::newIndex(); } /** * Get the Unique ID value * * @return string */ public function getValue() { return self::PREFIX . $this->index; } /** * Get the string representation * * @return string */ public function __toString() { return $this->getValue(); } }