За последние 24 часа нас посетил 35731 программист и 1770 роботов. Сейчас ищут 1216 программистов ...

Cruder Query Builder для бесшовной работы в MySQL/MariaDB, Posgree, SQLite

Тема в разделе "Решения, алгоритмы", создана пользователем musicman3, 14 окт 2025 в 17:12.

  1. musicman3

    musicman3 Активный пользователь

    С нами с:
    30 июн 2019
    Сообщения:
    147
    Симпатии:
    12
    Адрес:
    Дыра на карте
    Репозиторий на GitHub:
    https://github.com/musicman3/Cruder

    Инсталляция:

    composer require musicman3/cruder

    Системные требования:
    • OS Unix, Linux, Windows
    • Apache Web Server >= 2.4 or Nginx >= 1.17
    • PHP >= 8.2
    • MySQL || MariaDB || PostgreSQL || SQLite
    PHP расширения:
    • pdo_mysql (для MySQL/MariaDB)
    • pdo_pgsql (для PostgreSQL)
    • pdo_sqlite (для SQLite)
    Пару лет назад у меня возникла потребность в проекте eMarket (https://github.com/musicman3/eMarket), при которой понадобилась работа с различными базами данных. Во-первых пользователь на этапе инсталляции должен был сам выбрать тип БД, а во-вторых должна была быть возможность в едином коде работать одновременно с разными типами БД по, скажем так, единому протоколу.

    При этом синтаксис всегда должен быть одинаковым, и никаких отдельных дополнений для Postgree или SQLite, которые расширяли бы только их, но не были бы в других БД. Все должно было одинаково и синхронно работать без внесения изменений в код. Все операторы и функции должны идентично выполняться в текущем коде на любой БД, чтобы можно было менять БД на лету, мигрировать без заморочек, работать в одной БД а получать данные из другой и т.п. Функции, которые используются в базах данных, также должны идентично выполняться на всех поддерживаемых БД.

    Поэтому был сделан CRUD Query Builder, в котором все проектировалось для этих целей. Кроме того проект не должен быть сложным для использования и понимания, должен быть легковесным. Как показало время, Cruder работает стабильно, с минимальным оверхедом.

    Довольно легко добавлять новый SQL-функционал, особенно если SQL-синтаксис идентичен или близко похож в БД. Так что если чего не достает в командах, пишите, постараюсь реализовать.

    Кроме того, так как используется PDO с подготовленными запросами, мы получаем защиту от SQL-инъекций. Также внедрен фильтр для защиты и от XSS-инъекций.

    Не агитирую, каждый сам решает что ему удобно. Задавайте вопросы кому интересно.
     
    #1 musicman3, 14 окт 2025 в 17:12
    Последнее редактирование: 14 окт 2025 в 17:32