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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
define("DOCNAME", $_GET["docname"]);
et ensuite l'appelée comme ceci : et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$pdfname = DOCNAME.".pdf";
?

Ou bien niveau performance serait-il plus judicieux d'utilisé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 !