1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-28 16:30:59 +01:00
phorge-phorge/src/applications/herald/storage/transcript/HeraldObjectTranscript.php

76 lines
1.5 KiB
PHP
Raw Normal View History

2011-03-22 21:22:40 +01:00
<?php
final class HeraldObjectTranscript {
2011-03-22 21:22:40 +01:00
protected $phid;
2011-03-22 21:22:40 +01:00
protected $type;
protected $name;
protected $fields;
public function setPHID($phid) {
$this->phid = $phid;
2011-03-22 21:22:40 +01:00
return $this;
}
public function getPHID() {
return $this->phid;
2011-03-22 21:22:40 +01:00
}
public function setType($type) {
$this->type = $type;
return $this;
}
public function getType() {
return $this->type;
}
public function setName($name) {
$this->name = $name;
return $this;
}
public function getName() {
return $this->name;
}
public function setFields(array $fields) {
foreach ($fields as $key => $value) {
$fields[$key] = self::truncateValue($value, 4096);
}
2011-03-22 21:22:40 +01:00
$this->fields = $fields;
return $this;
}
public function getFields() {
return $this->fields;
}
private static function truncateValue($value, $length) {
if (is_string($value)) {
if (strlen($value) <= $length) {
return $value;
} else {
// NOTE: PhutilUTF8StringTruncator has huge runtime for giant strings.
return phutil_utf8ize(substr($value, 0, $length)."\n<...>");
}
} else if (is_array($value)) {
foreach ($value as $key => $v) {
if ($length <= 0) {
$value['<...>'] = '<...>';
unset($value[$key]);
} else {
$v = self::truncateValue($v, $length);
$length -= strlen($v);
$value[$key] = $v;
}
}
return $value;
} else {
return $value;
}
}
2011-03-22 21:22:40 +01:00
}