Начал разбираться с ООП php, а именно с архитектурой MVC. Возник вопрос по подключению к бд. В одном из уроков на данную тему,в модели в функциях взаимодействующих с бд вызывается функция создания объекта PDO, то есть при нескольких действиях с бд на одной странице, создается несколько несколько объектов PDO. Как мне кажется это не правильно. А лучше создать одно подключение и пользоваться им до выполнения всего кода. Но как и в каком месте вызывать данное подключение? Создавать в фронт конроллере или роутере? - но ведь не на каждой странице нужно подключение к бд. Была мысль проверять наличие созданного подключения и если его нет создавать его, но возникли проблемы с видимостью переменной из функций одной модели в функциях другой. В общем как это сделать правильно?
Если в туториале создается несколько несколько объектов PDO, то этот туториал писал дебил. Что, впрочем, не редкость в случае с РНР. А ты совершенно прав - соединение должно создаваться строго только один раз.
Подключение нужно не на каждой странице только если сайт ну совсем уж из куличиков и песочка. В реальности оно тебе будет нужно на каждой странице.
Так что в порядке изучения можешь пока не заморачиваться этим. потом почитаешь про dependency injection - это когда ты создаешь конфиг, в котором пишешь, какому классу какие сервисы нужны - в том числе и подключение к БД. Но пока это тебе, повторюсь, не нужно.
Создавай во фронт контроллере, если больше негде. И дальше передавай в качестве параметра во все создаваемые классы.
Скорее всего вы столкнулись с паттерном Синглтон - созданием единого екземпляра класса БД. Такой объект не создаётся каждый раз, лишь единожды. И далее при обращении к классу проверяется наличие объекта и если он создан - отдаётся, новый не создаётся. В случае с БД его используют очень часто.
class Singleton{
private static $instance = null;
private static $i = 0;
/**
* @return Singleton
*/
public static function getInstance(){
if (null === self::$instance){
self::$instance = new self();
}
return self::$instance;
}
private function __wakeup(){}
private function __clone(){}
private function __construct(){}
}
$obj = Singleton::getInstance();
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Вопрос: при заполнении полей формы, срабатывает условие в form_processingphp и выводится значение переменных, а при отправке пустых полей - все равно...
Подскажите пожалуйста, во всем проекте появились дополнительные 2 пустые строки, как бы их удалить не в каждом отдельном файле, а во всем проекте...
ЗдравствуйтеКак сделать ссылку в gridview я знаю, но возникла проблема с ссылкой для связанной модели
Здравствуйте, подскажите, пожалуйстаЗаполняю массив следующим образом и записываю его в переменную $_SESSION: