Olá, entusiastas de PHP! ? Lembra daquela vez que você estava programando tarde da noite, lutando com solicitações HTTP em PHP, e pensou: "Se ao menos isso fosse tão fácil quanto a busca do JavaScript"? Bem, pegue seu café e prepare-se para novidades interessantes, porque o FetchPHP 2.0 está aqui e está prestes a tornar suas solicitações PHP HTTP mais suaves do que uma máquina bem lubrificada!
Imagine isto: é 2023 e estou sentado em minha cafeteria favorita, tomando um café com leite extragrande... Não, estou brincando. Na verdade, eu estava em casa, mergulhado até os joelhos em uma sessão de Elden Ring, quando de repente a inspiração surgiu. “E se”, pensei, “pudéssemos trazer a simplicidade da busca do JavaScript para o mundo do PHP?” E assim nasceu o FetchPHP. (Não se preocupe, terminei aquela luta contra o chefe primeiro.)
Mas aqui está a questão da inspiração – ela não para na versão 1.0. Ao observar os desenvolvedores adotando o FetchPHP, percebi que poderíamos ir além ainda mais. Então, me tranquei em minha caverna de codificação (ok, era apenas meu escritório em casa, mas parecia uma caverna depois de um tempo), abastecido por uma quantidade prejudicial à saúde de bebidas energéticas, e emergi com o FetchPHP 2.0.
Apertem os cintos, porque esta atualização vem com mais recursos do que um canivete suíço! Aqui está o que está acontecendo na versão 2.0:
Verdadeiros superpoderes assíncronos: Lembra quando o assíncrono em PHP parecia tentar correr uma maratona de chinelos? Esses dias acabaram! O FetchPHP 2.0 aproveita PHP Fibers (graças ao nosso pacote irmão, Matrix) para fornecer simultaneidade verdadeira e sem bloqueio. É como dar ao seu código um par de botas-foguete! Matrix, um pacote que eu mesmo construí, simplifica o gerenciamento de tarefas assíncronas utilizando PHP Fibers. Com o Matrix, o FetchPHP pode executar tarefas assíncronas como nunca antes.
Desenvolvedores de JavaScript, sintam-se em casa: introduzimos uma sintaxe semelhante a async()/await que fará com que os desenvolvedores de JavaScript sintam que nunca saíram de casa. É tão familiar que você pode esquecer que está escrevendo PHP!
API fluente para o Win: criar solicitações agora é mais fácil do que a arte com leite do seu barista favorito. Encadeie métodos com nossa nova API fluente, inspirada no cliente HTTP do Laravel. É tão elegante que praticamente se escreve sozinho!
Tratamento de erros com esteróides: Com nosso novo ErrorHandler personalizável, gerenciar erros não é mais um pesadelo. Pause, retome, tente novamente ou cancele tarefas instantaneamente. É como ter uma máquina do tempo para suas solicitações HTTP!
Guzzle Who?: Embora ainda tiremos o chapéu para o Guzzle (ele está alimentando nossas solicitações síncronas nos bastidores), o FetchPHP 2.0 leva as coisas a um nível totalmente novo. É como se tivéssemos levado Guzzle para a academia, alimentado com espinafre e ensinado novos truques!
Lembra que na versão 1.0 estávamos todos entusiasmados em fazer solicitações simples? Bem, segure seus teclados, porque o FetchPHP 2.0 está pronto para lidar com cenários complexos como um profissional. Vejamos alguns exemplos que farão você querer reescrever toda a sua lógica HTTP (não se preocupe, não julgaremos se você fizer isso):
// 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));
Olha que beleza! Ele lida com proxies, novas tentativas, tempos limite e muito mais, tudo isso enquanto permanece assíncrono e tem uma aparência linda.
Agora, eu sei o que você está pensando. "Mas uso o Guzzle há anos! Por que deveria mudar?" Bem, aperte o cinto, porque estamos prestes a descobrir por que o FetchPHP 2.0 é o novo campeão peso-pesado dos clientes PHP HTTP.
Aqui está uma comparação rápida para deixar claro:
// 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');
Vê a diferença? O FetchPHP traz a elegância do JavaScript moderno para o mundo PHP, ao mesmo tempo em que mantém o poder e a flexibilidade necessários para aplicativos complexos.
Imagine que você é um maestro e suas solicitações HTTP são sua orquestra. Com o Guzzle, você está fazendo um ótimo trabalho, mas está limitado a tocar um instrumento por vez. Buscar PHP 2.0? Transforma você em um maestro, conduzindo uma sinfonia completa de pedidos assíncronos, com cada um tocando em perfeita harmonia.
Veja por que o FetchPHP 2.0 é o cliente HTTP que você nunca soube que precisava:
FetchPHP 2.0 não é apenas uma atualização; é uma revolução na forma como lidamos com solicitações HTTP em PHP. Esteja você construindo uma API pequena ou um sistema de grande escala que precisa lidar com milhares de solicitações simultâneas, o FetchPHP 2.0 está à sua disposição.
Então, você está pronto para se juntar à revolução assíncrona? Acesse nosso repositório GitHub, dê-nos uma estrela (nós amamos isso!) e comece a tornar seus aplicativos PHP mais rápidos, mais eficientes e, ouso dizer, mais divertidos de trabalhar!
Lembre-se, no mundo do FetchPHP 2.0, o único limite é a sua imaginação (e talvez os recursos do seu servidor, mas isso é um problema para outro dia).
Boa codificação e que suas solicitações sejam sempre assíncronas! ?✨
P.S. Se você tiver algum problema ou tiver ideias para tornar o FetchPHP ainda mais incrível, não hesite em abrir um problema ou enviar uma solicitação pull. Vamos tornar o mundo PHP um lugar melhor, uma solicitação de cada vez!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3