Generare un file CSS con PHP

Mi è capitato, di recente, di dover passare dei parametri da PHP a CSS; Nello specifico, dopo aver creato un pannello di controllo per le opzioni di un tema wordpress ho avuto la necessità di dare la possibilità di modificare lo schema colori direttamente da wordpress utilizzando un colorpicker.
Ho analizzato le possibili soluzioni e quella più comoda sarebbe stata incorporare il CSS direttamente nell’head del file comprendendolo tra i due tag <style></style> ma, così facendo avrei generato una query in più ad ogni refresh della pagina.
La conclusione è stata quella di generare/aggiornare un file CSS ogni qual volta venisse salvato nel Database il valore del colorpicker:

<?php
function kldg_make_stylesheet( $url, $file_name, $output_name ) {
    ob_start(); // Attivo il buffering output
    require($url . $file_name); // Genera il CSS
    $css = ob_get_clean(); // Ottieni il CSS dal buffer
    file_put_contents($url . $output_name, $css, LOCK_EX); // Salva il CSS
}

// chiamo la funzione passando i parametri del file che voglio generare
kldg_make_stylesheet('css/', 'stylesheet.php', 'style.css');

Il file ‘css/stylesheet.php’ poi potrà contenere un codice di questo tipo:

<?php header("Content-type: text/css");  $main_color = '#f00';  ?>
body {
background-color: <?php echo $main_color ?>;
}
Matteo Currò

Autore: Mi chiamo , ho 29 anni e lavoro come freelance Web designer e Front-end developer aiutando startups e aziende a migliorare o a rivoluzionare la loro immagine nel web.