chimera-mark2-core-release/core/fox/prometheus.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);
}
}