<?php /** * Copyright © 2023 ExacTI Technology Solutions. All rights reserved. * GPLv3 General License. * https://exacti.com.br * Phacil PHP Framework - https://github.com/exacti/phacil-framework */ namespace Phacil\Framework\MagiQL\Builder; use Phacil\Framework\MagiQL\Syntax\Column; use Phacil\Framework\MagiQL\Syntax\Table; /** * Class MySqlBuilder. */ class MySqlBuilder extends \Phacil\Framework\MagiQL\Builder { /** * {@inheritdoc} * * @param Column $column * * @return string */ public function writeColumnName(Column $column) { if ($column->isAll()) { return '*'; } if (false !== strpos($column->getName(), '(')) { return parent::writeColumnName($column); } return $this->wrapper(parent::writeColumnName($column)); } /** * {@inheritdoc} * * @param Table $table * * @return string */ public function writeTableName(Table $table) { return $this->wrapper(parent::writeTableName($table)); } /** * {@inheritdoc} * * @param $alias * * @return string */ public function writeTableAlias($alias) { return $this->wrapper(parent::writeTableAlias($alias)); } /** * {@inheritdoc} * * @param $alias * * @return string */ public function writeColumnAlias($alias) { return $this->wrapper($alias); } /** * @param $string * @param string $char * * @return string */ protected function wrapper($string, $char = '`') { if (0 === strlen($string)) { return ''; } return $char.$string.$char; } }