/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/DB/Sql/ConcatExpression.php
71 строка
2 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2015 Adobe * All Rights Reserved. */ namespace Magento\Framework\DB\Sql; use Magento\Framework\App\ResourceConnection; use Magento\Framework\DB\Adapter\AdapterInterface; /** * Class Concat */ class ConcatExpression extends Expression { /** * @var AdapterInterface */ protected $adapter; /** * @var string[] */ protected $columns; /** * @var string */ protected $separator; /** * @param ResourceConnection $resource * @param array $columns * @param string $separator */ public function __construct( ResourceConnection $resource, array $columns, $separator = ' ' ) { $this->adapter = $resource->getConnection(); $this->columns = $columns; $this->separator = $separator; } /** * Returns SQL expression * TRIM(CONCAT_WS(separator, IF(str1 <> '', str1, NULL), IF(str2 <> '', str2, NULL) ...)) * * @return string */ public function __toString() { $columns = []; foreach ($this->columns as $key => $part) { if (isset($part['columnName']) && $part['columnName'] instanceof \Zend_Db_Expr) { $column = $part['columnName']; } else { $column = $this->adapter->quoteIdentifier( (isset($part['tableAlias']) ? $part['tableAlias'] . '.' : '') . (isset($part['columnName']) ? $part['columnName'] : $key) ); } $columns[] = $this->adapter->getCheckSql($column . " <> ''", $column, 'NULL'); } return sprintf( 'TRIM(%s)', $this->adapter->getConcatSql($columns, $this->separator) ); } }