when i use guzzle to get data member on join to data content is so heavy, can samebody tell me how to fix it?
$getNewest=$this->Get(env('TestUrl').'listcast');
if (!empty($getNewest['DATA'])) {
foreach ($getNewest['DATA'] as $data)
{
$client = New CLient();
$reqGet = $client->get(env('MemberUrl').'user-token-member/'.$data['member_id']);
$resGet = json_decode($reqGet->getBody(),true);
$array['id']=$data['id'];
$array['title']=$data['title'];
$array['member_name'] =$resGet['DATA']['FIRSTNAME']." ".$resGet['DATA']['LASTNAME'];
$array['avatar'] = $resGet['DATA']['MEMBER_IMAGE'];
$array['desc'] = $data['desc'];
$newest[] = $array;
}
} else {
$newest = array();
}
I don't know exactly what is the reason for its low speed, but there are some modifications that you should apply on your code.
env()
in your code. Instead define a config file for example connection.php in config folder and set your configs in it, because config file will be cached in your production server by laravel. You can cache config by running php artisan config:cache
<?php
return [
'test_url'=>env('TestUrl'),
'member_url'=>env('MemberUrl'),
];
foreach
. You put it outside of the loop.$getNewest=$this->Get(config('connection.test_url').'listcast');
if (!empty($getNewest['DATA'])) {
$client = New CLient();
foreach ($getNewest['DATA'] as $data){
$reqGet = $client->get(config('connection.member_url').'user-token-member/'.$data['member_id']);
$resGet = json_decode($reqGet->getBody(),true);
$array['id']=$data['id'];
$array['title']=$data['title'];
$array['member_name'] =$resGet['DATA']['FIRSTNAME']." ".$resGet['DATA']['LASTNAME'];
$array['avatar'] = $resGet['DATA']['MEMBER_IMAGE'];
$array['desc'] = $data['desc'];
$newest[] = $array;
}
} else {
$newest = array();
}