Список изменений

Версия Дата Изменения
v2.0.0 28.12.2021
  1. Исправлены inout бинды, избавился от методов linkBind*
  2. Добавлены хелперы Array и Encoding, а также быстрый вызов основных функций этих хелперов через GP.
  3. Добавлена функция insertUpdate()
Версия Дата Изменения
v2.0.0-beta8 26.11.2021 Исправлен баг, при котором если ваша БД Oracle и вы одновременно используете пагинацию и агрегацию на очень тяжелых запросах, то запрос выполнялся десятки минут. Например в реальной задаче запрос без пагинации и агрегации выполнялся 11 секунд, с агрегацией и пагинацией 31 минуту, после исправления - так же 11 секунд (проблема была в операторе in).
v2.0.0-beta7 16.11.2021 Багфиксы:
  1. Для windows у GP::varDump() и у $gp->newLog() теперь правильно формируется относительный путь до php файла.
  2. Теперь у класса Log функция save() работает и для php5.4 (до этого работало только для php7).
  3. Исправлена функция createTablesForLog()
  4. Прочие небольшие правки.
v2.0.0-beta6 15.11.2021 Багфикс GP::varDumpExport().
v2.0.0-beta5 15.11.2021
  1. Добавил библиотеку "логирование процессов".
  2. Добавил хелпер Debug.
  3. Багфикс для секретной функции whereDetailedSearch().
  4. Если в массиве биндов значений больше чем нужно, то больше ошибки не возникает, игнорируем лишние.
  5. Исправлена ошибка в функции update(), когда у нас есть ручные бинды как для where части, так и для update части.
  6. В getDebugInfo не попадали промежуточные запросы - исправил.
  7. Функции column() и map() теперь возвращают вместо false пустой массив.
  8. Добавил еще один вариант сокращенной записи для ->where('/*wh*/', [1,2,3,4]) (также для update() и delete()), если передать обычный массив с числами то он преобразуется в id in (1,2,3,4).
  9. Теперь если в update или delete для where передается пустой массив, то вызывается исключение, а не удаляются/изменяются все записи в таблице.
v2.0.0-beta4 31.08.2021
  1. Багфиксы
    • Если у php версия была ниже 8, то в функции all([...]) не работала агрегация (из за того, что 0 == ‘любой текст’ это true).
    • Если вызываются функции column() и map(), а предыдущий запрос вернул просто цифру (например при insert, update или delete), то теперь вместо ошибки функция возвращает false.
  2. У функций delete() и update() из-за предварительного select'а всех удаляемых/изменяемых записей (при большом их количестве) происходило переполнение памяти. Теперь функции возвращают просто количество этих удаляемых/изменяемых строк.
  3. Если функции delete('nameTable', true) передать вторым параметром именно true (===), то удаляются все записи из таблицы.
  4. Изменилась настройка дебага, теперь вместо 'debug' => ['isDebug' => true, 'maxNumberQuery' => 100] нужно писать 'debugQuery' => 100 или если необходимо отключить сбор информации для отладки, то указываем 'debugQuery' => 0.
    Так же можно изменить настройку в любом месте, вызвав функцию GP::configDebugQuery($numberQuery, $nameConnection).
  5. Реализована упрощенная запись функции where: where('/*wh*/', 2) === where('/*wh*/', ['id', '=', 2])
  6. Добавлена функция whereJoin()
  7. Добавлена функция inserts()
  8. Добавлена секретная функция whereDetailedSearch()
v2.0.0-beta3 13.07.2021
  1. Исправлена ошибка переполнения памяти. Если к БД идут десятки тысяч обращение, (например при синхронизации таблиц между разными БД) то была утечка памяти, связанная с пухнущим массивом логов для отладки (debugInfo()). Исправил, теперь в конфигах можно либо отключить сбор логов, либо ограничить, например по умолчанию сохраняются последние 100 запросов.
  2. Функция all() всегда возвращала массив с ключами в нижнем регистре. Исправил, теперь функция all() возвращает так как пришло из БД. Единственное исключение - агригация, в этом случае ключи массива всегда будут в нижнем регистре.
  3. Если библиотека GreenPig используется со старыми проектами у которых кодировка windows-1251, то с отображением сообщений об ошибках (от Exception) на русском будут проблемы. Самый безболезненные способ, это перевести все сообщения на английский, что и было сделано.
  4. Теперь функция count() возвращает числовой тип, а не строковый.
  5. Исправлен баг, при котором в функциях first/oneOrError('nameColumn'), если указать nameColumn, и значение ячейки будет 0 или '', то функция вернет null.
v2.0.0-beta2 02.07.2021 Убрал из зависимостей в composer.json: ext-pdo и ext-oci8. Т.к. может быть востребована только одна из зависимостей, а не обе сразу (мешает установке через composer).
v2.0.0-beta1 02.07.2021 Запуск проекта.