Spec-Zone.ru › CakePHP 3.4

Класс FunctionExpression

Этот класс представляет строку вызова функции в SQL-запросе. Вызовы можно создавать, передавая имя функции и список параметров. По соображениям безопасности, все передаваемые параметры по умолчанию заключаются в кавычки, если не указано иное.

Cake\Database\Expression\QueryExpression реализует Cake\Database\ExpressionInterface, Countable использует Cake\Database\TypeMapTrait
Extended by Cake\Database\Expression\FunctionExpression реализует Cake\Database\TypedResultInterface использует Cake\Database\Type\ExpressionTypeCasterTrait , Cake\Database\TypedResultTrait
Пространство имен: Cake\Database\Expression
Расположение: Database/Expression/FunctionExpression.php

Краткое описание свойств

  • $_name protected
    string
    Имя функции, которая будет создана при генерации SQL-строки

Унаследованные свойства

  • _conditions, _conjunction _typeMap _returnType

Краткое описание методов

  • __construct() public

    Конструктор. Принимает имя вызываемой функции и список параметров, которые будут переданы в функцию. Дополнительно можно передать список типов, которые будут использоваться для каждого связанного параметра.

  • add() public
    Добавляет один или несколько аргументов для вызова функции.
  • count() public

    Имя функции само по себе является выражением для генерации, поэтому всегда добавляет 1 к количеству выражений, хранящихся в этом объекте.

  • getName() public
    Получает имя SQL-функции, которая должна быть вызвана в этом выражении.
  • name() public

    Устанавливает имя SQL-функции, которая должна быть вызвана в этом выражении. Если значение не передано, возвращает текущее имя.

  • setName() public
    Устанавливает имя SQL-функции, которая должна быть вызвана в этом выражении.
  • sql() public

    Возвращает строковое представление этого объекта, чтобы его можно было использовать в SQL-запросе. Обратите внимание, что значения условий не включены в строку, вместо них вставлены заглушки, которые могут быть заменены соответствующими значениями в кавычках.

Подробное описание методов

__construct()source public

__construct( string $name , array $params [] , array $types [] , string $returnType 'string' )

Конструктор. Принимает имя вызываемой функции и список параметров, которые будут переданы в функцию. Дополнительно можно передать список типов, которые будут использоваться для каждого связанного параметра.

По умолчанию все передаваемые параметры будут заключены в кавычки. Если вы хотите использовать литеральные аргументы, необходимо явно указать это функции.

Примеры:

$f = new FunctionExpression('CONCAT', ['CakePHP', ' rules']);

Предыдущая строка сгенерирует CONCAT('CakePHP', ' rules')

$f = new FunctionExpression('CONCAT', ['name' => 'literal', ' rules']);

Это даст CONCAT(name, ' rules')

Параметры

строка $name
имя функции, которая должна быть создана
массив $params необязательно []

список аргументов, которые должны быть переданы функции. Если ассоциативный, ключ будет использоваться как аргумент, когда значение равно 'литеральному'

массив $types необязательно []

ассоциативный массив типов, которые должны быть связаны с переданными аргументами

строка $returnType необязательно 'строка'
Тип возвращаемого значения этого выражения

Переопределяет

Cake\Database\Expression\QueryExpression::__construct()

add()source public

add( array $params , array $types [] , boolean $prepend false )

Добавляет один или несколько аргументов для вызова функции.

Параметры

массив $params

список аргументов, которые должны быть переданы функции. Если ассоциативный, ключ будет использоваться как аргумент, когда значение равно 'литеральному'

массив $types необязательно []

ассоциативный массив типов, которые должны быть связаны с переданными аргументами

логическое значение $prepend необязательно false
Добавлять перед или после списка аргументов

Возвращает


$this

См. также

\Cake\Database\Expression\FunctionExpression::__construct() для получения дополнительной информации.

Переопределяет

Cake\Database\Expression\QueryExpression::add()

count()source public

count( )

Имя функции само по себе является выражением для генерации, поэтому всегда добавляет 1 к количеству выражений, хранящихся в этом объекте.

Возвращает

целое число

Переопределяет

Cake\Database\Expression\QueryExpression::count()

getName()source public

getName( )

Получает имя SQL-функции, которая должна быть вызвана в этом выражении.

Возвращает

строка

name()source public

name( string|null $name null )

Устанавливает имя SQL-функции, которая должна быть вызвана в этом выражении. Если значение не передано, возвращает текущее имя.

Устарело

3.4.0 Используйте setName()/getName() вместо этого.

Параметры

строка|null $name необязательно null
Имя функции

Возвращает

строка|Cake\Database\Expression\FunctionExpression
$this

setName()source public

setName( string $name )

Устанавливает имя SQL-функции, которая должна быть вызвана в этом выражении.

Параметры

строка $name
Имя функции

Возвращает


$this

sql()source public

sql( Cake\Database\ValueBinder $generator )

Возвращает строковое представление этого объекта, чтобы его можно было использовать в SQL-запросе. Обратите внимание, что значения условий не включены в строку, вместо них вставлены заглушки, которые могут быть заменены соответствующими значениями в кавычках.

Параметры

Cake\Database\ValueBinder $generator
Объект генератора заглушек

Возвращает

строка

Переопределяет

Cake\Database\Expression\QueryExpression::sql()

Методы, унаследованные от Cake\Database\Expression\QueryExpression

__call()source public

__call( string $method , array $args )

Помогает вызывать методы and() и or() прозрачно.

Параметры

строка $method
Имя метода.
массив $args
Аргументы, которые нужно передать методу.

Возвращает

Cake\Database\Expression\QueryExpression

Выбрасывает

BadMethodCallException

__clone()source public

__clone( )

Клонирует этот объект и его поддерево выражений.

END_OF_DOCUMENT_MARKER

_addConditions()source protected

_addConditions( array $conditions , array $types )

Вспомогательная функция, используемая для разбиения вложенного массива условий и построения древовидной структуры внутри этого объекта для представления всего SQL-выражения. Строковые условия хранятся непосредственно в условиях, а любые другие представления обернуты в соответствующий экземпляр или этого класса.

Параметры

массив $conditions
список условий, которые должны быть сохранены в этом объекте
массив $types
список типов, связанных с полями, на которые ссылаются в $conditions

_calculateType()source protected

_calculateType( string|Cake\Database\Expression\IdentifierExpression $field )

Возвращает имя типа для переданного поля, если оно было сохранено в typeMap

Параметры

строка|Cake\Database\Expression\IdentifierExpression $field
Имя поля, для которого требуется получить тип.

Возвращаемое значение

строка|null
Вычисленный тип или null, если тип неизвестен.

_parseCondition()source protected

_parseCondition( string $field , mixed $value )

Разбирает строковые условия, пытаясь извлечь оператор, если таковой имеется, и в конечном итоге возвращает либо соответствующий объект QueryExpression, либо просто строковое представление условия. Эта функция отвечает за создание плейсхолдеров и замену значений на них, сохраняя значение в другом месте для последующей привязки.

Параметры

строка $field

Значение, из которого будет извлечено фактическое поле и оператор.

смешанное $value
Значение, которое должно быть привязано к плейсхолдеру для поля

Возвращаемое значение

строка|Cake\Database\ExpressionInterface

addCase()source public

addCase( array|Cake\Database\ExpressionInterface $conditions , array|Cake\Database\ExpressionInterface $values [] , array $types [] )

Добавляет новое выражение case в объект выражения

Параметры

массив|Cake\Database\ExpressionInterface $conditions

Условия для проверки. Должен быть экземпляром ExpressionInterface или массивом экземпляров ExpressionInterface.

массив|Cake\Database\ExpressionInterface $values необязательно []

ассоциативный массив значений, которые будут связаны с условиями, переданными в $conditions. Если значений $values больше, чем условий $conditions, последнее значение $value используется в качестве значения ELSE

массив $types необязательно []

ассоциативный массив типов, которые будут связаны со значениями, переданными в $values

Возвращаемое значение


$this

and_()source public

and_( string|array|Cake\Database\ExpressionInterface $conditions , array $types [] )

Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает конъюнкцию в «И»

Параметры

строка|массив|Cake\Database\ExpressionInterface $conditions
для объединения с И
массив $types необязательно []

ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к операторам.

Возвращаемое значение

Cake\Database\Expression\QueryExpression

between()source public

between( string|Cake\Database\ExpressionInterface $field , mixed $from , mixed $to , string|null $type null )

Добавляет новое условие в объект выражения в виде «поле МЕЖДУ от И до».

Параметры

строка|Cake\Database\ExpressionInterface $field
Имя поля, которое нужно сравнить для значений в диапазоне.
смешанное $from
Начальное значение диапазона.
смешанное $to
Конечное значение в диапазоне сравнения.
строка|null $type необязательно null
имя типа для $value, как настроено с помощью карты типов.

Возвращаемое значение


$this

eq()source public

eq( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type null )

Добавляет новое условие в объект выражения в виде «поле = значение».

Параметры

строка|Cake\Database\ExpressionInterface $field
Базовое поле, которое нужно сравнить со значением
смешанное $value
Значение, которое должно быть привязано к $field для сравнения
строка|null $type необязательно null

имя типа для $value, как настроено с помощью карты типов. Если оно заканчивается на «[]» и значение является массивом, то будут созданы несколько плейсхолдеров, по одному на каждое значение в массиве.

Возвращаемое значение


$this

equalFields()source public

equalFields( string $left , string $right )

Создает условие равенства или присваивание с идентификатором обертки.

Параметры

строка $left
Имя поля условия левого соединения.
строка $right
Имя поля условия правого соединения.

Возвращаемое значение


$this

exists()source public

exists( Cake\Database\ExpressionInterface $query )

Добавляет новое условие в объект выражения в виде «СУЩЕСТВУЕТ (...)».

Параметры

Cake\Database\ExpressionInterface $query
внутренний запрос

Возвращаемое значение


$this

getConjunction()source public

getConjunction( )

Получает текущую конъюнкцию, настроенную для условий на данном уровне дерева выражения.

Возвращаемое значение

строка

gt()source public

gt( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type null )

Добавляет новое условие в объект выражения в виде «поле > значение».

Параметры

строка|Cake\Database\ExpressionInterface $field
Базовое поле, которое нужно сравнить со значением
смешанное $value
Значение, которое должно быть привязано к $field для сравнения
строка|null $type необязательно null
имя типа для $value, как настроено с помощью карты типов.

Возвращаемое значение


$this

gte()source public

gte( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type null )

Добавляет новое условие в объект выражения в виде «поле >= значение».

Параметры

строка|Cake\Database\ExpressionInterface $field
Базовое поле, которое нужно сравнить со значением
смешанное $value
Значение, которое должно быть привязано к $field для сравнения
строка|null $type необязательно null
имя типа для $value, как настроено с помощью карты типов.

Возвращаемое значение


$this

hasNestedExpression()source public

hasNestedExpression( )

Возвращает true, если это выражение содержит другие вложенные объекты ExpressionInterface.

Возвращаемое значение

boolean

in()source public

in( string|Cake\Database\ExpressionInterface $field , string|array $values , string|null $type null )

Добавляет новое условие в объект выражения в виде «поле В (значение1, значение2)».

Параметры

строка|Cake\Database\ExpressionInterface $field
Базовое поле, которое нужно сравнить со значением
строка|массив $values
значение, которое нужно привязать к $field для сравнения
строка|null $type необязательно null
имя типа для $value, как настроено с помощью карты типов.

Возвращаемое значение


$this

isCallable()source public

isCallable( callable $c )

Проверка, является ли передаваемый объект вызываемым.

Мы не принимаем обратные вызовы вида ['class', 'method'], так как они часто содержат пользовательский ввод, а массивы строк легко подменить.

Параметры

callable $c
Вызываемый объект для проверки.

Возвращаемое значение

boolean
Действительный вызываемый объект.

isNotNull()source public

isNotNull( string|Cake\Database\ExpressionInterface $field )

Добавляет новое условие в объект выражения в форме "поле НЕ NULL".

Параметры

string|Cake\Database\ExpressionInterface $field

Поле базы данных, которое должно быть проверено на непустоту

Возвращаемое значение


$this

isNull()source public

isNull( string|Cake\Database\ExpressionInterface $field )

Добавляет новое условие в объект выражения в форме "поле IS NULL".

Параметры

string|Cake\Database\ExpressionInterface $field

Поле базы данных, которое должно быть проверено на пустоту

Возвращаемое значение


$this

iterateParts()source public

iterateParts( callable $callable )

Выполняет функцию обратного вызова для каждой части, образующей данное выражение.

Функция обратного вызова должна возвращать значение, которым будет заменена текущая посещаемая часть. Если функция обратного вызова возвращает null, то часть будет полностью удалена из этого выражения.

Функция обратного вызова получит каждое условие в качестве первого параметра и ключ в качестве второго. Возможна передача второго параметра по ссылке, что позволит изменить ключ, под которым хранится изменённая часть.

Параметры

callable $callable
Вызываемый объект, применяемый к каждой части.

Возвращаемое значение


$this

like()source public

like( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type null )

Добавляет новое условие в объект выражения в форме "поле LIKE значение".

Параметры

string|Cake\Database\ExpressionInterface $field
Поле базы данных, которое сравнивается со значением
mixed $value
Значение, которое будет привязано к $field для сравнения
string|null $type необязательно null
Имя типа для $value, как сконфигурировано в Type map.

Возвращаемое значение


$this

lt()source public

lt( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type null )

Добавляет новое условие в объект выражения в форме "поле < значение".

Параметры

string|Cake\Database\ExpressionInterface $field
Поле базы данных, которое сравнивается со значением
mixed $value
Значение, которое будет привязано к $field для сравнения
string|null $type необязательно null
Имя типа для $value, как сконфигурировано в Type map.

Возвращаемое значение


$this

lte()source public

lte( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type null )

Добавляет новое условие в объект выражения в форме "поле <= значение".

Параметры

string|Cake\Database\ExpressionInterface $field
Поле базы данных, которое сравнивается со значением
mixed $value
Значение, которое будет привязано к $field для сравнения
string|null $type необязательно null
Имя типа для $value, как сконфигурировано в Type map.

Возвращаемое значение


$this

not()source public

not( string|array|Cake\Database\ExpressionInterface $conditions , array $types [] )

Добавляет новый набор условий на текущий уровень дерева и инвертирует конечный результат, добавив NOT, будет выглядеть как "NOT ( (условие1) И (условия2) )", конъюнкция зависит от текущей, сконфигурированной для этого объекта.

Параметры

string|array|Cake\Database\ExpressionInterface $conditions
Для добавления и инвертирования
array $types необязательно []

Ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к операторам.

Возвращаемое значение


$this

notEq()source public

notEq( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type null )

Добавляет новое условие в объект выражения в форме "поле != значение".

Параметры

string|Cake\Database\ExpressionInterface $field
Поле базы данных, которое сравнивается со значением
mixed $value
Значение, которое будет привязано к $field для сравнения
string|null $type необязательно null

Имя типа для $value, как сконфигурировано в Type map. Если оно заканчивается на "[]" и значение является массивом, то будет создано несколько плейсхолдеров, по одному на каждое значение в массиве.

Возвращаемое значение


$this

notExists()source public

notExists( Cake\Database\ExpressionInterface $query )

Добавляет новое условие в объект выражения в форме "NOT EXISTS (...)".

Параметры

Cake\Database\ExpressionInterface $query
внутренний запрос

Возвращаемое значение


$this

notIn()source public

notIn( string|Cake\Database\ExpressionInterface $field , array $values , string|null $type null )

Добавляет новое условие в объект выражения в форме "поле НЕ В (значение1, значение2)".

Параметры

string|Cake\Database\ExpressionInterface $field
Поле базы данных, которое сравнивается со значением
array $values
Значение, которое будет привязано к $field для сравнения
string|null $type необязательно null
Имя типа для $value, как сконфигурировано в Type map.

Возвращаемое значение


$this

notLike()source public

notLike( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type null )

Добавляет новое условие в объект выражения в форме "поле НЕ LIKE значение".

Параметры

string|Cake\Database\ExpressionInterface $field
Поле базы данных, которое сравнивается со значением
mixed $value
Значение, которое будет привязано к $field для сравнения
string|null $type необязательно null
Имя типа для $value, как сконфигурировано в Type map.

Возвращаемое значение


$this

or_()source public

or_( string|array|Cake\Database\ExpressionInterface $conditions , array $types [] )

Возвращает новый объект QueryExpression, содержащий все переданные условия, и устанавливает конъюнкцию в "ИЛИ".

Параметры

string|array|Cake\Database\ExpressionInterface $conditions
для объединения с ИЛИ
array $types необязательно []

Ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к операторам.

Возвращаемое значение

Cake\Database\Expression\QueryExpression

setConjunction()source public

setConjunction( string $conjunction )

Изменяет конъюнкцию для условий на данном уровне дерева выражения.

Параметры

string $conjunction
Значение, используемое для объединения условий

Возвращаемое значение


$this

tieWith()source public

tieWith( string|null $conjunction null )

Изменяет союзы для условий на данном уровне дерева выражений. Если вызывается без аргументов, возвращает текущее значение конфигурации.

Устарело

3.4.0 Используйте setConjunction()/getConjunction() вместо этого.

Параметры

string|null $conjunction необязательно null

Значение, используемое для объединения условий. Если null, не устанавливает значение, а возвращает текущее сохранённое значение.

Возвращает

string|Cake\Database\Expression\QueryExpression
$this

traverse()source public

traverse( callable $callable )

Проходит по структуре дерева этого выражения запроса, выполняя функцию обратного вызова для каждого из условий, включенных в этот объект. Полезно для компиляции конечного выражения или интроспекции структуры.

Функция обратного вызова получает в качестве единственного аргумента экземпляр QueryExpression

Параметры

callable $callable
Функция обратного вызова, применяемая ко всем подвыражениям.

Реализация

Cake\Database\ExpressionInterface::traverse()

type()source public

type( string|null $conjunction null )

Обратная совместимая обёртка для tieWith()

Устарело

3.2.0 Используйте tieWith() вместо этого

Параметры

string|null $conjunction необязательно null

Значение, используемое для объединения условий. Если null, не устанавливает значение, а возвращает текущее сохранённое значение.

Возвращает

string|Cake\Database\Expression\QueryExpression
$this

Методы, используемые из Cake\Database\Type\ExpressionTypeCasterTrait

_castToExpression()source protected

_castToExpression( mixed $value , string $type )

Условно преобразует переданное значение в объект ExpressionInterface, если класс типа реализует ExpressionTypeInterface. В противном случае возвращает значение без изменений.

Параметры

mixed $value
Значение для преобразования в ExpressionInterface
string $type
Имя типа

Возвращает

mixed

_requiresToExpressionCasting()source protected

_requiresToExpressionCasting( array $types )

Возвращает массив с типами, требующими преобразования значений в выражения, из списка имён типов, переданных в качестве параметра.

Параметры

array $types
Список имён типов

Возвращает

array

Методы, используемые из Cake\Database\TypedResultTrait

getReturnType()source public

getReturnType( )

Получает тип значения, который сгенерирует этот объект.

Возвращает

string

returnType()source public

returnType( string|null $type null )

Устанавливает тип значения, который сгенерирует этот объект. Если вызывается без аргументов, возвращает текущий известный тип.

Устарело

3.5.0 Используйте getReturnType()/setReturnType() вместо этого.

Параметры

string|null $type необязательно null
Имя типа, который должен быть возвращен.

Возвращает

string|Cake\Database\TypedResultTrait
$this

setReturnType()source public

setReturnType( string $type )

Устанавливает тип значения, который сгенерирует этот объект.

Параметры

string $type
Имя типа, который должен быть возвращен.

Возвращает


$this

Методы, используемые из Cake\Database\TypeMapTrait

defaultTypes()source public

defaultTypes( array $types null )

Позволяет установить значения по умолчанию для типов при цепочечном запросе.

Устарело

3.4.0 Используйте setDefaultTypes()/getDefaultTypes() вместо этого.

Параметры

array $types необязательно null
Массив типов для установки.

Возвращает


$this|array

getDefaultTypes()source public

getDefaultTypes( )

Получает значения по умолчанию для типов текущей карты типов.

Возвращает

array

getTypeMap()source public

getTypeMap( )

Возвращает существующую карту типов.

Возвращает

Cake\Database\TypeMap

setDefaultTypes()source public

setDefaultTypes( array $types )

Позволяет установить значения по умолчанию для типов при цепочечном запросе.

Параметры

array $types
Массив типов для установки.

Возвращает


$this

setTypeMap()source public

setTypeMap( array|Cake\Database\TypeMap $typeMap )

Создаёт новую карту типов, если $typeMap — массив, иначе меняет её на переданную.

Параметры

array|Cake\Database\TypeMap $typeMap
Создаёт карту типов, если массив, иначе устанавливает переданную карту типов

Возвращает


$this

typeMap()source public

typeMap( array|Cake\Database\TypeMap|null $typeMap null )

Создаёт новую карту типов, если $typeMap — массив, иначе возвращает существующую карту типов или меняет её на переданную.

Устарело

3.4.0 Используйте setTypeMap()/getTypeMap() вместо этого.

Параметры

array|Cake\Database\TypeMap|null $typeMap необязательно null
Создаёт карту типов, если массив, иначе устанавливает переданную карту типов

Возвращает


$this|\Cake\Database\TypeMap

Магические методы, унаследованные от Cake\Database\TypedResultInterface

getReturnType()

Подробное описание свойств

$_namesource

protected string

Имя функции, которая должна быть построена при генерации строки SQL

© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.4/class-Cake.Database.Expression.FunctionExpression.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API