molily: CSS mit PHP erzeugen bzw. durch Less

Beitrag lesen

Hallo!

Stimmt ihr mir hier zu?

Less ist eine Sprache, die zu CSS kompiliert. Darauf ist sie ausgelegt, optimiert und beschränkt. Es ist nicht möglich, mit Less stark fehlerhaften CSS-Code zu erzeugen, weil der Compiler weiß, wie die Ausgabe aussehen muss. Less und andere CSS-Präprozessoren decken nur einen bestimmten Bereich ab, sind darin spezialisiert und äußerst robust. Sie enthalten eine bestimmte Logik, die nur im CSS-Kontext sinnvoll und nützlich ist. Solche Sprachen werden auch domänenspezifische Sprachen genannt.

PHP ist eine vollwertige generische Programmiersprache, die allen möglichen Output produzieren kann. Also lassen sich prinzipiell mit PHP alle Features von Less umsetzen (das sind im Übrigen viel mehr als nur Variablen). Erstens will man das nicht tun, denn CSS-Präprozessoren existieren bereits. Zweitens stößt man bei fast allen Sprachen an Grenzen, wenn man mit PHP einfach irgendwelche Bytes per <?php echo ?> ausspuckt. PHP versteht den Kontext nicht, in dem die Bytes ausgegeben werden. Um stets validen und sicheren Code zu produzieren, müsste man sich erst eine Abstraktion programmieren. Dann arbeitet man auf einem abstrakten Objektbaum, der letztlich serialisiert wird, oder mit Metasprachen, die interpretiert/übersetzt werden.

Das ist auch der Grund, warum größere Webanwendungen oft HTML-Template-Sprachen nutzen, anstatt mit <?php echo ?> und komplexer PHP-Logik in den Templates zu hantieren. Genauso wie bei CSS-Präprozessoren sollen diese Sprachen gar nicht die volle Logik einer generischen Programmiersprache haben, sondern nur die, die für den Anwendungsbereich sinnvoll und sicher ist.

Natürlich ist es aufwändig, diese Zusatzsprachen zu lernen und entsprechende Compiler aufzusetzen, aber es ist die Sache wert, denn sie sind das passende Werkzeug.

Mathias