diff --git a/mirzaev/arangodb/system/collection.php b/mirzaev/arangodb/system/collection.php index d099433..8460ddf 100644 --- a/mirzaev/arangodb/system/collection.php +++ b/mirzaev/arangodb/system/collection.php @@ -25,11 +25,12 @@ class collection * * @param _connection $session Сессия соединения с базой данных * @param string $name Название - * @param bool $edge Это ребро? (иначе: вершина) + * @param bool $edge Обрабатывать как ребро? (иначе: вершина) + * @param ?terminal $terminal Инстанция терминала * * @return string|null Идентификатор коллекции */ - public static function init(_connection $session, string $name, bool $edge = false): ?string + public static function init(_connection $session, string $name, bool $edge = false, ?terminal $terminal = null): ?string { // Инициализация $collections = new _collection_handler($session); @@ -38,7 +39,7 @@ class collection // Не найдана коллекция // Запись в вывод - terminal::write("Коллекция \"$name\" не найдена"); + if ($terminal instanceof terminal) $terminal::write("Коллекция \"$name\" не найдена"); // Запись коллекции на сервер и его ответ в буфер возврата $id = $collections->create($name, ['type' => $edge ? _collection::TYPE_EDGE : _collection::TYPE_DOCUMENT]); @@ -47,7 +48,7 @@ class collection // Коллекция найдена (записана) // Запись в вывод - terminal::write("Создана коллекция \"$name\" с типом " . ($edge ? 'ребро' : 'документ')); + if ($terminal instanceof terminal) $terminal::write("Создана коллекция \"$name\" с типом " . ($edge ? 'ребро' : 'документ')); // Возврат идентификатора коллекции return $id; diff --git a/mirzaev/arangodb/system/document.php b/mirzaev/arangodb/system/document.php index fdbbe24..35e30eb 100644 --- a/mirzaev/arangodb/system/document.php +++ b/mirzaev/arangodb/system/document.php @@ -28,10 +28,11 @@ class document * @param ?array $data Данные * @param ?array $metadata Метаданные * @param bool $check Проверка на запись в базу данных + * @param ?terminal $terminal Инстанция терминала * * @return string|null Идентификатор */ - public static function write(_connection $session, string $collection, ?array $data = null, ?array $metadata = null, bool $check = true): ?string + public static function write(_connection $session, string $collection, ?array $data = null, ?array $metadata = null, bool $check = true, ?terminal $terminal = null): ?string { // Инициализация коллекции collection::init($session, $collection, isset($data['_from'], $data['_to'])); @@ -71,11 +72,11 @@ class document // Запись на сервер и его ответ в буфер возврата $id = isset($_from, $_to) ? $documents->saveEdge($collection, $_from, $_to, $document) : $documents->insert($collection, $document); - if ($check && $documents->has($collection, $id)) { + if ($check && $terminal instanceof terminal && $documents->has($collection, $id)) { // Документ записан // Запись в вывод - terminal::write("В коллекции \"$collection\" создан документ \"$id\""); + $terminal::write("В коллекции \"$collection\" создан документ \"$id\""); } // Возврат идентификатора коллекции diff --git a/mirzaev/arangodb/system/terminal.php b/mirzaev/arangodb/system/terminal.php index 1469ea6..344b9b5 100644 --- a/mirzaev/arangodb/system/terminal.php +++ b/mirzaev/arangodb/system/terminal.php @@ -18,14 +18,6 @@ class terminal */ public static function write(string $text): void { - echo self::generate_prefix() . ' ' . $text . PHP_EOL; - } - - /** - * Генерация префикса - */ - public static function generate_prefix(): string - { - return '[' . self::PREFIX . ']'; + echo sprintf("[%s] $text\n", self::PREFIX); } }