Bonjour à tous, étant débutant j'ai besoin de votre aide sur un sujet :
SonarQube ( logiciel qui mesure la qualité du code ) me demande d'utiliser une constante au lieu de dupliqué 3 fois ( $_GET["docname"] ) sur le code suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| <?php
$servername = "http://blabla";
if( isSet( $_GET["docname"] ) ) {
$path = $servername;
switch( strtolower($_GET["docname"]) ) {
case 'guide_tarifaire_res':
$path .= "/path/to/something";
break;
case 'guide_tarifaire_pro':
$path .= "/path/to/something";
break;
default:
header("location: http://www.exemple.com");
break;
}
$pdfname = $_GET["docname"].".pdf";
$pdf = file_get_contents($path);
$len = strlen($pdf);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=$pdfname");
echo $pdf;
} else {
header("location: http://www.exemple.com");
}
?> |
Dois-je faire une constante comme ceci :
define("DOCNAME", $_GET["docname"]);
et ensuite l'appelée comme ceci : et
$pdfname = DOCNAME.".pdf";
?
Ou bien niveau performance serait-il plus judicieux d'utilisé
const DOCNAME = $_GET["docname"];
mais il me semble que c'est possible uniquement pour une classe, ce qui n'est pas mon cas.
Ou bien vu que je redéfinis dans le switch la variable en question , une constante n'est pas appropriée et je devrais utilisé une variable classique ?
Merci d'avance !
Partager