Библиотека доступа к MySQL/PostgreSQL

Имеет ли смысл заниматься развитием данной библиотеки?

  • Да, имеет

    Голосов: 1 10,0%
  • Нет, не имеет

    Голосов: 9 90,0%

  • Всего проголосовало
    10

Devoter

Новичок
Здравствуйте, в общем, не обессудьте, если не совсем в ту тему написал, так как более подходящей не нашел. Не так давно перебирал свои старые проекты и нашел целый движок, написанный с нуля на PHP, покрутил его и для себя выяснил, что сам движок, в общем-то, неинтересен теперь (ему уже более 4 лет), но специально для него я написал несколько классов, которые, как я тогда думал, можно было назвать ORM. Впрочем, все не совсем так. Теперь я выпилил из движка все эти классы и постарался наспех оформить их в качестве библиотеки, которую можно было бы использовать отдельно. Суть библиотеки в следующем: она позволяет работать с PostgreSQL или MySQL, через собственный интерфейс, создавая запросы SELECT, INSERT, UPDATE и DELETE. Поддерживаются различного рода JOIN, WHERE, GROUP и т.д.. Также есть несколько скриптов на php/bash, которые позволяют переносить данные из одной СУБД в другую. Большинство комментариев на русском, впрочем, если будет нужно - переведу.
Цель данной темы в том, чтобы вы, дорогие участники форума, оценили - есть ли смысл дорабатывать библиотеку, или же она имеет стопроцентный статус не нужен. Так как, во время выпиливания из движка, возникло несколько идей по поводу переделки, что сделало бы составление запросов к БД более лаконичным. Возможно, у кого-то зачешутся руки взять мои наработки за основу и переделать все с блэк-джеком и... ну вы поняли )). А пока буду благодарен, за проведенные вами тесты и отзывы о моей поделке. Особенно прошу в случае любого ответа оставлять комментарий в виде пояснения вашей точки зрения.
На все ваши вопросы с удовольствием отвечу здесь же.
https://github.com/Devoter/rtQuery
 

fixxxer

К.О.
Партнер клуба
Без примеров или тестов непонятно, но это выглядит как недоделанный DBAL/квери-билдер с неудобным API и какими-то частными случаями под конкретный проект (типа юзеров).

В современных фреймворках все это уже есть и сделано лучше.
 

Devoter

Новичок
Пожалуй, вы правы, насчет DBAL - уж точно, это как раз оно. Насчет частных случаев - не совсем. Там просто примеры оставлены. Примеры могу привести. Но мысль ясна, спасибо.
 

ZKolyaNZ

Новичок
Пожалуй, вы правы, насчет DBAL - уж точно, это как раз оно. Насчет частных случаев - не совсем. Там просто примеры оставлены. Примеры могу привести. Но мысль ясна, спасибо.
Все же в любом случае, можно и развивать,
например если держите свой сайт по скриптам и т.д., для примера, либо юзабилити будущих прогеров.
Хотя мне больше ваш класс напоминает "оболочку" для MySQL\PostgreSQL , сильно не смотрел.
Кстати как реализовуется защита от sql inj ?
Немного смотрел... напоминает "самсделалПДО", если нет исправьте.
---
Лично мое мнение, что стоит развивать.
 

ZKolyaNZ

Новичок
---
Посмотрел еще немного глубже, красиво оформлено код, валидность PSR\phpdoc.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Валидность PSR? Там табы вместо 4 пробелов. Уйди и не позорься.
 

ZKolyaNZ

Новичок
Валидность PSR? Там табы вместо 4 пробелов. Уйди и не позорься.
ну по крайней мере не определенно быдлокод, как бывает.
а "уйди и не позорься" смешно.
--
если каждый раз уходить, можно остаться быдлокодером и ничего не научиться.
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@ZKolyaNZ, мне повторить?

Там нет автолоадера, инклюды в теле неймспейсов, наличие завершающих тэгов php, привычка писать protected через _tables, какие-то скобки в определении namespace, и так далее.
 

ZKolyaNZ

Новичок
@ZKolyaNZ, мне повторить?

Там нет автолоадера, инклюды в теле неймспейсов, наличие завершающих тэгов php, привычка писать protected через _tables, какие-то скобки в определении namespace, и так далее.
ну завершающие теги php , это уже слишком придырка...
в том же WP нет в конце ?>
исправьте, если не прав.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@ZKolyaNZ, открой PSR, найди там про завершающие тэги, увидишь, что их не должно быть, ты меня просто не понял.

И, да, как сказал @fixxxer, надо было бы хоть примеры выложить. Статью в блоге или wiki нормальное.

PS: ах, да, чуть не забыл, комменты на русском языке - за такое могут сжечь.
 

ZKolyaNZ

Новичок
@ZKolyaNZ, открой PSR, найди там про завершающие тэги, увидишь, что их не должно быть, ты меня просто не понял.
.
А, теперь понял.
За русские комменты + сам такой, знаю и грешу )
За вики тоже здесь поддерживаю... вообще разработчик сего чуда зашел - ушел.
Хотя его классы в принципе как для юниора... ну ты понимаешь... поюзать, чисто для примера, хорошего или плохого - можно.
 

AnrDaemon

Продвинутый новичок
Когда я пишу что-то подобное, я, по крайней мере, знаю, зачем я это пишу. И стараюсь сильно не уродоваться.
Если человеку так сильно нужна работа с несколькими БД, ну возьми квери билдер… Их как грязи.
 

Фанат

oncle terrible
Команда форума

AnrDaemon

Продвинутый новичок
Мне очень понравилось, но только к fetchAll(); надо обязательно добавить третий параметр - фетч моду. А то жалко же разбазаривать такое богатство
Я так редко её меняю (в смысле, за 15 лет ни разу не…), что мне не пришла в голову эта идея.
 

AnrDaemon

Продвинутый новичок
Да, я понимаю, о чём ты. Смысл был в том, что я никогда ничем кроме FETCH_ASSOC не пользовался, не говоря уже о том, чтобы менять моду по ходу выполнения программы.
Пожалуй, перепишу конструктор, сделаю FETCH_ASSOC дефолтом вместо форса оно так и было изначально… не путайте меня…
Кому надо, идите чейнить через ::run()->fetchAll(...), он для этого писался.

Вопрос, а то в ирке что-то тишина.
Код:
 "psr-4": { "VendorName\\": "" }
- это валидное объявление?
 
Последнее редактирование:

Devoter

Новичок
Цели "защитить" свое "творение" )) не имею, а на некоторые замечания отвечу.
Да, я, в основном, пишу на C++. Да, я не использую автолоады, так как считаю их не слишком наглядными. О комментариях на русском я писал в одном из первых постов, писалось все 4 года назад, тогда нужно было другим людям читать сгенерированную документацию на русском. Сейчас такой проблемы нет. Насчет завершающих тегов php: хотелось бы увидеть более-менее аргументированное пояснение - в чем моветон? Нет, не PDO, пожалуй, на DBAL/QueryBuilder больше похоже.
Единственный упрек, который, считаю совершенно необоснованным - начало имен приватных полей класса через "_". В мире используются различные практики, "m_privateVar", "mPrivateVar", "_privateVa" и т.д.. Используется для одной очень простой цели - отличия приватных полей от публичных. Чтобы, встретив, в коде запись вида $this->_myVar и $this->otherVar, было сразу понятно, что первое поле - приватное, второе - публичное. Если посмотреть на тот же Python, там вообще, поле считается приватным, только если начинается с "__".
Про fetch assoc можно подумать.
Насчет использования инклюдов в теле namespace - интересная мысль, почитаю рекомендации. Если будет время в ближайшие пару дней - кое-что исправлю.
 

Devoter

Новичок
Слегка "причесал" код. За комментарии пока не брался - времени особо нет. Да и надо бы лучше подумать над примерами использования. А часть translator вообще неработоспособна в текущем состоянии. На самом деле, есть куча моментов, которые мне не нравятся в текущей реализации.
 
Сверху