Класс обертки Mysqli by Koenig (Допилить)

9.2K
.
L!MP, это имеется. Использовал шаблоны Компоновщик и Интерпретатор. Конечно есть свои ограничения (все таки полноценный анализатор лучше, но жирнее), в общем работает достаточно хорошо. Я постараюсь завтра записать небольшое видео на эту тему, если интересует, а пока можешь глянуть в пакет PPHP\patterns\database\query, там и находится унификатор.
.
L!MP, Я сейчас работаю над документацией )) Недавно закончил генератор документации, сейчас как раз пишу примеры и пользовательскую часть.
.
# Delphinum (25.08.2013 / 00:33)
L!MP, Я сейчас работаю над документацией ))
Ты уже пол года над ней работаешь
.
L!MP, и это нормально )
.
Delphinum
Воодушевленный темой написал фабрику объектных SQL инструкций. Приведу пример использования:
// DELETE people WHERE `name` = "ivan" OR (`id` > "5" AND `id` < "20")
echo Delete::getInstance()->table('people')->where('name', '=', 'ivan')->create('id', '>', '5')->andC('id', '<', '20')->last('OR')->interpretation('oci'); // Диалект Oracle DB

Достаточно ли понятно, нужно ли что то поправить?
.
L!MP
Delphinum, группировка условий не очевидна.
Глядя на вот это:
->create('id', '>', '5')->andC('id', '<', '20')->last('OR')

сразу и не догодаешься что оно должно сгенерировать вот это:
OR (`id` > "5" AND `id` < "20")
.
Для создания сложных, вложенных условий, более очевидного интерфейса не придумал.
.
Delphinum, не много многословно, но всё же:
Delete::getInstance()
    ->table('people')
    ->where('name', '=', 'ivan')
    ->orWhere(function ($qb) {
        $qb->where('id', '>', '5');
        $qb->where('id', '<', '20');
    })
    ->interpretation('oci')
.
А где разделитель and?
.
Delphinum, логика and по умолчанию. Т.е
->where()->where() = cond AND cond,
->where()->orWhere() = cond OR cond
Всего: 362