Доброе время суток. Есть 3 страницы : index.php login.php signup.php т.е можно либо зарегистрироваться либо залогиниться. Вся инфа в бд. Всё работает,пока я не узнал ,что делать в каждом файле новое подключение к бд это не хорошо.(в пхп недавно) А лучше вообще использовать паттерн Singleton и тем самым создавать единственное подключение.Класс описал(использовал PDO для mysql) Создаю единственный объект с подключением к бд в index.php и всё отлично работает,но ВОПРОС: а как мне получить этот объект в 2-ух других файлах ? Ну или как вообще делается авторизация и регистрация "по уму" ?
т.е. ты в каждом из этих файлов пишешь допустим: Код (Text): $db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); $db->query(/* .. какой то запрос .. */); // потом обработка ответа ?
нет, есть класс DataBase в нём реализован Singleton .Там есть конструктор котрый получает файл настроек из xml файла и констркутор создаёт подключение к бд А в файлах я пишу DB::getSettings($conf_obj->getDataBaseSettings()); // Передаю настройки DB::getInstance();//Создаю объект Но надо делать это во всех файлах. Вот думаю это норм или нет?
Ну да, нормально, как еще, только зачем получать настройки из xml и что это за настройки. и в строках кода как то все очень мудрено.
не проще сделать один файл РНР с константными значениями, включая настройки подключения к БД и подключать его везде, чем открывать, выискивать в xml данные настройки и потом закрывать этот файл.
ну проще конечно.только этот файл будет 1500 строк и не очень будет удобно. а на счет настроек этот файл может меняться и приходить со стороны и не удобно будет каждый раз менять в коде эти настройки на новые
ну я так написал) но если делать login.php signup.php logout.php admin.php profile.php и еще несколько . и пусть даже по 100 строк в каждом то уже объемный получиться
создайте файл connect_db создайте там свой класс подключения к БД, инклуд где надо, и все). Можете обойтись без XML. А с какой целью храните данные в XML*? этот файл хранится в doocroot?