This commit is contained in:
2024-12-15 22:16:01 +07:00
parent 0843fd83a5
commit 2b3f624199
12 changed files with 326 additions and 320 deletions

View File

@@ -42,39 +42,39 @@ trait buffer
/**
* Write to buffer of the document
*
* @param array $data Data for writing (merge)
* @param array &$errors Registry of errors
* @param array $$data Data for writing (merge)
* @param array &$$errors Registry of errors
*
* @return bool Is data has written into the document from ArangoDB?
*/
public function write(array $data, array &$errors = []): bool
public function write(array $$data, array &$$errors = []): bool
{
try {
if (collection::initialize(static::COLLECTION, static::TYPE, errors: $errors)) {
if (collection::initialize(static::COLLECTION, static::TYPE, errors: $$errors)) {
// Initialized the collection
// Is the instance of the document from ArangoDB are initialized?
if (!isset($this->document)) throw new exception('The instance of the sessoin document from ArangoDB is not initialized');
if (!isset($$this->document)) throw new exception('The instance of the sessoin document from ArangoDB is not initialized');
// Writing data into buffer of the instance of the document from ArangoDB
$this->document->buffer = array_replace_recursive($this->document->buffer ?? [], $data);
$$this->document->buffer = array_replace_recursive($$this->document->buffer ?? [], $$data);
// Is the buffer of the instance of the document from ArangoDB exceed 10 megabytes?
if (mb_strlen(json_encode($this->document->buffer)) > 10485760) throw new exception('The buffer size exceeds 10 megabytes');
if (mb_strlen(json_encode($$this->document->buffer)) > 10485760) throw new exception('The buffer size exceeds 10 megabytes');
// Serializing parameters
if ($this->document->language instanceof language) $this->document->language = $this->document->language->name;
if ($$this->document->language instanceof language) $$this->document->language = $$this->document->language->name;
// Writing to ArangoDB and exit (success)
return document::update($this->document, errors: $errors);
return document::update($$this->document, errors: $$errors);
} else throw new exception('Failed to initialize ' . static::TYPE . ' collection: ' . static::COLLECTION);
} catch (exception $e) {
} catch (exception $$e) {
// Writing to the registry of errors
$errors[] = [
'text' => $e->getMessage(),
'file' => $e->getFile(),
'line' => $e->getLine(),
'stack' => $e->getTrace()
$$errors[] = [
'text' => $$e->getMessage(),
'file' => $$e->getFile(),
'line' => $$e->getLine(),
'stack' => $$e->getTrace()
];
}