Bonjour,

Je suis en train de mettre en place un minimiseur pour cela, je fais un file_get_content sur mes fichiers JS que je combine puis j'applique JS::minify.

Le souci c'est que du coup c'est plus lent qu'avec mes fichiers originaux.

J'ai donc voulu mettre en cache le fichier mais ca ne marche pas. Quel header dois-je utiliser ? Et comment ?


Merci à ceux qui me guideront

Mon code :


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
36
37
38
39
40
// liste des javascripts a minimiser
$arrFiles = array(
	//'js/jquery.min.js' => false,
	'js/jquery.js' => true,
	'js/script.js' => true
);
 
// Minimiser les fichiers
$contentNotMin	= '';	// code javascript a ne pas minimiser
$content2Min	= '';	// code javascript a minimiser
foreach( $arrFiles as $file => $doCompress ) {
	if ( file_exists($file) ) {
		if ( $doCompress ) {
			$content2Min	.= file_get_contents($file);
		} else {
			$contentNotMin	.= file_get_contents($file);
		}
	}
}
 
if ( ! empty($contentNotMin) || ! empty($content2Min) ) {
	$minified	= USE_PLUS ? JSMinPlus::minify($content2Min) : JSMin::minify($content2Min);
	$content	= $contentNotMin.$minified;
	// $content	= Minify::combine($arrFiles);
 
	// Entetes
	$offset		= 60 * 60 * 24 * 365; 
	$expire		= time() + $offset;
	$modified	= time() - $offset;
	header('Expires: ' . gmdate('D, d M Y H:i:s', $expire) . 'GMT'); // mise en cache
	header("Last-Modified: " . gmdate("D, d M Y H:i:s", $modified) . " GMT"); 
	header('Cache-Control: max-age=28800');
	header('content-type:application/x-javascript');
	header('content-length:' . strlen($content));
 
	// Affichage
	echo $content;
} else {
	echo 'Javascript error';
}

Apre, j'ai peut-être raté une étape, car du coup effectivement, pour l'instant ca reminimise a chaque fois. J'ai vu que d'autres ecrivait le résultat dans un fichier de cache. Moi, j'aimerais ne pas créer de fichier.