====== lmbTemplateQuery ====== **lmbTemplateQuery** - это абстрактный класс, который является родителем для всех классов подсистемы [[query|Query]]. lmbTemplateQuery получает в конструкторе строку с базовым SQL запросом, который можно расширять (это расширение реализовано в дочерних классах). Базовый SQL запрос может содержать определенные метки, в которые можно вставлять расширения, например, %fields%, %where% (можно назвать их placeholder-ы или hint-ы). То, какие метки и какие расширения поддерживаются, определяется уже в дочерних классах. Так как в конструкторе lmbTemplateQuery получает уже SQL-код (с placeholder-ами), этот класс нельзя считать полноценной инкапсуляцией SQL - lmbTemplateQuery не умеет (по крайней мере пока) производить лексический разбор строки запроса на составляющие. Дочерние классы, такие как [[lmb_select_query]] или [[lmb_insert_query]] содержат методы для заполнения меток. После этого можно получить конечный вариант запроса при помощи метода toString() и выполнить запрос при помощи остальной части DBAL пакета, например: $sql = $query->toString(); $connection = lmbToolkit :: instance()->getDbConnection(); $stmt = $connection->newStatement($sql); $stmt->execute(); Для упрощения lmbTemplateQuery содержит метод lmbTemplateQuery :: getStatement(), который реализует вышеуказанный кусок кода.