67 lines
1.4 KiB
PHP
67 lines
1.4 KiB
PHP
<?php namespace fox;
|
|
|
|
/**
|
|
*
|
|
* Class fox\prometheus
|
|
*
|
|
* @copyright MX STAR LLC 2018-2022
|
|
* @version 4.0.0
|
|
* @author Pavel Dmitriev
|
|
* @license GPLv3
|
|
*
|
|
**/
|
|
|
|
use fox\prometheus\item;
|
|
|
|
class prometheus implements stringExportable, stringImportable {
|
|
protected array $__items=[];
|
|
|
|
public function __construct($ref=null) {
|
|
if (empty($ref)) {
|
|
return;
|
|
} else if (is_string($ref)) {
|
|
$this->parseString($ref);
|
|
}
|
|
}
|
|
|
|
public function __get($key) {
|
|
switch($key) {
|
|
case "items":
|
|
return $this->__items;
|
|
default:
|
|
throw new foxException("Invalid READ for ".$key." in class ".__CLASS__);
|
|
}
|
|
}
|
|
|
|
protected function parseString($str) {
|
|
// TODO: implement fromString()
|
|
$this->__items=[];
|
|
$ref = preg_replace("/\r/", "", $str);
|
|
foreach (explode("\n", $ref) as $line) {
|
|
try {
|
|
$this->__items[]=item::fromString($line);
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
public function __toString(): string
|
|
{
|
|
// TODO: implement __toString()
|
|
}
|
|
|
|
public function __fromString($val)
|
|
{
|
|
$this->__construct($val);
|
|
}
|
|
|
|
public function isNull(): bool
|
|
{
|
|
return empty($this->__items);
|
|
}
|
|
}
|
|
|