Example of some ‘db’ resources calls in PHP language¶
- The following resources are directly used in this example or could be used in a similar way :
Use the PHP code into a php tag :
- <?php
- … PHP code …
?>
Memo
# PHP code : # send GET request and return response datas function send_get_and_receive($url, $options=NULL, $id=NULL){ # full_url composed by : url {id} /? options $full_url = $url; if ($id != NULL){ $full_url = $full_url.$id; } if ($options != NULL){ $full_url = $full_url."?".http_build_query($options); } print ("<br />request GET ".$full_url."<br />"); # # ob_start(); $c = curl_init(); set_time_limit(120); curl_setopt($c, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($c, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); # curl_setopt($c, CURLOPT_URL, $full_url); # to follow redirect curl_setopt($c, CURLOPT_FOLLOWLOCATION, True); # curl_exec($c); $buffer_str = ob_get_contents(); ob_end_clean(); # $responsedata = json_decode($buffer_str, TRUE); curl_close($c); # return $responsedata; }# PHP code : # content of the models repository (vlerep) in 'tree' style of presentation function content_rep_tree($vlerep){ $vlerep_id= $vlerep['id']; $vlerep_name= $vlerep['name']; $vlerep_verbose_name= $vlerep['verbose_name']; $vlerep_path = $vlerep['path']; print ("<br />Models repository (id, name, verbose_name) : ".$vlerep_id." ".$vlerep_name." ".$vlerep_verbose_name); print ("<br />List of its models (id, name, verbose_name) :"); $vlerep_vlepkg_list = $vlerep['vlepkg_list']; foreach ($vlerep_vlepkg_list as $vlepkg){ $vlepkg_id = $vlepkg['id']; $vlepkg_name = $vlepkg['name']; $vlepkg_verbose_name = $vlepkg['verbose_name']; $vlepkg_vlerep = $vlepkg['vlerep']; print ("<br />- ".$vlepkg_id." ".$vlepkg_name." ".$vlepkg_verbose_name); } print ("<br />"); } # content of the model (vlepkg) in 'tree' style of presentation function content_pkg_tree($vlepkg){ $vlepkg_id = $vlepkg['id']; $vlepkg_name = $vlepkg['name']; $vlepkg_verbose_name = $vlepkg['verbose_name']; $vlepkg_vlerep = json_encode($vlepkg['vlerep'], JSON_UNESCAPED_SLASHES); print ("<br />Model (id, name, verbose_name, vlerep) : ".$vlepkg_id." ".$vlepkg_name." ".$vlepkg_verbose_name." ".$vlepkg_vlerep); print ("<br />List of its simulators (id, name, verbose_name, vlepkg) :"); $vlepkg_vlevpz_list = $vlepkg['vlevpz_list']; foreach ($vlepkg_vlevpz_list as $vlevpz){ $vlevpz_id = $vlevpz['id']; $vlevpz_name = $vlevpz['name']; $vlevpz_verbose_name = $vlevpz['verbose_name']; $vlevpz_vlepkg = json_encode($vlevpz['vlepkg'], JSON_UNESCAPED_SLASHES); print_r ("<br />- ".$vlevpz_id." ".$vlevpz_name." ".$vlevpz_verbose_name." ".$vlevpz_vlepkg); } print ("<br />"); } # content of the simulator (vlevpz) in 'tree' style of presentation function content_vpz_tree($vlevpz){ $vlevpz_id = $vlevpz['id']; $vlevpz_name = $vlevpz['name']; $vlevpz_verbose_name = $vlevpz['verbose_name']; $vlevpz_vlepkg = json_encode($vlevpz['vlepkg'], JSON_UNESCAPED_SLASHES); print_r ("<br />Simulator (id, name, verbose_name, vlepkg) : ".$vlevpz_id." ".$vlevpz_name." ".$vlevpz_verbose_name." ".$vlevpz_vlepkg); print ("<br />"); } ############################################## # All the models repositories in 'tree' style ############################################## $url = "http://erecord.toulouse.inra.fr:8000/db/rep/"; $options = ['mode'=>'tree']; $vlerep_list = send_get_and_receive($url=$url,$options=$options); foreach ($vlerep_list as $vlerep){ content_rep_tree($vlerep); } print ("<br />"); ################################################################################ # Among all the models repositories, looking for the model with name model_name ################################################################################ $url = "http://erecord.toulouse.inra.fr:8000/db/rep/"; $options = ['mode'=>'tree']; $vlerep_list = send_get_and_receive($url=$url,$options=$options); foreach (["2CV", "wwdm"] as $model_name){ foreach ($vlerep_list as $vlerep){ $vlerep_vlepkg_list = $vlerep['vlepkg_list']; foreach ($vlerep_vlepkg_list as $vlepkg){ $vlepkg_id = $vlepkg['id']; $vlepkg_name = $vlepkg['name']; if ($vlepkg_name == $model_name){ ################################################################# # New request for the model with name model_name in 'tree' style ################################################################# print ("<br /><br />More about the model with name ".$model_name); $url = "http://erecord.toulouse.inra.fr:8000/db/pkg/"; $options = ['mode'=>'tree']; $vlepkg = send_get_and_receive($url=$url, $options=$options, $id=$vlepkg_id); content_pkg_tree($vlepkg); } } } } print ("<br />"); ##################################################################### # All the simulators of the model with id=19 ("2CV") in 'tree' style ##################################################################### $vlepkg_id = 19; $url = "http://erecord.toulouse.inra.fr:8000/db/vpz/"; $options = ['mode'=>'tree', 'pkg'=>$vlepkg_id]; $vlevpz_list = send_get_and_receive($url=$url,$options=$options); print ("<br /><br />Simulators of the model with id=".$vlepkg_id." :"); foreach ($vlevpz_list as $vlevpz){ content_vpz_tree($vlevpz); } ################################## # domino requests in 'link' style ################################## # (models repositories => theirs models => their simulators) $url = "http://erecord.toulouse.inra.fr:8000/db/rep/"; $options = ['mode'=>'link']; $vlerep_list = send_get_and_receive($url=$url,$options=$options); foreach ($vlerep_list as $vlerep){ $vlerep_id = $vlerep['id']; $vlerep_name = $vlerep['name']; $vlerep_verbose_name = $vlerep['verbose_name']; $vlerep_path = $vlerep['path']; $vlepkg_url_list = $vlerep['vlepkg_list']; print ("<br />=> models repository ".$vlerep_id." ".$vlerep_name." ".$vlerep_verbose_name." ".$vlerep_path." ".json_encode($vlepkg_url_list, JSON_UNESCAPED_SLASHES)); foreach ($vlepkg_url_list as $vlepkg_url){ $vlepkg = send_get_and_receive($url=$vlepkg_url,$options=$options); $vlepkg_id = $vlepkg['id']; $vlepkg_name = $vlepkg['name']; $vlepkg_verbose_name = $vlepkg['verbose_name']; $vlerep_url = $vlepkg['vlerep']; $vlevpz_url_list = $vlepkg['vlevpz_list']; print (". . . => model ".$vlepkg_id." ".$vlepkg_name." ".$vlepkg_verbose_name." ".$vlerep_url." ".json_encode($vlevpz_url_list, JSON_UNESCAPED_SLASHES)); foreach ($vlevpz_url_list as $vlevpz_url){ $vlevpz = send_get_and_receive($url=$vlevpz_url,$options=$options); $vlevpz_id = $vlevpz['id']; $vlevpz_name = $vlevpz['name']; $vlevpz_verbose_name = $vlevpz['verbose_name']; $vlevpz_vlepkg_url = $vlevpz['vlepkg']; print (". . . => simulator ".$vlevpz_id." ".$vlevpz_name." ".$vlevpz_verbose_name." ".$vlevpz_vlepkg_url); } } }