Regina Schaukrug: LESS oder SASS oder was?

Beitrag lesen

PHP

Ich sags mal so. Wenn die Webseite in PHP geschrieben ist (und Frontender + Backender die selbe Person ist) muss man sich nicht zwischendrin auf eine zweite Sprache umstellen - was man bei LESS oder SASS tun müsste.

Den Output am Ende einfach in eine Datei umleiten.

Ja: Cachen. Und zwar „Hardcore“. Also die entstehende Datei auch gleich mit gzip -9 zippen und das ausliefern, falls der UserAgent anzeigt, dass er es mag.

            $zippedFile = $file . '.gz';
            if ( ! is_file( $zippedFile ) ) {
                    $error = intval( trim( `gzip -9 -c < '$file' > '$zippedFile' 2> /dev/null; echo $?` ) );
                    if ( $error != 0 ) {
                          error_log("fastdeliver.php: error by trying gzip -c < '$file' > '$zippedFile' 2> /dev/null; echo \$?; in a shell");
                          $_SERVER['HTTP_ACCEPT_ENCODING'] = '';
                    }
            }

            if ( false === isset( $_SERVER['HTTP_ACCEPT_ENCODING'] ) OR false === strpos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip' ) ) {
                header('Content-Length: ' . filesize($file));
                readfile( $file );
            } else {
                header( 'Vary: Accept-Encoding' );
                header( 'Content-Encoding: gzip' );
        } else {
            error_log( "fastdeliver.php: File '$zippedFile' created." );
        }
                }
                header('Content-Length: ' . filesize($zippedFile));
                readfile( $zippedFile );
            }

Das entlastet den Apache. Man kann den Spaß so automatisieren, dass die Dateien (foo.css, foo.css.gz) neu erzeugt werden wenn foo.css.php ein neueres Datum hat.