Пример проекта, разработанного на учебном движке (MCV-фреймворке) SimpleMVC.
ВНИМАНИЕ: о composer-е и остальных моментах см. в уроках по SimpleMVC.
- Делаем форк репозитория https://github.com/it-for-free/SimpleMVC-example и клонируем его из своего гитхаб-профиля.
- Создаём у себя на машине виртуальный хост с корнем в директории
web/
проекта. - Подтягиваем зависимости композером:
composer install
- Разворачиваем приложенный дамп
basedump.sql
. - Создаём копию
application/config/web-local-example.php
в той же папке с названиемapplication/config/web-local.php
и прописываем туда доступы к базе данных.
Открываем сайт в браузере. Удачной разработки!
Используйте для авторизации:
- Логин:
admin
- Пароль:
admin
Подключаем клсс для работы с даными конфига:
use ItForFree\SimpleMVC\Config;
Получение класса объекта (например, пользователя):
$User = Config::getObject('core.user.class');
получение элемента (без необъходимости инстанцировать класс с таким именем):
$User = Config::get('путь.в.массиве.конфига');
Получить доступ к объекту-синглтону можно так (через конфиг):
$User = Config::getObject('core.user.class');
Получить подробную инфромацию о том почему есть или нет доступа к какому-либо маршрутут для данного пользователя можно распечатав данные метода:
$User->explainAccess('/ваш/маршрут');
Что ещё надо улучшить/сделать (самсем универсальное выносим в rusphp остальное относится к ядру т.е. самому SimpleMVC
):
- Добавить html-хэлпер (возм. с участием
rusphp
) - Несовершенный контроль доступа -- rules лучше сделать методом (чтобы, возможно, что-то вычислять динамически). Ввести пседонимы @ и ? для роли зарегистрированного пользователя и гостя.
- Сделать отдачу
404
в ответ на найденные контроллеры или их действия, аналогично подумать над передачей кодов для других ошибок (исключений SimpleMVC
) - Возможно, надо пересмотреть свзимоотношения трейта конторля доступа, контроллера и класса пользоватлея -- м.б. трейт надо вынуть из контроллера и сделать либо независимым либо перенести в класс пользователя.
- Проверить работу класса, управляющего сессией, на предмет блокировок и "в целом".
Добавить систему asset-ов, тогда напр. CSS и JS бутстрапа можно было бы вытягивать composer-омпакет уже есть, необходимо добработать и внедритьit-for-free/php-simple-assets
- Добавить класс (виджет) для работы с меню, который мог бы выставлять активный элемент, проверяя маршрут.
- Прикрутить миграции.
- Добавить виджет для "хлебных крошек".
- Создать отдельно класс модели и отдельно класс модели для работы с БД (наследющийся от 1-ого).
- Описать интерфейсы для всех классов приложения, перечисленных в конфиге.
- Сделать объекты конфигурабельными.
- Проверить возможность установки явного времени действия сессии (авторизация).
- Сделать обработку ситуации отсутствия доступа более "мягкой" (без вообще непрехватываемого исключения).
- Документация по bootstrap4: https://getbootstrap.com/docs/4.1/layout/overview/