Автор(ы): Андрей Кудлай
Видеокурс состоит из 2 больших разделов и включает в себя 58 уроков общей продолжительностью около 21 часа.
Первая часть курса посвящена исключительно изучению Laravel и его возможностей. Поскольку Laravel – это фреймворк, написанный на PHP, соответственно, для успешного изучения фреймворка вам необходимы знания и навыки работы с языком программирования PHP.
В уроках первой части вы найдете всю необходимую базу для понимания принципов работы с Laravel и для дальнейшего самостоятельного изучения этого фреймворка. Фактически, данная часть курса является необходимым фундаментом для дальнейшего изучения и работы с фреймворком.
Вторая часть курса будет посвящена повторению и закреплению пройденного в первой части материала. Во второй части полученные знания будут применены на практике и в качестве практики будет создан блог, предполагающий следующий функционал: категории статей, статьи, метки (теги), связанные со статьями, поиск и т.д.
Первая часть курса посвящена исключительно изучению Laravel и его возможностей. Поскольку Laravel – это фреймворк, написанный на PHP, соответственно, для успешного изучения фреймворка вам необходимы знания и навыки работы с языком программирования PHP.
В уроках первой части вы найдете всю необходимую базу для понимания принципов работы с Laravel и для дальнейшего самостоятельного изучения этого фреймворка. Фактически, данная часть курса является необходимым фундаментом для дальнейшего изучения и работы с фреймворком.
Из уроков первой части вы узнаете, как установить и настроить Laravel, узнаете о паттерне MVC и его компонентах – контроллерах, моделях и видах, научитесь работать с интерфейсом командной строки Artisan. Много уроков отведено под такие темы, как: роутинг, работа с моделями, работа с шаблонизатором Blade и т.д.
А теперь перейдем к урокам. Их в данной части 36, общей продолжительностью более 13 часов.
В первом уроке курса рассмотрены организационные моменты, структура и содержание курса. Из урока вы узнаете об основных источниках документации, о фреймворке Laravel, а также необходимых программах для дальнейшей работы.
Из данного урока вы узнаете о том, как установить фреймворк Laravel. Для его установки, как и в случае с любым другим современным PHP-фреймворком, потребуется Composer – с его помощью будет достаточно выполнить всего одну команду, чтобы через несколько минут получить установленный фреймворк на вашем сервере.
После установки фреймворка вы увидите достаточно большое количество файлов и папок. С некоторыми из них придется работать достаточно часто, с некоторыми – очень редко, некоторые не придется открывать вовсе. Из данного урока вы узнаете больше о структуре фреймворка и вкратце познакомитесь с каждой из директорий структуры, с которыми придется работать в дальнейшем.
Следующие три урока будут посвящены такой важной теме, как роутинг или маршрутизация в Laravel. Именно маршрутизатор принимает клиентский запрос и определяет, что с ним делать дальше, в какой контроллер и экшен передать данный запрос. Роутинг в Laravel – очень гибкая и мощная штука, которая, порой, может обойтись даже без контроллера. Также маршрутизатор фреймворка умеет различать методы запросов, что также может быть полезно при разработке ваших приложений.
Одним из ключевых компонентов паттерна MVC является контроллер. Именно в контроллер передается клиентский запрос из маршрутизатора и именно контроллер решает, какие модели и представления необходимы для того, чтобы обработать этот запрос и вернуть необходимый ответ. Данный урок будет посвящен знакомству с контроллерами в Laravel.
Создавая веб-приложение, зачастую для различных сущностей требуется один и тот же набор методов. Например, работая со статьями блога, нам потребуется метод для показа списка статей, для показа отдельной статьи, для показа формы создания или редактирования статьи, методы для сохранения, обновления и удаления статьи. Весь этот набор методов в Laravel называется контроллером ресурса и такой контроллер можно получить буквально одной командой Artisan.
Из этого урока вы узнаете о конфигурации в Laravel. Здесь вы узнаете о настройках среды и файле .env, в котором эти настройки собраны, узнаете о том, как получить существующие настройки, изменить их и создать, при необходимости, собственные настройки.
Когда вы работаете в команде, каждый участник команды работает над своими задачами. При этом вся команда работает над одним проектом. Для удобства взаимодействия Laravel предлагает замечательный инструмент – миграции. Благодаря миграциям, можно изменять структуру БД, при этом все участники команды всегда будут в курсе таких изменений и всегда смогут применить эти изменения у себя. Собственно, миграции являются чем-то вроде контроля версий для БД проекта.
Laravel предлагает несколько вариантов работы с БД и в данном уроке будет показан один из них, с использованием фасада DB. Используя данный класс, можно выполнять все CRUD-операции: INSERT, SELECT, UPDATE и DELETE. Данный способ подойдет, когда по каким-то причинам необходимо выполнять, т.н. сырые SQL-запросы.
Более удобным вариантом, по сравнению с сырыми SQL-запросами, может быть конструктор запросов Laravel. Конструктор запросов предлагает удобный интерфейс и набор методов для всех CRUD-действий, т.е. мы можем добавлять, удалять, изменять и получать данные базы данных.
Как и любой современный PHP-фреймворк, Laravel предлагает для удобства работы мощную ORM – Eloquent ORM, которая реализует шаблон ActiveRecord. В следующих двух уроках вы узнаете об основных методах данной ORM, которые позволят выполнять все CRUD-операции. Также вы познакомитесь с еще одним компонентом паттерна MVC – моделями.
Одним из ключевых преимуществ использования моделей и Eloquent ORM является удобная и простая возможность работы со связями или отношениями моделей. Речь идет о том, что одни таблицы могут быть связаны с другими таблицами в БД. Например, таблица постов может быть связана с таблицей категорий, поскольку статьи могут принадлежать категориям, а категории, в свою очередь, могут иметь посты. Laravel предлагает несколько типов связей, о которых вы и узнаете в следующей паре уроков.
Одной из классных штук в Laravel является его шаблонизатор – Blade. Данный шаблонизатор предлагает крутую фичу – наследование шаблонов. Благодаря этому можно выделить повторяющуюся часть любой страницы в шаблон (макет, layout), который будет наследоваться всеми прочими шаблонами. Это существенно упростит поддержку сделает возможным повторное использование кода без необходимости его дублирования. Следующие четыре урока познакомят вас с шаблонизатором Blade, его директивами и основными возможностями.
Практически любое приложение взаимодействует с пользователем, получая от него некоторый набор данных. Одним из ключевых правил безопасности является то, что необходимо проверять, валидировать пользовательские данные. И здесь Laravel предлагает удобный механизм валидации данных в виде объявления массива правил валидации. В этих правилах достаточно указать соответствующие валидаторы и их параметры при необходимости – остальное сделает сам фреймворк. В следующих двух уроках вы познакомитесь с темой валидации данных в Laravel.
Из данного урока вы узнаете о механизме работы с сессиями в Laravel.
Часто нам требуется запомнить некоторые данные на продолжительное время. При этом такие данные должны быть доступны для всех посетителей сайта. Например, меню категорий сайта. Как правило, меню изменяется достаточно редко, но для его получения необходим отдельный sql-запрос. Также могут потребоваться дополнительные ресурсы для формирования структуры меню. Чтобы сократить время формирования меню и необходимые для этого ресурсы, можно использовать механизм кэширования, чтобы в дальнейшем брать уже готовое меню из кэша. В данном уроке будет показана работа с кэшем в Laravel.
Одной из классных штук в Laravel является удобная сборка фронтенда с использованием API Laravel Mix, определяющем инструкции сборки Webpack для приложения. Проще говоря, используя Laravel Mix мы можем управлять подключаемым массивом файлов стилей или скриптов, объединяя их в один файл стилей или скриптов. При этом полученный файл стилей, к примеру, может быть подготовлен для разработки или же для продакшена, т.е. его содержимое будет сжато. В данном уроке вы узнаете об основах работы с Laravel Mix.
В следующих двух уроках вы узнаете о том, как в Laravel можно отправлять электронную почту. Для этого Laravel предлагает популярную библиотеку SwiftMailer и удобный API для ее использования.
Из данного урока вы узнаете, как реализовать такой популярный функционал любого сайта, как регистрация пользователей. С помощью Laravel реализовать регистрацию очень просто – это дело буквально нескольких минут.
За регистрацией всегда следует аутентификация. Зарегистрированные пользователи должны иметь возможность авторизоваться с тем, чтобы получить доступ к некоторым дополнительным возможностям. В Laravel процесс аутентификации также очень прост и о ее реализации вы узнаете из данного видео.
Одной из очень удобных штук в Laravel являются посредники (Middleware). Благодаря им возможно производить фильтрацию HTTP-запросов и как это сделать – вы увидите в данном уроке. В частности, с помощью посредника можно проверить авторизацию пользователя и возможность его доступа к тому или иному ресурсу.
В данном уроке вы увидите, как можно организовать загрузку и сохранение файлов на сервер в Laravel.
Laravel предлагает возможность создания специальных функций обратного вызова, т.н. View Composers. Если говорить проще, то их можно сравнить с некими виджетами, которые можно получить один раз и использовать на каждой странице в шаблоне. Например, на сайте есть сайдбар, который одинаков для каждой страницы. Для сайдбара необходимо получить некоторый набор данных и сделать это можно только один раз, используя View Composer.
Из данного урока вы узнаете, как можно организовать постраничную навигацию на сайте. С Laravel сделать это – предельно просто.
Разрабатывая проект, нам часто необходим некоторый набор начальных данных. Laravel предлагает нам очень удобный механизм наполнения моделей таким начальными тестовыми данными.
В этом уроке вы познакомитесь с такими понятиями моделей, как аксессоры (accessors) и мутаторы (mutators). Используя их возможности, вы сможете что-то сделать с данными на этапе их получения из БД или сохранения в БД.
В последнем уроке теоретической части курса вы познакомитесь с механизмом логирования в Laravel. Также в уроке будет показана установка пакета Laravel Debugbar, который позволяет упростить разработку проекта, предлагая удобную отладочную панель.
Вторая часть курса будет посвящена повторению и закреплению пройденного в первой части материала. Во второй части полученные знания будут применены на практике и в качестве практики будет создан блог, предполагающий следующий функционал: категории статей, статьи, метки (теги), связанные со статьями, поиск и т.д.
В качестве шаблона будет использован бесплатный шаблон блога, доступный по ссылке: https://www.free-css.com/free-css-templates/page244/markedia.
В данном уроке будет установлена чистая версия Laravel для дальнейшей работы по созданию сайта.
Создание сайта будет начато с администраторской части. Для красивого представления админки мы возьмем популярный шаблон AdminLTE. Данный шаблон разработан специально для админской части сайта и содержит в себе множество готовых компонентов: формы, таблицы, меню, иконки, всевозможные виджеты и т.д. В предлагаемом уроке данный шаблон будет интегрирован в структуру фреймворка с тем, чтобы при обращении к главной странице админки была показана стартовая страница шаблона AdminLTE.
В текущем уроке будет использован шаблонизатор Blade и механизм наследования шаблонов с тем, чтобы разбить шаблон AdminLTE на части и выделить повторяющуюся часть, которая станет макетом. Все прочие шаблоны-представления будут наследовать данный макет.
Основными сущностями создаваемого блога будут категории, записи и теги. Для их хранения необходимы соответствующие таблицы в БД. В текущем уроке будут сгенерированы и написаны все необходимые для проекта миграции и модели.
Данный урок будет отведен под определение специальных методов в моделях, описывающих связи этих моделей. В частности, это будут связи категорий и постов, а также связи постов с тегами.
Начиная с данных уроков будем приступать непосредственно к написанию кода приложения и начнем с управления категориями. Здесь потребуется контроллер ресурсов, который можно сгенерировать с помощью Artisan. Данный контроллер будет иметь все необходимые методы для управления категориями блога.
Следующей сущностью блога, которая очень похожа на предыдущую, на категории, являются теги или метки. В данном уроке также будет создан контроллер ресурсов для управления тегами сайта.
Ключевой сущностью любого блога являются посты и следующие три урока будут отведены под реализацию функционала по управлению постами. Здесь функционал будет гораздо сложнее, нежели в случае с категориями или тегами, поскольку посты имеют гораздо больше атрибутов. В частности, это реализация связей с категориями и тегами, необходимость прикрепления изображений и т.д.
Предлагаемый урок будет посвящен функционалу регистрации на сайте. В качестве страницы регистрации будет взят шаблон из комплекта шаблонов AdminLTE.
Предлагаемый урок будет посвящен функционалу авторизации на сайте. В качестве страницы авторизации будет взят шаблон из комплекта шаблонов AdminLTE.
В этом уроке будет показана установка визуального редактора CKEditor и файлового менеджера CKFinder для тектстовых полей в админке сайта. Благодаря визуальному редактору администратор сайта будет иметь возможность форматирования текста статей без необходимости знания HTML. Ну а с помощью файлового менеджера будет возможно загружать изображения, которые можно будет вставлять в текст статей.
После реализации базового функционала администраторской части пришло время заняться пользовательской частью. Для пользовательской части будет взят бесплатный шаблон блога, который будет установлен в данной паре уроков и разбит на необходимые составляющие части.
На главной странице блога или новостного сайта, как правило, принято выводить ленту статей или новостей сайта. В данном уроке будут созданы необходимые контроллер и представления, которые будут отвечать за получение данных главной страницы и их отображение.
В текущем уроке будет добавлен экшен контроллера и необходимое представление для показа страницы отдельной статьи.
При запросе страницы той или иной категории блога должны показываться ее статьи. В этом уроке будет реализован необходимый функционал для получения статей запрошенной категории.
Получение статей по тегу очень похоже на получение статей той или иной категории. В данном уроке будет показана реализация функционала выборки и показа статей по тегу.
Сайдбар блога одинаков на каждой странице сайта, в нем есть одни и те же данные. Чтобы не получать эти данные отдельно для каждой страницы, воспользуемся возможностями View Composers, с помощью которого данные можно получить только один раз и передать их для шаблона сайдбара.
Последним функционалом, который будет показан в данном уроке, будет поиск по статьям. Для реализации поиска будет создан отдельный контроллер и представление.