FLOW3: Erster Eindruck

Da ich aktuell an einer kleinen FLOW3(-Übungs)-Anwendung arbeite, wollte ich einfach mal meine ersten Eindrücke aufschreiben.

Als erstes ist zu sagen, dass FLOW3 so ziemlich das sauberste Framework ist, das ich je gesehen habe. Die komplette Architektur ist durchdesigned und hat ein klares Konzept: Der eigene Code soll so klein wie möglich ausfallen.
Mit Hilfe des Kickstarters nimmt einem das Framework die langweilige Schreibarbeit beim Anlegen von Model, Controller und Templates ab.
Außerdem kommen viele moderne Design Patterns wie Dependency Injection, Domain Driven Design oder Aspekt Orientierte Programmierung zum Einsatz. Mit Doctrine wurde zudem auf ein solides ORM gesetzt.

Klingt im ersten Moment alles super, aber man merkt, dass FLOW3 noch sehr jung ist. Einfache Dinge wie Datensätze anlegen, bearbeiten, löschen sind erschreckend schnell gemacht (dank Kickstarter), aber sobald man etwas spezielleres braucht, ist es schwierig an Beispiele und Informationen zu kommen. In der Dokumentation fehlen viele Bereiche oder sind noch nicht optimal beschrieben. Daneben gibt es als Informationsquelle nur noch eine Mailinglist und vereinzelte Blog-Artikel, die zum Teil aber nicht mehr mit der neusten FLOW3-Version kompatibel sind.
Ein weiterer Nachteil ist aus meiner Sicht die Geschwindigkeit. Der erste Aufruf ist besonders langsam, weil der Cache erstmal aufgebaut werden muss – das lässt sich aber noch verkraften. Aber auch alle anschließenden Aufrufe sind für meinen Geschmack noch zu langsam. Hier wurde allerdings schon Besserung versprochen. Die Entwickler wollen sich erst um Funktionalität und dann um Geschwindigkeit kümmern.

Alles in allem hat FLOW3 großes Potenzial und eine sehr gute Basis, aber im aktuellen Status würde ich es noch nicht für Geschäftskritische Anwendungen empfehlen. Ich bin aber guter Dinge, dass sich in den nächsten Monaten viele der zuvor genannten Baustellen verkleinern werden.

SASS unter PhpStorm kompilieren

SASS (Syntactically Awesome Stylesheets) bzw. SCSS ist eine Art Scriptsprache für normales CSS. Es ermöglich es CSS sauberer, übersichtlicher und einfacher zu gestalten. Und so funktioniert’s: Zuerst benötigt ihr Ruby und den eigentlichen Compiler für SASS. Der Compiler ist in Ruby geschrieben und damit plattformunabhängig. Dann könnt ihr loslegen und euren CSS-Code mit den neuen Features umsetzten, speichert die Datei aber mit der Endung .scss ab. Anschließend wird der Compiler aufgerufen, der aus dem SASS-Code in normales und ggf. auch komprimiertes CSS umwandelt. Der Aufruf des Compilers passiert über den folgenden Konsolenbefehl:

sass --watch "/Pfad/zur/SASS/Datei.scss":"/Zielpfad/zur/CSS/Datei.css" --style compressed

Mit der Option –watch wird die CSS-Datei jedesmal aktualisiert, sobald die SCSS-Datei geändert wurde. Ein weiterer Aufruf ist also nicht notwendig. Trotzdem wäre es nett, wenn der Aufruf über durch einen Klick abgelöst werden könnte. Mit PhpStorm lässt sich das nach ein wenig Konfigurationsarbeit ganz einfach erledigen.

Als erstes müssen die Einstellungen (Settings bzw. Preferences unter Mac) von PhpStorm geöffnet werden. Anschließend auf den Bereich External Tools und ein neues Tool über den Add-Button anlegen.

Die Felder können wie folgt ausgefüllt werden.

Name: Compile SASS
Group: Language processors
Program (Linux/Mac): sass
Program (Windows): C:\path_to_ruby\bin\sass.bat
Parameters: –watch „$FilePath$“:“$FileDir$/../$FileNameWithoutExtension$.css“ –style compressed
Working directory: $ProjectFileDir$

Die Checkboxen für Open console und Synchronize files after execution könnt ihr nach eigenem Ermessen deaktivieren.

Jetzt bauen wir uns eine Verzeichnisstruktur, die so ähnlich aussieht:
/css/src/style.scss
/css/style.css
In den Ordner src kommen somit die SCSS-Dateien rein und in den übergeordneten Ordner werden die CSS-Dateien automatisch reingeschrieben.
Mit einem Rechtsklick auf die Datei und dann unter Language processors > Compile SASS wird dann der oben genannte Befehl ausgeführt.