Домашнее задание №5
- Добавлен класс исключений, возникающих при работе с БД: App\Exceptions\DbException. Бросаются исключения это типа в классе App\Classes\Db в методах query() и execute().
- Ловятся исключения из пункта 1 во фронт-контроллере.
- Добавлен класс исключений App\Exceptions\E404Exception. Бросаются исключения этого типа в контроллерах News (метод actionOne()) и AdminNews (методы actionEdit() и actionDelete()). Обработка - также во фронт-контроллере.
- Метод fill() добавлен в абстрактную модель и переопределён в моделе новостей (применён паттерн Мультиисключение).
- Добавлен класс-логгер App\Classes\LogException. Логируются исключения из пунктов 1 - 3.
Домашнее задание №6
- Проверил код на соответствие стандартам PSR-1 и PSR-2.
- Подключил с помощью composer библиотеку swiftmailer/swiftmailer
- Организовал отправку сообщения администратору при возникновении проблем с подключением к базе данных. Для удобства создал собственный класс \App\Classes\Mail, который при создании в конструкторе получает данные из конфига и сохраняет в себе. В конфиге почтовые данные отправителя и получателя (логин, пароль и т.д.). Конфиг в git не добавлял! У класса \App\Classes\Mail создал функцию send(), которая и работает с библитекой swiftmailer.
- Оформил пакет composer "multiexception". Ссылка https://packagist.org/packages/customer41/multiexception. Ссылка на репозиторий на гитхабе: https://github.com/customer41/multiexception. А также установил через composer и использовал в своём проекте.
Домашнее задние №7
- Создал метод queryEach() в классе Db. Использовал его в методе findFew() абстрактной модели.
- Создал класс App\Classes\AdminDataTable по заданию.
- В админ-контроллере авторов создал метод actionShowTable(), который выводит всех авторов в виде таблицы, используя класс AdminDataTable