![]() 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/framework/View/Asset/PreProcessor/Helper/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\View\Asset\PreProcessor\Helper; /** * Class Sort */ class Sort implements SortInterface { /** * Name of directive */ const DIRECTIVE = 'after'; /** * Key of name items */ const NEXT_KEY = 'next'; /** * @var array */ private $result; /** * @var array */ private $array; /** * @inheritdoc */ public function sort(array $array) { $this->result = []; $this->array = $array; $nodes = []; $structure = []; foreach ($this->array as $name => $item) { $nodes[$name] = isset($nodes[$name]) ? $nodes[$name] : [self::NEXT_KEY => null]; if (isset($item[self::DIRECTIVE])) { $nodes[$item[self::DIRECTIVE]][self::NEXT_KEY][$name] = &$nodes[$name]; continue; } $structure[$name] = &$nodes[$name]; } $this->fillResult($structure); return $this->result; } /** * @param array $structure * @return void */ private function fillResult(array $structure) { foreach ($structure as $name => $item) { $this->result[$name] = $this->array[$name]; if (!empty($item[self::NEXT_KEY])) { $this->fillResult($item[self::NEXT_KEY]); } } } }