Цикл запрос-обработка-ответ включает множество элементов, которые идентичны для всех сайтов. Поэтому возникли так называемые фреймворки - специализированные библиотеки, которые определяют структуру программы. В этом их отличие от обычных библиотек. Благодаря фреймворкам можно сосредоточиться на логике сайта, а не на продумывании базовой архитектуры или кодировании вспомогательных инструментов.
Веб-фреймворки подразделяются на две большие группы, одна из которых так и называется — фреймворки, а другая — микрофреймворки. Микрофреймворки устроены значительно проще и содержат внутри себя только минимально необходимую обвязку для комфортной работы в архитектуре HTTP — запрос-ответ. Они идеально подходят для обучения, потому что просты в эксплуатации и не отвлекают от главного. С одним микрофреймворком мы уже знакомились ранее — 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 slim/php-view php-di/php-di
Добавьте файл 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!.
Выполните все шаги из этого урока на своем компьютере, придумайте проекту имя. Запушьте его на GitHub. Проект нам понадобится в дальнейших уроках.
Вам ответят команда поддержки Хекслета или другие студенты.
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
Зарегистрируйтесь или войдите в свой аккаунт