Saudações colegas.
Alguém já familiarizado com o reactphp poderia me dar uma luz de como eu faço esse parallel com as imagens? pergunto isso pois, o parallel não está disponível na versão 8.1 do PHP e, com o react notei que funciona.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Saudações colegas.
Alguém já familiarizado com o reactphp poderia me dar uma luz de como eu faço esse parallel com as imagens? pergunto isso pois, o parallel não está disponível na versão 8.1 do PHP e, com o react notei que funciona.
Olá, Alaerte! Tudo bem com você?
Peço desculpas pela demora no retorno a sua mensagem.
Com o ReactPHP, você pode utilizar a biblioteca "clue/reactphp-parallel" para realizar o processamento paralelo das imagens. Essa biblioteca permite que você execute várias tarefas em paralelo, o que pode ser muito útil para o redimensionamento de imagens.
Aqui está um exemplo básico de como você pode utilizar o ReactPHP para redimensionar imagens em paralelo:
<?php
require 'vendor/autoload.php';
use React\EventLoop\Factory;
use React\Promise\Promise;
use Clue\React\Buzz\Browser;
use Clue\React\Buzz\Message\ResponseException;
$loop = Factory::create();
$browser = new Browser($loop);
$images = [
'image1.jpg',
'image2.jpg',
'image3.jpg'
];
$promises = array_map(function ($image) use ($browser) {
return $browser->get('http://example.com/' . $image)->then(
function ($response) use ($image) {
// Redimensionar a imagem aqui
// ...
return $image;
},
function (ResponseException $e) use ($image) {
// Tratar erros de requisição aqui
// ...
return $image;
}
);
}, $images);
Promise\all($promises)->then(function ($result) {
// Processar os resultados aqui
// ...
echo "Todas as imagens foram redimensionadas com sucesso!";
}, function ($error) {
// Tratar erros aqui
// ...
echo "Ocorreu um erro ao redimensionar as imagens.";
});
$loop->run();
Nesse exemplo, utilizamos o ReactPHP para fazer requisições assíncronas para cada imagem e redimensioná-las em paralelo. O método then() é utilizado para tratar o resultado de cada requisição e redimensionar a imagem. No final, utilizamos Promise\all() para esperar todas as promessas serem resolvidas e processar os resultados.
Lembre-se de adaptar esse exemplo conforme as suas necessidades e estrutura do seu projeto. Espero que isso te ajude a aplicar o parallel no redimensionamento de imagens com o ReactPHP.
Para mais informações, abaixo deixarei o material da documentação oficial.
Espero que isso te ajude. Se tiver mais alguma dúvida, estarei à disposição!
Bons estudos!