Eines unserer derzeitigen Projekte ist ein Webshop. Dieser Shop hat einen Blog, um über Produktneuheiten zu informieren oder Werbeaktionen anzukündigen. Jetzt ist eine Werbeaktion eine Sache für einen Newsletter ganz klar. Einen Tag keine Versandkosten berechnen und schon gehen die Bestellzahlen nach oben.
Das bekannte Online-Magazin netzwelt.de hat einen sehr interessanten Bericht über SilverStripe veröffentlicht. Wie zu erwarten, kommt das System dabei sehr gut weg. Das Fazit des Artikels ist für mich inhaltlich zwar keine Überraschung, mit dieser Deutlichkeit hätte ich jedoch nicht gerechnet:
Wenn ein Mensch Programmcode lieben kann, dann liebe ich YAML. Man kann das CSS-Framework von seiner Wirkung her mit einem Apple Computer vergleichen: Es ist da ohne aufzufallen und nimmt einem Arbeit ab, indem es keine Arbeit macht. Seit wir unsere Webdesigns YAMLn, haben wir nie wieder Zeit auf das Beseitigen von Browserbugs verwendet. Gekostet hat uns das einmalig 120 und für jedes Design dauert die Einbindung des Frameworks ca. 30 Minuten.
Natürlich ist auch die 2.4.1 von SilverStripe nicht frei von Bugs. Wenn ich beim Programmieren bin und plötzlich verhält sich das System komisch, dann suche ich den Fehler erst mal bei mir. Ich habe bei einem Datenbank Build auf einmal folgende Fehlermeldung bekommen:
Natürlich nicht! Wir arbeiten mit Maschinen, deren Zweck es, ist uns Arbeit abzunehmen. Eine dieser Arbeiten ist das Erstellen von Testobjekten für die Entwicklung einer Applikation. Zum einen muss man feststellen, ob die Programmlogik auch das tut, was man selbst oder der Kunde von ihr erwartet. Zum anderen braucht man die Testobjekte natürlich auch für das Design. Wer traut sich schon zu das Aussehen eines Blogs ansprechend zu gestalten, ohne vorher mal ausreichend Testcontent zu pflegen?
Mit dem Schreibvorgang an einem DataObject lässt sich in SilverStripe auf einfache Weise ein Algorithmus verknüpfen. Im Klartext: Jedes mal, wenn ein DataObject gespeichert, verändert oder gelöscht wird, wird ein Block von Anweisungen ausgeführt. Dieser Mechanismus wird als Hook bezeichnet. Dazu gibt es die folgenden Methoden:
Wir hatten in den letzten beiden Wochen ein wenig Probleme mit der Mehrsprachigkeit in neuen SilverStripe Installationen. In der 2.4 hat sich doch so einiges geändert, unter anderem auch die Konfiguration der Mehrsprachigkeit. Wir hätten ja prinzipiell gerne, dass eine Seite in deutscher Sprache auch von den Suchmaschinen als Deutsch erkannt wird. Dies geschieht im Markup im öffnenden html Tag:
Ich bin gerade beim Arbeiten über eine nützliche Funktionalität des Sapphire Frameworks gestolpert, die ich einmal kurz vorstellen möchte. Man kann durch einfache Konfiguration Rückgabewerte von Methoden oder aber Attribute eines Objekts zu einem Objekt casten.
Silverstripe zeichnet sich durch viele durchdachte Module aus. Eines der wichtigsten ist sicherlich das Blog Modul. Für Redakteure, die sich mit dem SilverStripe Backend schwer tun, bietet das Blog Modul eine Frontend Verwaltung.
Der erste Beitrag zum Thema configuration management hat sich mit der Dynamisierung der Konfiguration einer SilverStripe Installation beschäftigt. Als ich mich jetzt selbst noch näher mit dem Thema befasst habe, ist mir klar geworden, dass auch der Datenbankname dynamisiert werden muss. In der Datei conf/ConfigureFromEnv.php bin ich auf die Möglichkeit gestoßen, dem Datenbanknamen Präfixe oder Suffixe zu geben. Der Name lässt sich mit Bordmitteln nicht vollständig dynamisieren, das ist aber bei unserer Namenskonvention für Datenbanken auch nicht notwendig. Für einen Präfix oder Suffix, der an den Datenbanknamen angefügt wird, muss man einfach nur folgende Konstanten in der _ss_environment.php definieren: