- var_dump: documentation ( source)
- time: documentation ( source)
- microtime: documentation ( source)
- array_shift: documentation ( source)
- explode: documentation ( source)
- trim: documentation ( source)
- array_pop: documentation ( source)
<?php
final class CommandId
{
private $name;
private $time;
public function __construct($name)
{
$this->name = trim($name);
$this->time = microtime();
}
public static function fromString($idString)
{
$parts = explode('_', $idString);
$id = new static(array_shift($parts));
$id->time = (int) array_pop($parts);
return $id;
}
public function name()
{
return $this->name;
}
public function time()
{
return $this->time;
}
public function __toString()
{
return "{$this->name}_{$this->time}";
}
}
var_dump(CommandId::fromString('Foo_' . time()));