![]() 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/laminas/laminas-db/src/Sql/ |
<?php namespace Laminas\Db\Sql; use Closure; use Laminas\Db\Adapter\Driver\DriverInterface; use Laminas\Db\Adapter\ParameterContainer; use Laminas\Db\Adapter\Platform\PlatformInterface; use function array_key_exists; use function sprintf; use function strtolower; /** * @property Where $where */ class Delete extends AbstractPreparableSql { /**@#+ * @const */ public const SPECIFICATION_DELETE = 'delete'; public const SPECIFICATION_WHERE = 'where'; /**@#-*/ /** * {@inheritDoc} */ protected $specifications = [ self::SPECIFICATION_DELETE => 'DELETE FROM %1$s', self::SPECIFICATION_WHERE => 'WHERE %1$s', ]; /** @var string|TableIdentifier */ protected $table = ''; /** @var bool */ protected $emptyWhereProtection = true; /** @var array */ protected $set = []; /** @var null|string|Where */ protected $where; /** * Constructor * * @param null|string|TableIdentifier $table */ public function __construct($table = null) { if ($table) { $this->from($table); } $this->where = new Where(); } /** * Create from statement * * @param string|TableIdentifier $table * @return $this Provides a fluent interface */ public function from($table) { $this->table = $table; return $this; } /** * @param null $key * @return mixed */ public function getRawState($key = null) { $rawState = [ 'emptyWhereProtection' => $this->emptyWhereProtection, 'table' => $this->table, 'set' => $this->set, 'where' => $this->where, ]; return isset($key) && array_key_exists($key, $rawState) ? $rawState[$key] : $rawState; } /** * Create where clause * * @param Where|Closure|string|array $predicate * @param string $combination One of the OP_* constants from Predicate\PredicateSet * @return $this Provides a fluent interface */ public function where($predicate, $combination = Predicate\PredicateSet::OP_AND) { if ($predicate instanceof Where) { $this->where = $predicate; } else { $this->where->addPredicates($predicate, $combination); } return $this; } /** * @return string */ protected function processDelete( PlatformInterface $platform, ?DriverInterface $driver = null, ?ParameterContainer $parameterContainer = null ) { return sprintf( $this->specifications[static::SPECIFICATION_DELETE], $this->resolveTable($this->table, $platform, $driver, $parameterContainer) ); } /** * @return null|string */ protected function processWhere( PlatformInterface $platform, ?DriverInterface $driver = null, ?ParameterContainer $parameterContainer = null ) { if ($this->where->count() === 0) { return; } return sprintf( $this->specifications[static::SPECIFICATION_WHERE], $this->processExpression($this->where, $platform, $driver, $parameterContainer, 'where') ); } /** * Property overloading * * Overloads "where" only. * * @param string $name * @return Where|null */ public function __get($name) { switch (strtolower($name)) { case 'where': return $this->where; } } }