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

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

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

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

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

Микрофреймворк Slim

Цикл запрос-обработка-ответ включает множество элементов, которые идентичны для всех сайтов. Поэтому возникли, так называемые, фреймворки, специализированные библиотеки, которые определяют структуру программы. В этом их отличие от обычных библиотек. Благодаря фреймворкам можно сосредоточиться на логике сайта, а не на продумывании базовой архитектуры или кодировании вспомогательных инструментов.

Веб-фреймворки подразделяются на две большие группы, одна из которых так и называется — фреймворки, а другая — микрофреймворки. Микрофреймворки устроены значительно проще и содержат внутри себя только минимально необходимую обвязку для комфортной работы в архитектуре HTTP — запрос-ответ. Они идеально подходят для обучения, потому что просты в эксплуатации и не отвлекают от главного. С одним микрофреймворком мы уже знакомились ранее — Slim. Теперь, обладая гораздо более глубоким пониманием происходящих процессов, мы сможем изучить его вдоль и поперёк, попутно разбирая типичные задачи и их способы решения в вебе.

Slim

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

.
├── hexlet-slim-example
│   └── public

Создайте репозиторий внутри hexlet-slim-example и добавьте его на GitHub. Не забудьте создать файл .gitignore и поместите туда директорию vendor. hexlet-slim-example теперь называется корневой директорией проекта (root directory).

Зайдите в корневую директорию проекта и установите Slim и его зависимости:

$ composer require slim/slim slim/psr7 slim/http

Добавьте файл hexlet-slim-example/public/index.php со следующим содержимым:

<?php

// Подключение автозагрузки через composer
require __DIR__ . '/../vendor/autoload.php';

use Slim\Factory\AppFactory;

$app = AppFactory::create();
$app->addErrorMiddleware(true, true, true);

$app->get('/', function ($request, $response) {
    $response->getBody()->write('Welcome to Slim!');
    return $response;
    // Благодаря пакету slim/http этот же код можно записать короче
    // return $response->write('Welcome to Slim!');
});
$app->run();

Создайте файл Makefile в корне проекта и добавьте туда задачу start:

start:
	php -S localhost:8080 -t public public/index.php

Теперь выполните запуск:

$ make start

Вывод должен быть примерно таким:

[Wed May 27 17:05:25 2020] PHP 7.4.3 Development Server (http://localhost:8080) started

Эта команда содержит новую для нас опцию -t. С её помощью меняется корневая директория, то место где происходит поиск файла index.php. Подобную директорию принято называть public и помещать в неё только то, что можно открыть напрямую из браузера. Все остальное ни в коем случае не должно лежать в этой директории, иначе вас могут взломать.

И последний шаг, откройте в браузере localhost:8080. Если все хорошо, то на экране появится надпись Welcome to Slim!.

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

Выполните все шаги из этого урока на своем компьютере и сохраните проект hexlet-slim-example. Мы его будем использовать в дальнейших уроках.


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

  1. Утилита Make
  2. Микрофреймворк Slim

<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 студентов

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

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

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

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

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

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