Я тут все думаю, как бы забацть новую версию.
С учетом всех тех доработок, которые были сделаны и предложены
Что хочется сделать:
1. поддержку именованных плейсхолдеров
2. плейсхолдер без типа, по дефолту - строка
3. Обозначение типа не только буквой но и словом.
4. поддержку родных препаредов, транслируя, по возможности, именованные в родные, как это делает ПДО.
5. Отдельный плейсхолдер все-таки, для белых спысков. Который на вход принимает массив - само значение и массив вариантов.
6. выкинуть все "массивные" плейсхолдеры, добавив простой синтаксис для повторения (не помню, у кого идею подсмотрел, но она все больше и больше нравится). Скорее всего - уже стандартные для пхп квадратные скобки:
7. разделение класса на части: отдельно парсер, отдельно основной класс, отдельно стейтмент. И только потом понаписать хелперов-однострочников. А не как сейчас, когда весь класс только из них и состоит.
Чтобы можно было множественное execute() для родных препаредов. B чтобы внутри функции не переписывать список параметров вручную, как сейчас.
Чтобы было этакое API, которое можно было бы вызывать как напрямую, так и послужило бы базой для хелперов. или даже вообще без них обойтись, сделав method-chaining:
Хотя нет, наверное. Однострочники все равно нужны. Но именно как сахар, а не как основа.
В топик призываются все неравнодушные, а так же авторы собственных классов (которым я безмерно благодарен - не ожидал, если честно, что идея получит такую широкую поддержку и развитие) - обсудить идеи и предложить свои. Я, скорее всего, что-то пропустил из отличных идей. Ну, и критика приветствуется.
С учетом всех тех доработок, которые были сделаны и предложены
Что хочется сделать:
1. поддержку именованных плейсхолдеров
2. плейсхолдер без типа, по дефолту - строка
3. Обозначение типа не только буквой но и словом.
4. поддержку родных препаредов, транслируя, по возможности, именованные в родные, как это делает ПДО.
5. Отдельный плейсхолдер все-таки, для белых спысков. Который на вход принимает массив - само значение и массив вариантов.
6. выкинуть все "массивные" плейсхолдеры, добавив простой синтаксис для повторения (не помню, у кого идею подсмотрел, но она все больше и больше нравится). Скорее всего - уже стандартные для пхп квадратные скобки:
PHP:
SELECT [?n] FROM ?n WHERE id IN ([?i])
UPDATE t SET [?n = ?s]
INSERT INTO t (field, [?n]) VALUES (?f, [?s])
Чтобы можно было множественное execute() для родных препаредов. B чтобы внутри функции не переписывать список параметров вручную, как сейчас.
Чтобы было этакое API, которое можно было бы вызывать как напрямую, так и послужило бы базой для хелперов. или даже вообще без них обойтись, сделав method-chaining:
PHP:
$sql = "SELECT [?n] FROM table WHERE id IN ([?i])"
$data = DB::parse($sql)->execute($fieldlist, $ids)->fetchAll();
В топик призываются все неравнодушные, а так же авторы собственных классов (которым я безмерно благодарен - не ожидал, если честно, что идея получит такую широкую поддержку и развитие) - обсудить идеи и предложить свои. Я, скорее всего, что-то пропустил из отличных идей. Ну, и критика приветствуется.
Последнее редактирование: