<?php
/**
 * PHP层面性能优化
 * 在每个页面开头引入此文件
 */

// 1. 启用输出缓冲
if (!ob_get_level()) {
    ob_start('ob_gzhandler');
}

// 2. 设置缓存头
$uri = $_SERVER['REQUEST_URI'];
$ext = pathinfo($uri, PATHINFO_EXTENSION);

switch ($ext) {
    case 'css':
    case 'js':
        header('Cache-Control: public, max-age=2592000'); // 30天
        header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 2592000) . ' GMT');
        break;
        
    case 'jpg':
    case 'jpeg':
    case 'png':
    case 'gif':
    case 'ico':
    case 'svg':
    case 'woff':
    case 'woff2':
        header('Cache-Control: public, max-age=15552000'); // 180天
        header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 15552000) . ' GMT');
        break;
        
    default:
        // PHP页面不缓存
        header('Cache-Control: no-cache, no-store, must-revalidate');
        header('Pragma: no-cache');
        header('Expires: 0');
}

// 3. 压缩输出
if (!ini_get('zlib.output_compression')) {
    ini_set('zlib.output_compression', 'On');
    ini_set('zlib.output_compression_level', '6');
}