Вопрос №55801 от пользователя Вячеслав Макаров в уроке «Обработчики запросов», курс «Веб-разработка на PHP»
Прошел задание, но признаюсь, ничего не понял из того, что сделал :) На этом уроке пришло осознание, что предыдущие 7 уроков ничего не разложили в голове, и весь код выглядит, как иероглифы. Что это такое? --> $faker->seed(1234);
Тут https://www.slimframework.com/ я ничего не нашел на эту тему . Откуда берется это --> $faker->domainName;
.
И самое больное, не понятен практический смысл этого задания? Перечитываю пройденные уроки, и легче ну, не становится... Порекомендуйте, может есть сторонние какие источники, с более доходчивым описанием? Спасибо!
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';
Этот курс очень важный, он закладывает основу для дальнейшего обучения. Смысл этого задания - самостоятельно создать обработчики для адресов. Рекомендую вам не оставлять пробелов в этом курсе. Попробуйте вернуться к тому месту, где появилось недопонимание и попробуйте пройти еще раз. Повторяйте локально все примеры из теории. Если что-то будет не понятно, обязательно задавайте вопрос. Вам обязательно объяснят и помогут разобраться. Возможно, где-то нужно будет добавить подсказку или расширить теорию.
Максим Литвинов, Спасибо за быстрый ответ. Вот весь день сегодня и думал, что не так с теорией. Курс начинается как-то так --> ... разработчики используют популярные микрофреймворки А и В, но нам больше нравится Slim... И тут началось .. Идет пример обработчика, с "очевидным" его преимуществом и удобством в использовании... Собственно тут и затор. Удобней, чем что? Как на примитивном уровне работают все эти обработчики и роутеры. Полюблю Slim, обещаю, но нужно знать как это работает на чистом php. Только тогда можно почувствовать удобство работы библиотеки :(
Вячеслав, все микрофреймворки похожи. Они отличаются деталями, но суть работы у всех одинакова. Изучив один, сможете разобраться и в другом. Они опираются на архитектуру 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
Максим Литвинов, Спасибо! все разложили... Бегло просмотрел курс по разработке собственного фреймворка... Думаю, будет не лишним включить его в основной по PHP. Пройду и его, для усиления эффекта :)
Отлично, что разобрались! Курс по разработке фреймворка уже выходит за пределы программы, это скорее для тех, кто хочет прокачаться и заглянуть под капот.
... на Хекслете есть курс по разработке собственного микрофреймворка: https://ru.hexlet.io/courses/php-web
Вот это годнота! И почему я это только сейчас увидел? Пойду проходить.
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.







