for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Helix\DB;
use Helix\DB;
use Helix\DB\SQL\AggregateTrait;
use Helix\DB\SQL\ComparisonTrait;
use Helix\DB\SQL\DateTimeTrait;
use Helix\DB\SQL\ExpressionInterface;
use Helix\DB\SQL\NumericTrait;
use Helix\DB\SQL\TextTrait;
/**
* Immutable column expression. Can produce all available expressions.
*
* @immutable
*/
class Column implements ExpressionInterface {
use AggregateTrait;
use ComparisonTrait;
use DateTimeTrait;
use NumericTrait;
use TextTrait;
* @var string
protected $name;
protected $qualifier;
* @param DB $db
* @param string $name
* @param string $qualifier
public function __construct (DB $db, string $name, string $qualifier = '') {
$this->db = $db;
$this->name = $name;
$this->qualifier = $qualifier;
}
* Returns the qualified name.
* @return string
public function __toString (): string {
if (strlen($this->qualifier)) {
return "{$this->qualifier}.{$this->name}";
return $this->name;
final public function getName (): string {
final public function getQualifier (): string {
return $this->qualifier;
* @return $this
public function setName (string $name) {
$clone = clone $this;
$clone->name = $name;
return $clone;
public function setQualifier (string $qualifier) {
$clone->qualifier = $qualifier;