Вопрос №55801 от пользователя Вячеслав Макаров в уроке «Обработчики запросов», курс «Веб-разработка на PHP»

Вячеслав Макаров

Прошел задание, но признаюсь, ничего не понял из того, что сделал :) На этом уроке пришло осознание, что предыдущие 7 уроков ничего не разложили в голове, и весь код выглядит, как иероглифы. Что это такое? --> $faker->seed(1234); Тут https://www.slimframework.com/ я ничего не нашел на эту тему . Откуда берется это --> $faker->domainName; . И самое больное, не понятен практический смысл этого задания? Перечитываю пройденные уроки, и легче ну, не становится... Порекомендуйте, может есть сторонние какие источники, с более доходчивым описанием? Спасибо!

6 2

Maksim Litvinov

Faker - это библиотека, которая генерирует фейковые данные. Например, имена, фамилии, телефоны несуществующих людей и т.д. Чаще всего используется в тестировании, чтобы не придумывать эти данные самому.

$faker = \Faker\Factory::create();

Этот вызов сгененрирует случайный номер телефона
$faker->phoneNumber // +27113456789

// А этот - случайный домен. 
$faker->domainName

В итоге, весь это код просто наполняет данными массивы $domains и $numbers. Придумывать это самому было долго и неудобно, а Faker сделал все это за нас.

Метод seed() используется, если мы хотим всегда получать одни и те же данные. Это нужно для того, чтобы протестировать вашу функцию.

$faker = Faker\Factory::create();
$faker->seed(1234);

После вызова seed() этот метод будет всегда возвращать одинаковое имя.
echo $faker->name; // 'Jess Mraz I';

Этот курс очень важный, он закладывает основу для дальнейшего обучения. Смысл этого задания - самостоятельно создать обработчики для адресов. Рекомендую вам не оставлять пробелов в этом курсе. Попробуйте вернуться к тому месту, где появилось недопонимание и попробуйте пройти еще раз. Повторяйте локально все примеры из теории. Если что-то будет не понятно, обязательно задавайте вопрос. Вам обязательно объяснят и помогут разобраться. Возможно, где-то нужно будет добавить подсказку или расширить теорию.

0

Вячеслав Макаров

Максим Литвинов, Спасибо за быстрый ответ. Вот весь день сегодня и думал, что не так с теорией. Курс начинается как-то так --> ... разработчики используют популярные микрофреймворки А и В, но нам больше нравится Slim... И тут началось .. Идет пример обработчика, с "очевидным" его преимуществом и удобством в использовании... Собственно тут и затор. Удобней, чем что? Как на примитивном уровне работают все эти обработчики и роутеры. Полюблю Slim, обещаю, но нужно знать как это работает на чистом php. Только тогда можно почувствовать удобство работы библиотеки :(

0

Maksim Litvinov

Вячеслав, все микрофреймворки похожи. Они отличаются деталями, но суть работы у всех одинакова. Изучив один, сможете разобраться и в другом. Они опираются на архитектуру HTTP, у которого есть запрос и ответ. На каждый адрес создается обработчик, который принимает запрос, обрабатывает его и возвращает ответ. Как это делается на чистом PHP, без фреймворков, можете посмотреть в упражнении https://ru.hexlet.io/courses/php-mvc/lessons/php-cgi/exercise_unit. Приходится руками разбирать глобальный массив $_SERVER, ставить условные конструкции. Не очень удобно. Микрофреймворки же предоставляют удобные абстракции для этого, которые скрывают все детали реализации. Сравните:

$address = $_SERVER['REQUEST_URI'];
switch ($address) {
    case '/':
        echo '<a href="/welcome">welcome</a>';
        echo '<br>';
        echo '<a href="/not-found">not-found</a>';
        break;
    case '/welcome':
        echo '<a href="/">main</a>';
        break;

и

$app->get('/users', function ($request, $response) {
    return $response->write('GET /users');
});

Если захотите погрузиться еще глубже и узнать, как работает фреймворк под капотом, на Хекслете есть курс по разработке собственного микрофреймворка: https://ru.hexlet.io/courses/php-web

1

Вячеслав Макаров

Максим Литвинов, Спасибо! все разложили... Бегло просмотрел курс по разработке собственного фреймворка... Думаю, будет не лишним включить его в основной по PHP. Пройду и его, для усиления эффекта :)

0

Maksim Litvinov

Отлично, что разобрались! Курс по разработке фреймворка уже выходит за пределы программы, это скорее для тех, кто хочет прокачаться и заглянуть под капот.

0

Илья Муратов

... на Хекслете есть курс по разработке собственного микрофреймворка: https://ru.hexlet.io/courses/php-web

Вот это годнота! И почему я это только сейчас увидел? Пойду проходить.

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

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

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

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
25 мая 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
25 мая 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
25 мая 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
25 мая 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
25 мая 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
25 мая 5 месяцев