меня есть подключение к базе данных
и уже неправильное
Учим основы:
- на локальном сервере это вот try catch echo является
бессмысленным: если убрать всю эту нелепую копипасту, РНР и сам выведет то же самое.
- на боевом сервере этот код является
вредным: внутренние ошибки РНР мы никогда не светим наружу. Пользователь их не поймёт, а для хакера они бесценны.
Поэтому убираем бессмысленное try catch и оставляем только соединение
$sql_connect = new PDO("mysql:host=". DB_HOST .";dbname=". DB_NAME. ";charset=utf8mb4", DB_USER, DB_PASS, $pdo_options);
Опять же убрав из него нелепые кавычечьки.
насколько правильный такой подход
Этот подход практически идеальный
Можно изменить подход так, что бы не использовать конструктор
Можно, но не нужно.
Сейчас всё чётко видно, откуда берётся соединение с БД, и где оно нужно. Одна переменная в конструкторе - это не то место, где надо лениться и изобретать способы её не писать. В будущем, когда освоите автоматический вызов классов - тогда оно будет подставляться само. Но всё равно через конструктор.