Ошибки, сложный материал, вопросы >
Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

  • задайте вопрос нашим менторам. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
  • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
  • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.
Об обучении на Хекслете

Hello World

Проекты на Laravel создаются из командной строки. Проще всего создать новый проект с помощью команды composer create-project:

# Перейдите в домашнюю директорию и выполните команду
$ composer create-project --prefer-dist laravel/laravel hexlet-laravel-blog

Эта команда создаст приложение в директории hexlet-laravel-blog и установит все зависимости, необходимые для работы Laravel.

После завершения установки, перейдите в директорию с проектом:

$ cd hexlet-laravel-blog

Проверьте версию текущей установки Laravel выполнив команду в директории проекта:

$ php artisan --version
# Версия должна быть не ниже 7
Laravel Framework 7.4.0

Laravel управляется утилитой artisan, которая находится в корне проекта. Она включает в себя десятки команд, упрощающих процесс разработки. Одна из них – это запуск сайта в режиме разработки:

$ php artisan serve
Laravel development server started: <http://127.0.0.1:8000>

Эта команда запускает встроенный в PHP веб-сервер и настраивает его для работы с Laravel. Чтобы увидеть сайт, откройте браузер и загрузите http://127.0.0.1:8000. Вы увидите приветственную страницу фреймворка:

Laravel Hello World

Для остановки сервера переключитесь на терминал в котором он запущен и наберите CTRL+C.

Эта страница нужна только для проверки того, что все работает. Её код можно будет смело удалить.

Artisan

Утилита artisan является центральным пультом управления фреймворка. Через artisan мы будем автоматически генерировать код, управлять базой данных, запускать сервер, консоль и многое другое. Чтобы увидеть список всех команд, запустите artisan без аргументов:

$ php artisan

Этот список команд может расширяться как нами, так и разработчиками расширений. На GitHub можно найти множество полезных дополнений на все случаи жизни.

В последующих уроках мы постоянно будем возвращаться к этой утилите и изучать её возможности. А пока мы с ними не знакомы, попробуйте поиграться с командой inspire:

$ php artisan inspire
Computer science is no more about computers than astronomy is about telescopes. - Edsger Dijkstra
$ php artisan inspire
Simplicity is an acquired taste. - Katharine Gerould

Структура директорий

Современные фреймворки предназначены для разработки сайтов любых размеров. С одной стороны это хорошо, больше возможностей, но с другой, очень легко потеряться в круговороте фич, особенно если это ваш первый фреймворк. Помимо большого числа понятий самого Laravel, внутри него встроена поддержка фронтенда (JS, фронтенд-фреймворки), работа со статикой (JS, CSS, медиаресурсы), разные виды кеширования, работа с очередьми, тестирование, логирование и многое другое.

Это не значит что придётся использовать сразу всё, но иметь общее представление об этих возможностях нужно. Хотя бы на уровне понимания структуры директорий. Ниже приведена таблица директорий с описанием их содержимого. В этом описании будут встречаться названия, с которыми вы, возможно, не знакомы. Позже мы их разберём.

Директория Описание
app Код приложения. Именно здесь будет расположена большая часть того, что пишется разработчиками.
bootstrap Содержит файл app.php, который инициализирует фреймворк. Кроме того, здесь располагается кеш кода, ускоряющий запуск сайта.
config Конфигурация приложения. Параметры доступа к базе данных, настройка отправки почты, логирования, кеширования, всё это происходит здесь
database Ресурсы, необходимые для работы с базой данных: миграции, фабрики, сиды.
public Содержит файл index.php, который является входной точкой на сайт. Именно в него попадают все запросы. Ещё здесь содержатся подготовленные к раздаче статические файлы: JS, CSS и картинки
resources Содержит шаблоны и исходные фронтенд-файлы, такие как SCSS, JavaScript
routes Маршрутизация приложения
storage Служебная директория, содержит сессионные файлы, логи, файловые кеши, откомпилированные шаблоны (для ускорения)
tests Тесты приложения
vendor Сюда Composer ставит зависимости

Самостоятельная работа

  1. Повторите все из теории урока на своём компьютере
  2. Создайте на GitHub-репозиторий hexlet-laravel-blog
  3. Залейте туда проект

Дополнительные материалы

  1. Репозиторий готового проекта HexletLaravelBlog

<span class="translation_missing" title="translation missing: ru.web.courses.lessons.mentors.mentor_avatars">Mentor Avatars</span>

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят менторы из команды Хекслета или другие студенты.

Для полного доступа к курсу, нужна профессиональная подписка

Профессиональная подписка откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, даст возможность обращаться за помощью к менторам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
115
курсов
892
упражнения
2241
час теории
3196
тестов

Зарегистрироваться

или войти в аккаунт

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 115 курсов, 2000+ часов теории
  • 800 практических заданий в браузере
  • 250 000 студентов

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Rambler
Логотип компании Bookmate
Логотип компании Botmother

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».

Изображение Тото

Задавайте вопросы, если хотите обсудить теорию или упражнения. Менторы и опытные участники сообщества помогут найти ответы и решить задачу