Создание блога на Laravel. Урок 1 — Проектирование

Создание блога. Урок 1 - Проектирование

Разработку любой информационной системы, я начинаю с ее проектирования. Таким образом, мы можем избежать критических ошибок уже на начальном этапе. Конечно, можно обойти проектирование  стороной при создании блога, так как система достаточна проста. Но рекомендую, приобрести хорошую привычку, как можно раньше. Я люблю использовать ментальные карты, в моем случае это XMind, но есть и другие бесплатные приложения, доступные в сети. 

Когда начинаем создавать блог, стоит вспомнить. А что это вообще такое? Как правило, это сайт доступный в интернете, где автор пишет статьи на интересующие его темы и размещает на страницах своего сайта. Читатели, могут ознакомиться с ними, добавить в закладки или оставить комментарии.

Сейчас уже много готовых решения: публичная страница Вконтакте; аккаунт в Instagram или другой социальной сети. Среди веб-решений наиболее известен WordPress. Но моя основная задача — на реальном примере, показать, как использовать фреймворк Laravel 6 для создания простых приложений. Уже после прохождения этого курса, у вас будет достаточно знаний, для создания своего продукта.

Навигация. Главное меню.

Создание блога на Laravel 6. Структура главного меню.

У нас будет главная страница, на которой мы выведем список постов. Также добавим парочку статических страниц без динамики, и не забудем про личный кабинет. Но это еще не все, нам нужно больше знать о том, что именно будут уметь делать пользователи на страницах блога. 

Функциональность блога. Что умеют делать пользователи?

Создание блога на Laravel 6. Что умеют делать авторы на блоге.

Автор может создавать статьи, редактировать их, а также удалять. Но и не забудем дать возможность прочитать свои статьи, вдруг там ошибка!

Создание блога на Laravel 6. Что умеют делать читатели на блоге.

Читатели… Что же они должны уметь делать… Наверное, читать? Ну ладно, пусть читают статьи автора и добавляют их в закладки, а также удаляют те закладки, которые потеряли свою актуальность. 

Создание блога на Laravel 6. Что умеют делать гости на блоге.

Если пользователи не авторизованы, то это гости нашего блога. Поэтому, предоставляем возможность только читать статьи автора, а вот добавить статью в закладки уже нельзя.

На этом проектирование не закончено, было бы удобно все представить в виде сводной таблицы функциональности (на фото ниже).

Теперь лучше! Функционал можно проанализировать и выделить три основные сущности блога: пользователи (автор, читатели), статья, закладки. Гости — это пользователи, но они не вошли в личный кабинет, поэтому особого функционала у них не будет, так как статьи доступны всем пользователям без исключения. А сейчас приступим к самому интересному — проектированию базы данных.

Проектирование базы данных

Создание блога на Laravel 6. Проектирование базы данных.

Пользователи

У нас всего будет два вида пользователей. Поэтому, нет необходимости подключать библиотеки для управления ролями, их еще называют RBAC (Role Based Access Control, контроль доступа на основе прав). Для этого будем использовать поле — «Признак администратора» (администратор, т.к. у нас всего один автор). С его помощью поймем, может ли авторизованный пользователь добавлять/редактировать/удалять статьи. Логином будет служить адрес электронной почты («E-mail»). 

Статьи

Каждая статья содержит заголовок и контент. Контент будет примитивный, содержать только обычный текст. Подключать визуальный редактор пока не будем. Не стоит забывать про возможность сохранить статью в черновик, без публикации на сайт.

Закладки

Это будет простая таблица тип Many-Many. Таким образом, одну и туже статью смогут добавить в закладки, несколько пользователей. Также, мы добавим первичный ключ по двум полям, чтобы не плодить одинаковые записи, тем самым не нарушим правила проектирования базы данных.

Технологии

Для работы будем использовать последнюю стабильную версию PHP — 7.4. С использование современного PHP фреймворка — Laravel 6. В качестве системы управления базами данных (СУБД) выберем MySQL 5.7.

Видеоурок

Михаил Нилов

Здравствуйте! Я веб-разработчик, с 2014 года занимаюсь созданием современных веб-приложений.


Категории статей