<?php
//сука блядь ладно, еще раз пишу, но короче уже, без самих потроков, функций, чисто подход.
//опишем всё это говно на примере простой функции сохранения юзера в базу.
//Нубас допустим пишет функцию такого вида:
public function saveUserNoobStyle( $name , $email , $password ) {
//ну если слышал об инекциях, тот тут у него наверное какая-нибудь фильтрация
$query = "INSERT INTO users (name, email, password) VALUES (`$name `, `$email `, `$password `);" ;
//выполнение запроса что бы сохранить этого юзера в базу
//заебись
}
//но стоит в системе сущности юзера хоть немного измениться или расшириться, то придется переписывать все связанные с ним функции, в том числе и эту.
public function saveUserFuckedUp( $name , $email , $password , $age , $sex , $birthday , $avatar , $skype , $phone , $second_email , $secret_question , $secret_answer ) {
//ну если слышал об инекциях, тот тут у него наверное какая-нибудь фильтрация
$query = "INSERT INTO users (name, email, password, age, sex, birthday, avatar, skype, phone, second_email, secret_question, secret_answer)
VALUES (`$name `, `$email `, `$password `, `$age `, `$sex `, `$birthday `, `$avatar `, `$skype `, `$phone `, `$second_email `, `$secret_question `, `$secret_answer `);" ;
//выполнение запроса
//чет уже не заебись, постоянно в итоге возишься с подобным говнищем, тупо перепиливая старые говнофункции
}
//а ведь она такая не одна, их же в системе туча, и вот заебавшись с таким говном, наш поумневший кодер хуярит метод. который будет нормально принимать в себя массив инфы о юзере
//например такого вида:
'name' => "petya" ,
'email' => "qwe@qwe.qwe" ,
'password' => "qwerty123"
) ;
//и сама функция
public function saveUserCoolWay
( array $userData ) { //ну и кароче тут хитровыебанный код, который сам строит запрос в зависимости от того какой у нас передан массив
$query = "INSERT INTO users" ;
//докидывает ключи в запрос
//круто код, прям ух, дербаним массив, всё склеиваем и так далее
$query .= $key ;
}
foreach ( $userData as $values ) {
//докидывает значения в запрос
//бла бла бла
$query .= $value ;
//ну вы поняли надеюсь
}
//и для вот массива который привенен в пример выше, он сам построит запрос вида:
//$query = "INSERT INTO users (name, email, password) VALUES (`petya`, `qwe@qwe.qwe`, `qwerty123`);";
//выполнение запроса
}
//но если передать в такую функцию например массив вида:
'name' => "petya" ,
'email' => "qwe@qwe.qwe" ,
'password' => "qwerty123"
'sex' => "male" ,
'age' => "15" ,
'huy' => "1"
'pizda' => "0" ,
'jigurda' => "asdasd" ,
'nebo' => "qweqwe"
'allah' => "23123" ,
) ;
$this -> saveUserCoolWay ( $userData ) ;
//то там у себя внутри, она сама попытается выполнить следующий запрос сама
//$query = "INSERT INTO users (name, email, password, sex, age, huy, pizda, jigurda, nebo, allah) VALUES (`petya`, `qwe@qwe.qwe`, `qwerty123`, `male`, `15`, `1`, `0`, `asdasd`, `qweqwe` `23123`);";
//ну и вот уже охуенно смотрится. Как бы заказчик не пиздоебенил юзеров, начиная продавать им всякие вип статусы и прочее, в коде с этим не будет проблем, наша функция уже всё схавает
//но тут наш погромизд замечает, что дескать под каждую таблицу копипаста получается, ведь алгоритм везде примерно одинаковый, и выкидывает все левые функции инсерта в базу, заменяя её на одну
public function saveWatever
( $where , array $saveData ) { $query = "INSERT INTO $where " ;
//докидывает ключи в запрос
//круто код, прям ух, дербаним массив, всё склеиваем и так далее
$query .= $key ;
}
foreach ( $saveData as $values ) {
//докидывает значения в запрос
//бла бла бла
$query .= $value ;
}
}
//и в коде в итоге может одной функцией пользоваться И НЕ ЕБАТЬ СЕБЕ НИКОГДА БОЛЬШЕ МОЗГИ
$this -> saveWatever ( 'users' , $userData ) ;
$paymentData = array ( ... ) ; $this -> saveWatever ( 'payments' , $paymentData ) ;
//ну карчое насколько я понимаю, такой вот подход используется во фреймворках, и вообще является топчиком в плане расширяемости
PD9waHAKLy/RgdGD0LrQsCDQsdC70Y/QtNGMINC70LDQtNC90L4sINC10YnQtSDRgNCw0Lcg0L/QuNGI0YMsINC90L4g0LrQvtGA0L7Rh9C1INGD0LbQtSwg0LHQtdC3INGB0LDQvNC40YUg0L/QvtGC0YDQvtC60L7Qsiwg0YTRg9C90LrRhtC40LksINGH0LjRgdGC0L4g0L/QvtC00YXQvtC0LgovL9C+0L/QuNGI0LXQvCDQstGB0ZEg0Y3RgtC+INCz0L7QstC90L4g0L3QsCDQv9GA0LjQvNC10YDQtSDQv9GA0L7RgdGC0L7QuSDRhNGD0L3QutGG0LjQuCDRgdC+0YXRgNCw0L3QtdC90LjRjyDRjtC30LXRgNCwINCyINCx0LDQt9GDLgoKLy/QndGD0LHQsNGBINC00L7Qv9GD0YHRgtC40Lwg0L/QuNGI0LXRgiDRhNGD0L3QutGG0LjRjiDRgtCw0LrQvtCz0L4g0LLQuNC00LA6CgpwdWJsaWMgZnVuY3Rpb24gc2F2ZVVzZXJOb29iU3R5bGUoJG5hbWUsICRlbWFpbCwgJHBhc3N3b3JkKSB7CgkKCS8v0L3RgyDQtdGB0LvQuCDRgdC70YvRiNCw0Lsg0L7QsSDQuNC90LXQutGG0LjRj9GFLCDRgtC+0YIg0YLRg9GCINGDINC90LXQs9C+INC90LDQstC10YDQvdC+0LUg0LrQsNC60LDRjy3QvdC40LHRg9C00Ywg0YTQuNC70YzRgtGA0LDRhtC40Y8KCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyB1c2VycyAobmFtZSwgZW1haWwsIHBhc3N3b3JkKSBWQUxVRVMgKGAkbmFtZWAsIGAkZW1haWxgLCBgJHBhc3N3b3JkYCk7IjsKCS8v0LLRi9C/0L7Qu9C90LXQvdC40LUg0LfQsNC/0YDQvtGB0LAg0YfRgtC+INCx0Ysg0YHQvtGF0YDQsNC90LjRgtGMINGN0YLQvtCz0L4g0Y7Qt9C10YDQsCDQsiDQsdCw0LfRgwoJLy/Qt9Cw0LXQsdC40YHRjAp9CgovL9C90L4g0YHRgtC+0LjRgiDQsiDRgdC40YHRgtC10LzQtSDRgdGD0YnQvdC+0YHRgtC4INGO0LfQtdGA0LAg0YXQvtGC0Ywg0L3QtdC80L3QvtCz0L4g0LjQt9C80LXQvdC40YLRjNGB0Y8g0LjQu9C4INGA0LDRgdGI0LjRgNC40YLRjNGB0Y8sINGC0L4g0L/RgNC40LTQtdGC0YHRjyDQv9C10YDQtdC/0LjRgdGL0LLQsNGC0Ywg0LLRgdC1INGB0LLRj9C30LDQvdC90YvQtSDRgSDQvdC40Lwg0YTRg9C90LrRhtC40LgsINCyINGC0L7QvCDRh9C40YHQu9C1INC4INGN0YLRgy4KCnB1YmxpYyBmdW5jdGlvbiBzYXZlVXNlckZ1Y2tlZFVwKCRuYW1lLCAkZW1haWwsICRwYXNzd29yZCwgJGFnZSwgJHNleCwgJGJpcnRoZGF5LCAkYXZhdGFyLCAkc2t5cGUsICRwaG9uZSwgJHNlY29uZF9lbWFpbCwgJHNlY3JldF9xdWVzdGlvbiwgJHNlY3JldF9hbnN3ZXIpIHsKCS8v0L3RgyDQtdGB0LvQuCDRgdC70YvRiNCw0Lsg0L7QsSDQuNC90LXQutGG0LjRj9GFLCDRgtC+0YIg0YLRg9GCINGDINC90LXQs9C+INC90LDQstC10YDQvdC+0LUg0LrQsNC60LDRjy3QvdC40LHRg9C00Ywg0YTQuNC70YzRgtGA0LDRhtC40Y8KCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyB1c2VycyAobmFtZSwgZW1haWwsIHBhc3N3b3JkLCBhZ2UsIHNleCwgYmlydGhkYXksIGF2YXRhciwgc2t5cGUsIHBob25lLCBzZWNvbmRfZW1haWwsIHNlY3JldF9xdWVzdGlvbiwgc2VjcmV0X2Fuc3dlcikgCgkJCVZBTFVFUyAoYCRuYW1lYCwgYCRlbWFpbGAsIGAkcGFzc3dvcmRgLCBgJGFnZWAsIGAkc2V4YCwgYCRiaXJ0aGRheWAsIGAkYXZhdGFyYCwgYCRza3lwZWAsIGAkcGhvbmVgLCBgJHNlY29uZF9lbWFpbGAsIGAkc2VjcmV0X3F1ZXN0aW9uYCwgYCRzZWNyZXRfYW5zd2VyYCk7IjsKCS8v0LLRi9C/0L7Qu9C90LXQvdC40LUg0LfQsNC/0YDQvtGB0LAKCS8v0YfQtdGCINGD0LbQtSDQvdC1INC30LDQtdCx0LjRgdGMLCDQv9C+0YHRgtC+0Y/QvdC90L4g0LIg0LjRgtC+0LPQtSDQstC+0LfQuNGI0YzRgdGPINGBINC/0L7QtNC+0LHQvdGL0Lwg0LPQvtCy0L3QuNGJ0LXQvCwg0YLRg9C/0L4g0L/QtdGA0LXQv9C40LvQuNCy0LDRjyDRgdGC0LDRgNGL0LUg0LPQvtCy0L3QvtGE0YPQvdC60YbQuNC4Cgp9CgovL9CwINCy0LXQtNGMINC+0L3QsCDRgtCw0LrQsNGPINC90LUg0L7QtNC90LAsINC40YUg0LbQtSDQsiDRgdC40YHRgtC10LzQtSDRgtGD0YfQsCwg0Lgg0LLQvtGCINC30LDQtdCx0LDQstGI0LjRgdGMINGBINGC0LDQutC40Lwg0LPQvtCy0L3QvtC8LCDQvdCw0Ygg0L/QvtGD0LzQvdC10LLRiNC40Lkg0LrQvtC00LXRgCDRhdGD0Y/RgNC40YIg0LzQtdGC0L7QtC4g0LrQvtGC0L7RgNGL0Lkg0LHRg9C00LXRgiDQvdC+0YDQvNCw0LvRjNC90L4g0L/RgNC40L3QuNC80LDRgtGMINCyINGB0LXQsdGPINC80LDRgdGB0LjQsiDQuNC90YTRiyDQviDRjtC30LXRgNC1Ci8v0L3QsNC/0YDQuNC80LXRgCDRgtCw0LrQvtCz0L4g0LLQuNC00LA6CgokdXNlckRhdGEgPSBhcnJheSgKCSduYW1lJyA9PiAicGV0eWEiLCAKCSdlbWFpbCcgPT4gInF3ZUBxd2UucXdlIiwKCSdwYXNzd29yZCcgPT4gInF3ZXJ0eTEyMyIKKTsKCi8v0Lgg0YHQsNC80LAg0YTRg9C90LrRhtC40Y8KcHVibGljIGZ1bmN0aW9uIHNhdmVVc2VyQ29vbFdheShhcnJheSAkdXNlckRhdGEpIHsKCS8v0L3RgyDQuCDQutCw0YDQvtGH0LUg0YLRg9GCINGF0LjRgtGA0L7QstGL0LXQsdCw0L3QvdGL0Lkg0LrQvtC0LCDQutC+0YLQvtGA0YvQuSDRgdCw0Lwg0YHRgtGA0L7QuNGCINC30LDQv9GA0L7RgSDQsiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4INC+0YIg0YLQvtCz0L4g0LrQsNC60L7QuSDRgyDQvdCw0YEg0L/QtdGA0LXQtNCw0L0g0LzQsNGB0YHQuNCyCgkkcXVlcnkgPSAiSU5TRVJUIElOVE8gdXNlcnMiOwoJZm9yZWFjaCAoYXJyYXlfa2V5cygkdXNlckRhdGEpIGFzICRrZXlzKSB7CgkJLy/QtNC+0LrQuNC00YvQstCw0LXRgiDQutC70Y7Rh9C4INCyINC30LDQv9GA0L7RgQoJCS8v0LrRgNGD0YLQviDQutC+0LQsINC/0YDRj9C8INGD0YUsINC00LXRgNCx0LDQvdC40Lwg0LzQsNGB0YHQuNCyLCDQstGB0ZEg0YHQutC70LXQuNCy0LDQtdC8INC4INGC0LDQuiDQtNCw0LvQtdC1CgkJJHF1ZXJ5IC49ICRrZXk7Cgl9CgoJZm9yZWFjaCAoJHVzZXJEYXRhIGFzICR2YWx1ZXMpIHsKCQkvL9C00L7QutC40LTRi9Cy0LDQtdGCINC30L3QsNGH0LXQvdC40Y8g0LIg0LfQsNC/0YDQvtGBCgkJLy/QsdC70LAg0LHQu9CwINCx0LvQsAoJCSRxdWVyeSAuPSAkdmFsdWU7CgkJLy/QvdGDINCy0Ysg0L/QvtC90Y/Qu9C4INC90LDQtNC10Y7RgdGMCgl9CgoKCS8v0Lgg0LTQu9GPINCy0L7RgiDQvNCw0YHRgdC40LLQsCDQutC+0YLQvtGA0YvQuSDQv9GA0LjQstC10L3QtdC9INCyINC/0YDQuNC80LXRgCDQstGL0YjQtSwg0L7QvSDRgdCw0Lwg0L/QvtGB0YLRgNC+0LjRgiDQt9Cw0L/RgNC+0YEg0LLQuNC00LA6CgkvLyRxdWVyeSA9ICJJTlNFUlQgSU5UTyB1c2VycyAobmFtZSwgZW1haWwsIHBhc3N3b3JkKSBWQUxVRVMgKGBwZXR5YWAsIGBxd2VAcXdlLnF3ZWAsIGBxd2VydHkxMjNgKTsiOwoJLy/QstGL0L/QvtC70L3QtdC90LjQtSDQt9Cw0L/RgNC+0YHQsAp9CgovL9C90L4g0LXRgdC70Lgg0L/QtdGA0LXQtNCw0YLRjCDQsiDRgtCw0LrRg9GOINGE0YPQvdC60YbQuNGOINC90LDQv9GA0LjQvNC10YAg0LzQsNGB0YHQuNCyINCy0LjQtNCwOiAKJHVzZXJEYXRhID0gYXJyYXkoCgknbmFtZScgPT4gInBldHlhIiwgCgknZW1haWwnID0+ICJxd2VAcXdlLnF3ZSIsCgkncGFzc3dvcmQnID0+ICJxd2VydHkxMjMiCgknc2V4JyA9PiAibWFsZSIsIAoJJ2FnZScgPT4gIjE1IiwKCSdodXknID0+ICIxIgoJJ3BpemRhJyA9PiAiMCIsIAoJJ2ppZ3VyZGEnID0+ICJhc2Rhc2QiLAoJJ25lYm8nID0+ICJxd2Vxd2UiCgknYWxsYWgnID0+ICIyMzEyMyIsIAopOwoKJHRoaXMtPnNhdmVVc2VyQ29vbFdheSgkdXNlckRhdGEpOwovL9GC0L4g0YLQsNC8INGDINGB0LXQsdGPINCy0L3Rg9GC0YDQuCwg0L7QvdCwINGB0LDQvNCwINC/0L7Qv9GL0YLQsNC10YLRgdGPINCy0YvQv9C+0LvQvdC40YLRjCDRgdC70LXQtNGD0Y7RidC40Lkg0LfQsNC/0YDQvtGBINGB0LDQvNCwCi8vJHF1ZXJ5ID0gIklOU0VSVCBJTlRPIHVzZXJzIChuYW1lLCBlbWFpbCwgcGFzc3dvcmQsIHNleCwgYWdlLCBodXksIHBpemRhLCBqaWd1cmRhLCBuZWJvLCBhbGxhaCkgVkFMVUVTIChgcGV0eWFgLCBgcXdlQHF3ZS5xd2VgLCBgcXdlcnR5MTIzYCwgYG1hbGVgLCBgMTVgLCBgMWAsIGAwYCwgYGFzZGFzZGAsIGBxd2Vxd2VgIGAyMzEyM2ApOyI7CgovL9C90YMg0Lgg0LLQvtGCINGD0LbQtSDQvtGF0YPQtdC90L3QviDRgdC80L7RgtGA0LjRgtGB0Y8uINCa0LDQuiDQsdGLINC30LDQutCw0LfRh9C40Log0L3QtSDQv9C40LfQtNC+0LXQsdC10L3QuNC7INGO0LfQtdGA0L7Qsiwg0L3QsNGH0LjQvdCw0Y8g0L/RgNC+0LTQsNCy0LDRgtGMINC40Lwg0LLRgdGP0LrQuNC1INCy0LjQvyDRgdGC0LDRgtGD0YHRiyDQuCDQv9GA0L7Rh9C10LUsINCyINC60L7QtNC1INGBINGN0YLQuNC8INC90LUg0LHRg9C00LXRgiDQv9GA0L7QsdC70LXQvCwg0L3QsNGI0LAg0YTRg9C90LrRhtC40Y8g0YPQttC1INCy0YHRkSDRgdGF0LDQstCw0LXRggovL9C90L4g0YLRg9GCINC90LDRiCDQv9C+0LPRgNC+0LzQuNC30LQg0LfQsNC80LXRh9Cw0LXRgiwg0YfRgtC+INC00LXRgdC60LDRgtGMINC/0L7QtCDQutCw0LbQtNGD0Y4g0YLQsNCx0LvQuNGG0YMg0LrQvtC/0LjQv9Cw0YHRgtCwINC/0L7Qu9GD0YfQsNC10YLRgdGPLCDQstC10LTRjCDQsNC70LPQvtGA0LjRgtC8INCy0LXQt9C00LUg0L/RgNC40LzQtdGA0L3QviDQvtC00LjQvdCw0LrQvtCy0YvQuSwg0Lgg0LLRi9C60LjQtNGL0LLQsNC10YIg0LLRgdC1INC70LXQstGL0LUg0YTRg9C90LrRhtC40Lgg0LjQvdGB0LXRgNGC0LAg0LIg0LHQsNC30YMsINC30LDQvNC10L3Rj9GPINC10ZEg0L3QsCDQvtC00L3RgwoKCnB1YmxpYyBmdW5jdGlvbiBzYXZlV2F0ZXZlcigkd2hlcmUsIGFycmF5ICRzYXZlRGF0YSkgewoJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICR3aGVyZSI7Cglmb3JlYWNoIChhcnJheV9rZXlzKCRzYXZlRGF0YSkgYXMgJGtleXMpIHsKCQkvL9C00L7QutC40LTRi9Cy0LDQtdGCINC60LvRjtGH0Lgg0LIg0LfQsNC/0YDQvtGBCgkJLy/QutGA0YPRgtC+INC60L7QtCwg0L/RgNGP0Lwg0YPRhSwg0LTQtdGA0LHQsNC90LjQvCDQvNCw0YHRgdC40LIsINCy0YHRkSDRgdC60LvQtdC40LLQsNC10Lwg0Lgg0YLQsNC6INC00LDQu9C10LUKCQkkcXVlcnkgLj0gJGtleTsKCX0KCglmb3JlYWNoICgkc2F2ZURhdGEgYXMgJHZhbHVlcykgewoJCS8v0LTQvtC60LjQtNGL0LLQsNC10YIg0LfQvdCw0YfQtdC90LjRjyDQsiDQt9Cw0L/RgNC+0YEKCQkvL9Cx0LvQsCDQsdC70LAg0LHQu9CwCgkJJHF1ZXJ5IC49ICR2YWx1ZTsKCX0KCgp9CgovL9C4INCyINC60L7QtNC1INCyINC40YLQvtCz0LUg0LzQvtC20LXRgiDQvtC00L3QvtC5INGE0YPQvdC60YbQuNC10Lkg0L/QvtC70YzQt9C+0LLQsNGC0YzRgdGPINCYINCd0JUg0JXQkdCQ0KLQrCDQodCV0JHQlSDQndCY0JrQntCT0JTQkCDQkdCe0JvQrNCo0JUg0JzQntCX0JPQmAokdXNlRGF0YSA9IGFycmF5KC4uLik7CiR0aGlzLT5zYXZlV2F0ZXZlcigndXNlcnMnLCAkdXNlckRhdGEpOwoKJHBheW1lbnREYXRhID0gYXJyYXkoLi4uKTsKJHRoaXMtPnNhdmVXYXRldmVyKCdwYXltZW50cycsICRwYXltZW50RGF0YSk7CgovL9C90YMg0LrQsNGA0YfQvtC1INC90LDRgdC60L7Qu9GM0LrQviDRjyDQv9C+0L3QuNC80LDRjiwg0YLQsNC60L7QuSDQstC+0YIg0L/QvtC00YXQvtC0INC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQstC+INGE0YDQtdC50LzQstC+0YDQutCw0YUsINC4INCy0L7QvtCx0YnQtSDRj9Cy0LvRj9C10YLRgdGPINGC0L7Qv9GH0LjQutC+0Lwg0LIg0L/Qu9Cw0L3QtSDRgNCw0YHRiNC40YDRj9C10LzQvtGB0YLQuAoK