Класс для работы с БД - мета язык?

Статус
В этой теме нельзя размещать новые ответы.

hell0w0rd

Продвинутый новичок
Shasoft, ты спрашиваешь совет, никого не слушаешь и только хамишь. Чего ты вообще ждал от этой темы?
 

Shasoft

Новичок
hell0w0rd, я ждал ОБОСНОВАННОГО совета/критики. А не распальцовки и хамства.
 
Последнее редактирование:

akd

dive now, work later
Команда форума
ну вот лично для меня .. название темы выглядит как "Класс для работы с мета языком - еще один мета язык?". и ждем обоснованного совета/критики. на совет выучить первый мета язык, перед тем как создавать второй реагируем неадекватно :)
 

hell0w0rd

Продвинутый новичок
Shasoft, ну так тебе целых два совета поступило:
1) используй нативный sql, сваливая туда все условия
2) используй нативный php, который соберет sql-запрос
Ты же вместо этого хочешь написать непонятный язык, который будешь транслировать в php, а затем что? eval?
И я так и не понял чем тебе препареды не угодили?
 

Shasoft

Новичок
hell0w0rd, могу ошибаться, но разве какой-то фреймвок использует пп.1 или 2? Вроде в каждом свой класс для работы с БД. Наверное не зря так делается.
Тот же класс Дмитрия Котерова тоже не просто так написан. Его используют также вместо пп.1 и 2. Вот и я предложил замену этому классу.
 

hell0w0rd

Продвинутый новичок
Shasoft, класс Котерова не замена sql, а замена существующему в php api для работы с базой.
Да, все сейчас все популярные фреймворки имеют query-builderы и удобное api для написания чистых запросов. Есть всякие DQL, PQL, но они в основном для связи ОРМ и sql. Ты пишешь SELECT u FROM User u, а на деле движок смотрит в схему, описанную для класса User и понимает, что таблица у него users, а поля id и username и подставляет их в запрос.
Но вся логика всегда описывается в php, или sql, когда это рационально
 

Shasoft

Новичок
hell0w0rd, так и мой мета-язык не замена SQL. Он просто как надстройка над SQL. Т.е. он предназначен для сокращения написания запросов, как и класс Котерова. Просто его класс парсит запрос динамически, а я генерирую код на PHP
 

Фанат

oncle terrible
Команда форума
Вообще, если посмотреть немного отстранённо, то в общем понятно.

Во-первых, чувак старательно изобретает помесь орма с квери-билдером, но сказать не может.
Во-вторых, его подводит чудовищное незнание языка РНР. Не умея пользоваться которым, он начинает изобретать франкенштейна из своего абапа, пхп и встроенного языка программирования 1с Предприятие.

Я думаю, что он искренне считает вот эту вот пахучую субстанцию
Код:
$__result = @mysqli_query(sqlmeta::$DBHandle,$_v__sql,MYSQLI_STORE_RESULT);
примером нормального кода на пхп.
А свой говнокод - как следствие! - единственной альтернативой

Я думаю, что ему стоит все-таки объяснить три вещи:
- если хочешь, чтобы код работы с БД понимал контекст (знал, с какой таблицей работаем, какие поля, etc) - то это называется ORM. плюс орма в том, что при обращении к нему мы даже близко не знаем про SQL.
- если хочется динамики при составлении запросов - это квери билдер. SQL-я как такового тоже не видно, но пишуший должен хорошо его себе представлять.
- если кажется, что язык ограничивает полет фантазии юного дарования - надо сначала этот язык выучить. После этого все идеи про изобретение говнометамонстров сами собой отпадут.
 

Shasoft

Новичок
Фанат, видно вы просто кроме PHP ничего не знаете. И вам не знакомо такое понятие как препроцессор (не говоря уж про мета-объектный компилятор для Qt). При использовании макроподстановок совершенно перпендикулярно во что разворачивается команда. Она может разворачиваться хоть в 2 строчки, хоть в 1 страницу кода. Главное - чтобы она отрабатывала правильно. И красивость кода тут не нужна, так как править этот развернутый код никто не будет.
Вы даже так и не поняли о чем я говорил. Вот что плохо. Ладно вы "пальцы гнете", что отлично знаете PHP. Это ещё можно понять - вам хочется показать, что вы знаток. С возрастом это само пройдет.
Но вот "гнуть пальцы", даже не разобравшись в том, что вам говорят - от этого лучше избавляться.
 

Фанат

oncle terrible
Команда форума
Значит смотри.
Сейчас я попробую поставить тебя на место. Один раз.
Если ты и после этого продолжишь верещать "я такой умный, что меня никто не понимает!", то продолжать будешь где-нибудь ещё. Мы тут - в отличие от некоторых - программисты, и понимаем, что от бессмысленных повторений надо избавляться.

Я тебя поймал за руку один раз:
Код:
if( %INSERT_ID() )
{
}
- вот этот ад ты пишешь из-за того, что не понимаешь даже базовых возможностей языка. Хотя если убрать идиотский процентик, то этот код выполнится... безо всякой прекомпиляции!

Я поймал тебя за руку второй раз:
Код:
 sqlmeta::connect($config);
$_v__sql .= "SELECT * FROM cms5_users WHERE `mandt`='".$config->mandt."' AND `id` = ".$id." ";
if(year==2014)
{
if($id!=2)
{
$_v__sql .= "AND `name` = ".mysqli_real_escape_string(sqlmeta::$DBHandle,$name)." ";
}
$_v__sql .= "AND year > 1977 ";
}
$_v__sql .= "AND year < 2000 ";
$__result = @mysqli_query(sqlmeta::$DBHandle,$_v__sql,MYSQLI_STORE_RESULT);
- свою говноподелку ты сравниваешь со **сгенерённым ей же говнокодом** и при этом искренне считаешь, что все, кто твою гениальныю идею не оценил, пишут так же.

Давай ты всё-таки узнаешь, как пишут другие, и действительно ли это настолько ужасно, как тебе воображается.
потом попытаешься вместо вот этого того что сверху генерировать что-то более осмысленное - и после этого продолжим.
 

Фанат

oncle terrible
Команда форума
Основная претензия, я бы сказал, заключается в том, что ты пытаешься замахиваться на пхп код. что в данном случае абсолютно избыточно.
При том что парсинг и генерация SQL ничего из себя нового не представляет, и используется много кем, в том числе и из присутствующих.
Но если убрать генерацию пхп кода из твоей говноподелки, то останется голая dbsimple, и весь гонор в итоге уйдёт в песок.
Я понимаю, что обидно. Но умение признавать свои ошибки для гения не менее важно, чем умение генерить безумные идеи.
 

Фанат

oncle terrible
Команда форума
Кстати,
И красивость кода тут не нужна, так как править этот развернутый код никто не будет.
понятие отладки юному пассионарию также незнакомо.
А это, между прочим, не хаханьки - будь я твоим папашей, взял бы ремня, и отодрал хорошенько за одну эту фразу.
 

Shasoft

Новичок
Сейчас я попробую поставить тебя на место.
В этом и проблема детей - вы пытаетесь поставить всех на место, чтобы показать свою крутизну. Когда повзрослеете и у вас это пройдет, то сможете помогать людям без распальцовки.

Я тебя поймал за руку один раз "if( %INSERT_ID() )"
Если бы вы подумали (или внимательно прочитали что я написал), то поняли бы что это ПРИМЕР ЗАПИСИ СИНТАКСИСА, но не пример рабочего кода. Т.е. я показал как будет выглядеть запись на мета языке и при этом сам код взял просто ОТ БАЛДЫ.

свою говноподелку ты сравниваешь со **сгенерённым ей же говнокодом** и при этом искренне считаешь, что все, кто твою гениальныю идею не оценил, пишут так же
Я так понимаю вы считаете что чем больше вы вставите в комментарий слово "говно", тем вы круче? Ошибаетесь. Но это, опять же, с возрастом у вас пройдет.

Но если убрать генерацию пхп кода из твоей говноподелки, то останется голая dbsimple, и весь гонор в итоге уйдёт в песок.
До вас всё-таки дошло то, что я с самого начала писал. Я как раз о том и говорил, что мой мета язык ЗАМЕНЯЕТ dbsimple. Только dbsimple динамически каждый раз парсит выражения, а у меня оно парсится один раз и на основе этого генерируется php код, который dbsimple выполняет динамически.

понятие отладки юному пассионарию также незнакомо.
Вообще я думал сначала генерировать код в ОДНУ СТРОКУ, но потом всё-таки вставил разбиение на строки, так как всё-таки пока не оттестировано, то в таком виде проще будет искать ошибки, если они вдруг будут.

умение признавать свои ошибки для гения не менее важно, чем умение генерить безумные идеи
Согласен. Хотя, по моему мнению, лучше не считать себя гением при придумке чего-то, что вам ещё не встречалась. Собственно я этому правилу и следую. В первом сообщении я как раз и спрашивал: а не существует ли уже чего то такого в природе? Но тут же гении начали мне тыкать и указывать что моя идея в корне не верна потому что "мне нужно учить SQL".

будь я твоим папашей, взял бы ремня, и отодрал хорошенько за одну эту фразу.
Несомненно в наше время даже в вашем юном возрасте можно стать папашей, но лучше сначала подростите, наберитесь опыта. С детьми, знаете ли, гораздо сложнее, чем с PHP.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху