Spec-Zone.ru › CakePHP 3.7

Класс QueryExpression

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

Cake\Database\Expression\QueryExpression реализует Cake\Database\ExpressionInterface, Countable использует Cake\Database\TypeMapTrait

Прямые подклассы

  • Cake\Database\Expression\FunctionExpression
  • Cake\Database\Expression\OrderByExpression
Пространство имён: Cake\Database\Expression
Расположение: Database/Expression/QueryExpression.php

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

  • $_conditions protected
    array

    Список строк или других объектов выражения, представляющих «ветви» дерева выражения. Например, один ключ массива может выглядеть как "sum > :value"

  • $_conjunction protected
    string

    Строка, используемая для объединения каждого из внутренних выражений, которые этот объект хранит внутри, например, "AND", "OR" и т.д.

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

  • _typeMap

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

  • __call() public
    Помогает прозрачно вызывать методы and() и or().
  • __clone() public
    Клонировать этот объект и его поддерево выражений.
  • __construct() public

    Конструктор. Новый объект выражения может быть создан без параметров и динамически построен. В противном случае можно передать массив условий, содержащий либо структуру массива в виде дерева для разбора, либо другие объекты выражений. Дополнительно можно задать ключевое слово союза, используемое для объединения каждой части этого уровня дерева выражений.

  • _addConditions() protected

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

  • _calculateType() protected
    Возвращает имя типа для переданного поля, если оно хранилось в typeMap
  • _parseCondition() protected

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

  • add() public

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

  • addCase() public
    Добавляет новое выражение case в объект выражения
  • and_() public

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

  • between() public

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

  • count() public

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

  • eq() public
    Добавляет новое условие в объект выражения в виде «поле = значение».
  • equalFields() public
    Строит условие равенства или присваивания с оболочкой идентификатора.
  • exists() public
    Добавляет новое условие в объект выражения в виде «СУЩЕСТВУЕТ (...)».
  • getConjunction() public
    Получает текущий настроенный союз для условий на этом уровне дерева выражений.
  • gt() public
    Добавляет новое условие в объект выражения в виде «поле > значение».
  • gte() public
    Добавляет новое условие в объект выражения в виде «поле >= значение».
  • hasNestedExpression() public

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

  • in() public

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

  • isCallable() public
    Проверить, является ли вызываемый объект допустимым.
  • isNotNull() public
    Добавляет новое условие в объект выражения в виде «поле НЕ NULL».
  • isNull() public
    Добавляет новое условие в объект выражения в виде «поле IS NULL».
  • iterateParts() public
    Выполняет вызываемую функцию для каждой из частей, составляющих это выражение.
  • like() public
    Добавляет новое условие в объект выражения в виде «поле LIKE значение».
  • lt() public
    Добавляет новое условие в объект выражения в виде «поле < значение».
  • lte() public
    Добавляет новое условие в объект выражения в виде «поле <= значение».
  • not() public

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

  • notEq() public
    Добавляет новое условие в объект выражения в виде «поле != значение».
  • notExists() public
    Добавляет новое условие в объект выражения в виде «НЕ СУЩЕСТВУЕТ (...)».
  • notIn() public

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

  • notLike() public
    Добавляет новое условие в объект выражения в виде «поле НЕ LIKE значение».
  • or_() public

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

  • setConjunction() public
    Изменяет союз для условий на этом уровне дерева выражений.
  • sql() public

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

  • tieWith() public deprecated

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

  • traverse() public

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

  • type() public deprecated
    Обратный совместимый обёрткой для tieWith()

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

__call()source public

__call( string $method , array $args )

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

Параметры

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

Возвращает

Cake\Database\Expression\QueryExpression

Исключения

BadMethodCallException

__clone()source public

__clone( )

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

__construct()source public

__construct( string|array|Cake\Database\ExpressionInterface $conditions = [] , array|Cake\Database\TypeMap $types = [] , string $conjunction = 'AND' )

Конструктор. Новый объект выражения можно создать без параметров и динамически построить. В противном случае можно передать массив условий, содержащий либо структуру массива в виде дерева для разбора, либо другие объекты выражений. Дополнительно можно задать ключевое слово союза, используемое для объединения каждой части этого уровня дерева выражений.

Параметры

string|array|Cake\Database\ExpressionInterface $conditions optional []

структура массива в виде дерева, содержащая все условия, которые должны быть добавлены или вложены внутри этого объекта выражения.

array|Cake\Database\TypeMap $types optional []

ассоциативный массив типов, которые должны быть связаны со значениями, переданными в $conditions.

string $conjunction optional 'AND'

соединитель, который будет объединять все строковые условия на этом уровне дерева выражений. Например, "AND", "OR", "XOR"...

См. также

\Cake\Database\Expression\QueryExpression::add() для получения более подробной информации о $conditions и $types

_addConditions()source protected

_addConditions( array $conditions , array $types )

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

Параметры

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

_calculateType()source protected

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

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

Параметры

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

Возвращает

string|null
Вычисленный тип или null, если тип неизвестен.

_parseCondition()source protected

_parseCondition( string $field , mixed $value )

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

Параметры

string $field

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

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

Возвращает

string|Cake\Database\ExpressionInterface

add()source public

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

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

Если тип, переданный для любого из полей, выражен как "type[]" (в скобках), то это приведет к динамической переписке плейсхолдера, поэтому, если значение является массивом, он создаст столько плейсхолдеров, сколько значений в нем.

Параметры

string|array|Cake\Database\ExpressionInterface $conditions

одно или несколько условий, которые нужно добавить. При использовании массива, если ключ равен 'OR' или 'AND', будет создан новый объект выражения с этим союзом и переданным значением массива в качестве условий.

array $types optional []

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

Возвращает


$this

См. также

\Cake\Database\Query::where() для примеров условий

addCase()source public

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

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

Параметры

array|Cake\Database\ExpressionInterface $conditions

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

array|Cake\Database\ExpressionInterface $values optional []

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

array $types optional []

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

Возвращает


$this

and_()source public

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

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

Параметры

callable|string|array|Cake\Database\ExpressionInterface $conditions
для объединения с AND
array $types optional []

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

Возвращает

Cake\Database\Expression\QueryExpression

between()source public

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

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

Параметры

string|Cake\Database\ExpressionInterface $field
Имя поля, которое сравнивается со значениями в диапазоне.
mixed $from
Начальное значение диапазона.
mixed $to
Конечное значение в диапазоне сравнения.
string|null $type optional null
имя типа для $value, настроенного с помощью Type map.

Возвращает


$this

count()source public

count( )

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

Возвращает

integer

Реализация

Countable::count()

eq()source public

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

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

Параметры

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

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

Возвращает


$this

equalFields()source public

equalFields( string $left , string $right )

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

Параметры

string $left
Левое поле условия соединения.
string $right
Правое поле условия соединения.

Возвращает


$this

exists()source public

exists( Cake\Database\ExpressionInterface $query )

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

Параметры

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

Возвращает


$this
END_OF_DOCUMENT_MARKER

getConjunction()source public

getConjunction( )

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

Возвращает

string

gt()source public

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

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

Параметры

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

Возвращает


$this

gte()source public

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

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

Параметры

string|Cake\Database\ExpressionInterface $field
Базовое поле, которое сравнивается со значением
mixed $value
Значение, которое будет привязано к $field для сравнения
string|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 )

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

Параметры

string|Cake\Database\ExpressionInterface $field
Базовое поле, которое сравнивается со значением
string|array $values
значение, которое будет привязано к $field для сравнения
string|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 )

Добавляет новое условие к объекту выражения в форме «поле IS NOT 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, как настроено с помощью карты типов.

Возвращает


$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, как настроено с помощью карты типов.

Возвращает


$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, как настроено с помощью карты типов.

Возвращает


$this

not()source public

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

Добавляет новый набор условий на текущий уровень дерева и инвертирует конечный результат путём добавления 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, как настроено с помощью карты типов. Если оно суффиксровано «[]» и значение является массивом, то будут созданы несколько плейсхолдеров, по одному на каждое значение в массиве.

Возвращает


$this

notExists()source public

notExists( Cake\Database\ExpressionInterface $query )

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

Параметры

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, как настроено с помощью карты типов.

Возвращает


$this

notLike()source public

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

Добавляет новое условие к объекту выражения в виде "поле НЕ ПОДОБНО значению".

Параметры

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

Возвращает


$this

or_()source public

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

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

Параметры

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

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

Возвращает

Cake\Database\Expression\QueryExpression

setConjunction()source public

setConjunction( string $conjunction )

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

Параметры

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

Возвращает


$this

sql()source public

sql( Cake\Database\ValueBinder $generator )

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

Параметры

Cake\Database\ValueBinder $generator
Объект генератора плейсхолдеров

Возвращает

string

Реализация

Cake\Database\ExpressionInterface::sql()

tieWith()source public deprecated

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 )

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

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

Параметры

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

Реализация

Cake\Database\ExpressionInterface::traverse()

type()source public deprecated

type( string|null $conjunction = null )

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

Устарело

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

Параметры

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

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

Возвращает

string|Cake\Database\Expression\QueryExpression
$this

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

defaultTypes()source public deprecated

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 )

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

Этот метод полезен, если вам нужно установить сопоставления типов, которые используются в нескольких функциях/выражениях в запросе.

Чтобы добавить значения по умолчанию без перезаписи существующих, используйте getTypeMap()->addDefaults()

Параметры

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

Возвращает


$this

См.

\Cake\Database\TypeMap::setDefaults()

setTypeMap()source public

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

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

Параметры

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

Возвращает


$this

typeMap()source public deprecated

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

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

$_conditionssource

protected array

Список строк или других объектов выражений, которые представляют "ветви" дерева выражения. Например, один ключ массива может выглядеть как "сумма > :значение"

[]

$_conjunctionsource

protected string

Строка, используемая для объединения каждого из внутренних выражений, которые этот объект хранит внутри, например "И", "ИЛИ" и т. д.

© 2005–present 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.7/class-Cake.Database.Expression.QueryExpression.html

Spec-Zone.ru

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