![]() 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/DB/Select/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\DB\Select; use Magento\Framework\DB\Select; use Magento\Framework\DB\Platform\Quote; /** * Class OrderRenderer */ class OrderRenderer implements RendererInterface { /** * @var Quote */ protected $quote; /** * @param Quote $quote */ public function __construct( Quote $quote ) { $this->quote = $quote; } /** * Render ORDER BY section * * @param Select $select * @param string $sql * @return string */ public function render(Select $select, $sql = '') { if ($select->getPart(Select::ORDER)) { $order = []; foreach ($select->getPart(Select::ORDER) as $term) { if (is_array($term)) { if (is_numeric($term[0]) && (string)(int)$term[0] == $term[0]) { $order[] = (int)trim($term[0]) . ' ' . $term[1]; } else { $order[] = $this->quote->quoteIdentifier($term[0]) . ' ' . $term[1]; } } elseif (is_numeric($term) && (string)(int)$term == $term) { $order[] = (int)trim($term); } else { $order[] = $this->quote->quoteIdentifier($term); } } $sql .= ' ' . Select::SQL_ORDER_BY . ' ' . implode(', ', $order) . PHP_EOL; } return $sql; } }