![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-elasticsearch/Model/Adapter/Document/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Elasticsearch\Model\Adapter\Document; /** * @api * @since 100.1.0 */ class Builder { /** * @var array */ private $fields = []; /** * @return array * @since 100.1.0 */ public function build() { $document = []; foreach ($this->fields as $field => $value) { $document = $this->addFieldToDocument($document, $field, $value); } $this->clear(); return $document; } /** * @return void */ private function clear() { $this->fields = []; } /** * @param array $document * @param string $field * @param string|int|float $value * @return array */ private function addFieldToDocument($document, $field, $value) { if (is_array($value)) { if (count($value) == 0) { $document = array_merge($document, [$field => $value]); } else { $fields = []; foreach ($value as $key => $val) { $fields[$field][$key] = $val; } $document = array_merge($document, $fields); } } else { $field = [$field => $value]; $document = array_merge($document, $field); } return $document; } /** * @param string $field * @param string|array|int|float $value * @return $this * @since 100.1.0 */ public function addField($field, $value) { $this->fields[$field] = $value; return $this; } /** * @param array $fields * @return $this * @since 100.1.0 */ public function addFields(array $fields) { $this->fields = array_merge($this->fields, $fields); return $this; } }