Создание собственного PHP MVC фреймворка на ООП. 9. Работа с БД

preview_player
Показать описание
В этом уроке мы подключим к фреймворку возможность работать с БД (базой данных). Для этого будет использован готовый пакет Illuminate Database, который используется во фреймворке Laravel.

==========================================

💖 Поддержка канала
4731 2196 5549 6408 (ПриватБанк)
TXGoBr7UrwRUYx7FpzbiG8znkgC6fhwtEF (USDT TRC20)
410014621600849 (ЮMoney)
===============================================

Мои курсы на Udemy

Не получается приобрести курс или нужна скидка - обращайтесь. Решим :)

Курс "PHP 8. ООП. Создание собственного PHP MVC фреймворка":

Рекомендации по теме
Комментарии
Автор

💖 Поддержка канала
4731 2196 5549 6408 (ПриватБанк)
(USDT TRC20)
410014621600849 (ЮMoney)


Мои курсы на Udemy

Не получается приобрести курс или нужна скидка - обращайтесь. Решим :)

Курс "PHP 8. ООП. Создание собственного PHP MVC фреймворка":




matroskin
Автор

Мені цікаве написання свого фреймворку саме тому, що це дає змогу розібратись як все влаштоване «під капотом», для новачка це дуже корисно.

Тому я однозначно за власний клас DB, навіть якщо це відкладе випуск про багатомовність )))

А ще дуже хочеться кешування з Redis та пошук з Elasticsearch )

mr_riabov
Автор

Андрей, спасибо огромное за этот цикл уроков, что касается работы с БД, то однозначно, хотелось бы увидеть хотя бы базовый класс DB, а потом при необходимости каждый сможет его расширить либо упростить в своих проектах. Я когда-то пытался написать велосипед с PDO, но постоянно с ним какие-то проблемы возникали, то одно дописывал, то другое.
В последнее время тягаю из проекта в проект класс из опенкарта (MySQLI). Запросы приходится писать полностью, но зато стабильно работает.
Когда узнал, что у вас вышел данный цикл уроков, то подумал, что это та возможность увидеть как написать класс бд с PDO грамотно. А тут библиотека 😮.
Если можно, пожалуйста давайте сделаем это

Monax-govq
Автор

Замечательный урок. С нетерпением жду следующего. И да, очень хотелось бы увидит класс DB.

ОлегДерябин-дс
Автор

Классный урок! Много нового.... Благодарю. Я ждал и дождался.

НиколайЗолотаревский-ое
Автор

Спасибо за урок, всегда интересовала работа с базой, следующий урок очень ждем с классом DB!

AlexCujba-yebv
Автор

Привет, Андрей! Конечно лучше написать отдельный класс для работы с базой. Надеюсь это реализуемо.

sfxta
Автор

Привет Андрей спасибо, вот и 9-точка....

statistic-pyip
Автор

З нетерпінням чекав новий урок, дякую.

AndriiP
Автор

Андрей, вы не подскажете, через ORM Eloquent можно как-то JOIN-ить? В Laravel каждая модель отвечает за свою таблицу, но там как-то можно в этих моделях прописывать relation (я так понял - это связи между таблицами), и мне стало интересно, что происходит на уровне PHP. Получается, что (например две таблицы связаны по ключам) создается два объекта классов моделей соответствующих таблиц ($user = new User и $post = new Post) у которых связаны fillable между собой? То есть свойства одного объекта имеют ссылки на свойства другого объекта??? Как это всё-таки работает? Я смотрел примеры кода но не до конца уловил логику как это работает. По всей видимости, если прописаны связи (belongsTo), то при доставании из базы юзера, будут ли доставаться посты, связанные с ним?
Это и есть такое подобие JOIN?
Если разобраться как JOIN-ить несколько таблиц, то можно смело пользоваться данной библиотекой и не писать свой класс Model (говорю исключительно относительно себя)
Не могу психологически положиться на механизмы, если не понимаю как они работают

Monax-govq
Автор

Андрей, решили все же использовать ORM, хотелось бы увидеть класс DB и подключение через PDO, прошу Вас, пожалуйста, сделайте 10-ый коммит(без использования ORM) на полную замену 9-ому, если что. Будет кстати удобно, хочешь использовать ORM используй 9-коммит, если нет - 9 удаляй из репозитория, а 10-ый будет последним и займет место 9-го. Либо совместить 2 варианта на выбор сторонникам ORM и тем, кто предпочитает меньше зависимостей и склоняется к классике. Урок только начал смотреть, может Вы это и предусмотрели...

statistic-pyip