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

9.21K
.
эти три параметра в where ну очень не красиво смотряся, да и '?' в качестве аргументов это вобще фейл как по мне.
неужели нельзя как то подругому реализовать?
.
flaky, похоже ты не видел какой билдер в кохане
Я не хочу тебя огорчать, но помоему других более подходящих вариантов нет.
.
Screamer
Koenig, в where параметр $type я вижу проверка идет с учетом регистра. Т.е. если я захочу написать LIKE вместо like (а я всегда так пишу), то ничего не выйдет.

А вот здесь вообще мультибайтовую функцию зачемто применил, когда вполне хватилобы strtolower
(mb_strtolower($type), array('asc', 'desc'))
.
(\/)____o_O____(\/)
Screamer, наоборот, можно в обоих регистрах писать, по сути хватило бы и обычной функции
.
(\/)____o_O____(\/)
Screamer, http://fuelphp.com/docs/classe ... .html я тут подсмотрел
.
(\/)____o_O____(\/)
правда смотрел вызов, код не смотрел, там файлов куча
.
Koenig, сейчас вот даже специально в ман заглянул. in_array() учитывает регистр строки.
А у тебя там в методе where():
$str = in_array($type, array(/*ololo ...*/)) 
  ? '`' . $field . '`' . $type 
        . (is_int($value) 
               ? $value 
                : ($value == '?' 
                       ? $value 
                       : ($type == 'like' 
                              ? "'%" . $value . "%'" 
                              : "'" . $value . "'"
                          )
                   )
           ) 
  : die('invalid argument in where');


Кстати, а почему бы не заюзать исключения? К чему die? Его не отловить, в лог не записать. Неудобно же.

Для неверного типа аргумента юзаем InvalidArgumentException
Для неверного значения UnexpectedValueException
Далее по методу RuntimeException
Ну и т.д.
.
(\/)____o_O____(\/)
Screamer, это потом, когда пишешь запрос!, сразу видишь сообщение где косяк
.
Koenig, везде в принципе подход одинаковый, я сейчас сам мельком полистал сырцы. Файлов говоришь куча, билдер что-ли не смог найти? core\classes\database\query
В принципе для библиотеки это нормально, когда куча файлов.
Было бы не плохо если бы ты довел класс до конца включая форматирование как рекомендуется в PSR.
Заюзал неймспейсы, что бы можно было автозагрузчиком подхватить не вмешиваясь ни в код класса, ни в код автозагрузчика (Подразумевается, если автозагрузчик ориентирован на неймспейсы конечно же.)
Исключения, чтобы можно было перехватывать ошибки ну и т.д.
.
#800360
Не совсем понял. Про исключения чтоли? Так можно же их просто выбрасывать без отлова, и потом уже задать обработчик не перехваченных исключений, где юзер сам решает что с ними делать, вывести в браузер или сохранить в лог, или и то и другое. А с die() впринципе ничего не сделаешь.
Всего: 362