Архитектура - это базовая организация системы, воплощенная в ее компонентах, их отношениях между собой и с окружением, а также принципы, определяющие проектирование и развитие системы.
А если по-русски?
• Компоненты кода («на какие части разбить»)
• Структура кода («где что будет лежать»)
• Отношения между компонентами
Сложно сразу продумать хорошую архитектуру
• Но делать это нужно!
• К счастью, всё придумано до нас
Паттерны проектирования – «шаблоны» построения программы, следуя которым, можно получить удовлетворительный результат.
Пожалуй, главный паттерн - MVC
АРХИТЕКТУРА
Модель работает с данными
• Ее задача – дать нужные данные тем компонентам, которые их запрашивают
• Модель и только модель, знает, где данные находятся, как они организованы
• Модель и только модель умеет обновлять, вставлять и удалять данные
ДЗ
1. В качестве основы своего проекта возьмите то, что сделано нами на уроке. Прочтите внимательно код, еще раз повторите, как он работает.
2. Улучшите класс Db.
Во-первых сократите код в методе query(), отвечающий за преобразование данных в объекты нужного класса до одной строчки (читайте руководство по PDO, чтобы понять, как это сделать!)
Во-вторых добавьте в этот метод возможность передать подстановки в запрос.
И в-третьих, сейчас мы написали только метод query(), предназначенный для выполнения запросов, возвращающих данные. Напишите еще один метод execute($query, $params=[]), который будет выполнять запросы, не возвращающие данные (например INSERT, UPDATE) и возвращать лишь true/false в зависимости от того, удачно ли выполнился запрос.
3. Протестируйте работу нового метода, для чего заведите в проекте папку tests и в ней размещайте скрипты, которые наглядно докажут работоспособность вашего кода.
4. В абстрактной модели добавьте метод public static function findById($id). Он должен вернуть ОДНУ запись из таблицы данной модели, с указанным первичным ключом. Или false, если таковой записи не нашлось.
5. Сделайте таблицу новостей. Добавьте в нее 3-4 новости. На главной странице сайта (index.php) сделайте вывод 3 последних новостей. Используйте модель Article для получения данных (возможно, вам придется добавить какой-то еще метод в эту модель). Для передачи данных в шаблон - просто include файла с шаблоном.
6. Каждая новость на главной странице должна быть снабжена ссылкой на страницу /article.php?id=NNN, где NNN - номер этой новости. Разработайте полностью страницу article.php
Домашнее задание сдается в виде ссылки на ваш репозиторий на GitHub.
Внимание! Пункты 2 и 3 могут быть сделаны на уроке. В этом случае их повторять не нужно!
#php #phplessons #phpдляначинающих #курсыпрограммирования #курсыphp
Информация по комментариям в разработке