Привет, энтузиасты PHP! ? Помните тот случай, когда вы программировали поздно ночью, борясь с HTTP-запросами в PHP, и думали: «Если бы это было так же просто, как извлечение данных в JavaScript»? Что ж, пейте кофе и готовьтесь к интересным новостям, потому что FetchPHP 2.0 уже здесь, и он сделает ваши HTTP-запросы PHP более плавными, чем хорошо смазанная машина!
Представьте себе: на дворе 2023 год, я сижу в любимой кофейне и потягиваю очень большую порцию латте… Нет, шучу. На самом деле я был дома, по колено на сеансе Elden Ring, когда внезапно меня осенило. «Что, если бы, — подумал я, — мы могли бы привнести в мир PHP простоту выборки JavaScript?» Так родился FetchPHP. (Не волнуйтесь, я первым закончил бой с боссом.)
Но вот что касается вдохновения: оно не ограничивается версией 1.0. Наблюдая за тем, как разработчики используют FetchPHP, я понял, что мы можем расширить границы возможного. Итак, я заперся в своей пещере для кодирования (ладно, это был всего лишь мой домашний офис, но через некоторое время он стал похож на пещеру), подпитанный нездоровым количеством энергетических напитков, и вышел с FetchPHP 2.0.
Пристегнитесь, ведь в этом обновлении больше возможностей, чем в швейцарском армейском ноже! Вот что готовится в версии 2.0:
Настоящие суперсилы асинхронности: Помните, когда асинхронность в PHP напоминала попытку пробежать марафон в шлепанцах? Те дни прошли! FetchPHP 2.0 использует PHP Fibers (благодаря нашему родственному пакету Matrix) для обеспечения истинного неблокирующего параллелизма. Это все равно, что дать вашему коду пару ракетных ботинок! Matrix, пакет, который я создал сам, упрощает управление асинхронными задачами за счет использования PHP Fibers. С помощью Matrix FetchPHP может выполнять асинхронные задачи, как никогда раньше.
Разработчики JavaScript, чувствуйте себя как дома: мы представили синтаксис, подобный async()/await, который позволит разработчикам JavaScript чувствовать себя так, будто они никогда не покидали дом. Это настолько знакомо, что вы можете забыть, что пишете PHP!
Свободный API для Win: создание запросов теперь проще, чем латте-арт вашего любимого бариста. Объедините методы вместе с нашим новым гибким API, вдохновленным HTTP-клиентом Laravel. Он настолько элегантный, что практически пишет сам!
Обработка ошибок на стероидах: благодаря нашему новому настраиваемому ErrorHandler управление ошибками больше не является кошмаром. Приостанавливайте, возобновляйте, повторяйте или отменяйте задачи на лету. Это похоже на машину времени для обработки HTTP-запросов!
Guzzle Кто?: Хотя мы все еще снимаем шляпу перед Guzzle (он обеспечивает под капотом наши синхронные запросы), FetchPHP 2.0 выводит все на совершенно новый уровень. Как будто мы отвели Guzzle в спортзал, накормили его шпинатом и научили новым трюкам!
Помните, как в версии 1.0 нам всем нравилось делать простые запросы? Что ж, держитесь за клавиатуру, потому что FetchPHP 2.0 готов справляться со сложными сценариями как профессионал. Давайте рассмотрим несколько примеров, которые заставят вас переписать всю вашу HTTP-логику (не волнуйтесь, мы не будем осуждать вас):
// Async request with all the bells and whistles async(fn () => fetch() ->baseUri('https://api.coolstartup.com') ->withHeaders(['X-API-Key' => 'supersecret']) ->withBody(json_encode(['feature' => 'awesome'])) ->withProxy('tcp://localhost:8080') ->timeout(5) ->retry(3, 1000) ->post('/unicorns')) ->then(fn ($response) => processUnicornData($response->json())) ->catch(fn ($e) => logUnicornError($e));
Посмотрите, какая красота! Он обрабатывает прокси, повторные попытки, таймауты и многое другое, оставаясь при этом асинхронным и выглядящим великолепно.
Теперь я знаю, о чем вы думаете. «Но я использую Guzzle уже много лет! Зачем мне переходить?» Что ж, пристегнитесь, потому что мы собираемся углубиться в то, почему FetchPHP 2.0 является новым чемпионом среди PHP HTTP-клиентов.
Вот краткое сравнение, чтобы лучше понять суть:
// Guzzle $promise = $client->requestAsync('GET', 'http://httpbin.org/get'); $promise->then( function ($response) { echo 'I completed! ' . $response->getBody(); }, function ($exception) { echo 'I failed! ' . $exception->getMessage(); } ); // FetchPHP // using async/await syntax async(fn () => fetch('http://httpbin.org/get')) ->then(fn ($response) => echo 'I completed! ' . $response->body()) ->catch(fn ($e) => echo 'I failed! ' . $e->getMessage()); // or directly using the ClientHandler class use Fetch\Http\ClientHandler; (new ClientHandler()) ->async() ->get('http://httpbin.org/get');
Видите разницу? FetchPHP привносит элегантность современного JavaScript в мир PHP, сохраняя при этом мощность и гибкость, необходимые для сложных приложений.
Представьте, что вы дирижер, а ваши HTTP-запросы — это ваш оркестр. С Guzzle вы отлично справляетесь со своей задачей, но вы ограничены игрой на одном инструменте за раз. ПолучитьPHP 2.0? Он превращает вас в маэстро, дирижирующего полной симфонией асинхронных запросов, каждый из которых играет в идеальной гармонии.
Вот почему FetchPHP 2.0 — это HTTP-клиент, о котором вы даже не подозревали:
FetchPHP 2.0 — это не просто обновление; это революция в том, как мы обрабатываем HTTP-запросы в PHP. Независимо от того, создаете ли вы небольшой API или крупномасштабную систему, которая должна обрабатывать тысячи одновременных запросов, FetchPHP 2.0 вам поможет.
Итак, готовы ли вы присоединиться к асинхронной революции? Зайдите в наш репозиторий GitHub, поставьте нам звездочку (нам она нравится!) и начните делать свои PHP-приложения быстрее, эффективнее и, смею сказать, с ними веселее работать!
Помните, что в мире FetchPHP 2.0 единственным ограничением является ваше воображение (и, возможно, ресурсы вашего сервера, но это проблема для другого дня).
Удачного кодирования, и пусть ваши запросы всегда будут асинхронными! ?✨
P.S. Если у вас возникнут какие-либо проблемы или у вас есть идеи, как сделать FetchPHP еще более интересным, не стесняйтесь открыть проблему или отправить запрос на включение. Давайте сделаем мир PHP лучше, каждый запрос за раз!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3