Инструменты пользователя

Инструменты сайта


limb3:ru:packages:dbal:lmb_template_query

lmbTemplateQuery

lmbTemplateQuery - это абстрактный класс, который является родителем для всех классов подсистемы Query. lmbTemplateQuery получает в конструкторе строку с базовым SQL запросом, который можно расширять (это расширение реализовано в дочерних классах). Базовый SQL запрос может содержать определенные метки, в которые можно вставлять расширения, например, %fields%, %where% (можно назвать их placeholder-ы или hint-ы). То, какие метки и какие расширения поддерживаются, определяется уже в дочерних классах.

Так как в конструкторе lmbTemplateQuery получает уже SQL-код (с placeholder-ами), этот класс нельзя считать полноценной инкапсуляцией SQL - lmbTemplateQuery не умеет (по крайней мере пока) производить лексический разбор строки запроса на составляющие.

Дочерние классы, такие как lmbSelectQuery или lmbInsertQuery содержат методы для заполнения меток. После этого можно получить конечный вариант запроса при помощи метода toString() и выполнить запрос при помощи остальной части DBAL пакета, например:

 $sql = $query->toString();
 $connection = lmbToolkit :: instance()->getDbConnection();
 $stmt = $connection->newStatement($sql);
 $stmt->execute();

Для упрощения lmbTemplateQuery содержит метод lmbTemplateQuery :: getStatement(), который реализует вышеуказанный кусок кода.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
   __ __   ____   ___    __    ___ 
  / // /  / __/  / _ |  / /   / _ \
 / _  /  / _/   / __ | / /__ / ___/
/_//_/  /_/    /_/ |_|/____//_/
 
limb3/ru/packages/dbal/lmb_template_query.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)