Resource Handling im Repository

PHP-Applikationen sind inzwischen stark modularisiert, composer.json ist inzwischen kaum noch aus dem Projektalltag wegzudenken. Doch dadurch entstehen auch neue Probleme. Irgendwie wollen verschiedene Resourcen (CSS, JS, Templates, …) aus externen Libraries in die Applikation eingebunden werden. Im Symfony-Umfeld hilft dabei in Teilen zwar eine saubere Ordnerstruktur und das Assets-Handling, doch nicht alles ist ein Symfony-Bundle. Ende letzten Jahres hat uns dann Bernhard Schussek (@Webmozart) ein Tool vorgestellt, das hier Abhilfe schafft: Puli. Weitere Infos zu Puli finden sich in seinem Blog.
Weiterlesen

»Wer sich allein auf Conversion-Optimierung konzentriert, verschenkt sein Optimierungspotenzial.«

Niemand steht gerne in der Schlange an der Kasse im Supermarkt. Wenn es hier nicht voran geht, wechselt man einfach in den nächsten Laden ums Eck. Gut zu sehen: Eine Conversion-Optimierung allein bringt es noch nicht, auch Optimierungen unter der Haube wirken sich spürbar auf den Umsatz aus. Ganz gleich übrigens, ob Supermarkt oder E-Commerce-Software.

Benjamin Eberlei arbeitet bei Qafoo mit Tideways an einer Lösung für das Profiling von PHP-Applikationen, Björn Schotte berät für Mayflower E-Commerce-Spezialisten für den technischen Einsatz großer Shopsysteme. Beide Seiten ergänzen sich im Grunde prima für eine Performance-Optimierung — wir haben die zwei eingeladen, ihre Erfahrungen in einem passenden Webinar zusammenzustellen und den beiden einleitend ein paar Fragen gestellt. Weiterlesen

Frontend Routing in einem Symfony2 Projekt

Moderne Webapplikationen werden immer häufiger in der Form von Single Page Applications (SPA) umgesetzt. Die Verwaltung der Templates wird dabei im Frontend gehandhabt, das Backend dient als Daten-Schnittstelle. Ich möchte euch in diesem Artikel eine Nginx-Konfiguration für ein Symfony2 Projekt vorstellen, bei der die Auslieferung der Frontend-Resourcen über das öffentliche web-Verzeichnis der Symfony Applikation erfolgt und die Backendschnittstellen hinter einen /api-Prefix gelegt werden. Das Ziel soll dabei sein, dass die für den Endnutzer „sauberen“ URLs im Frontend gehandhabt werden. Also alle URLs die nicht mit /api beginnen, wie z.B. /gewinnspiel sollen im Frontend geroutet und dort das passende Template dafür geladen werden. Weiterlesen

FrOSCon wird 10 – Die Familie kommt zusammen

Am vergangenen Wochenende war es wieder so weit. Die FrOSCon stand an. Auch wenn diese Konferenz immer etwas ganz besonderes ist, war es in diesem Jahr ein noch größeres Highlight im Konferenz-Kalender. Denn die FrOSCon wurde 10. Anlässlich des Jubiläums fanden sich recht namenhafte Größen der Web-Entwicklung ein. Der Hauptanziehungspunkt war für mich auch in diesem Jahr wieder der PHP-Raum. Sebastian Schaum und Kore Nordmann haben ausgezeichnete Arbeit geleistet und einen Schedule zusammen gestellt, der es einem schwer gemacht hat den Raum überhaupt zu verlassen.

Weiterlesen

Run your tests with PHPStorm on your vagrant box

At Mayflower we usually use virtual machines managed with vagrant for our development environments. Though it was surprising to me, that I have hardly ever seen someone taking the time to investigate how to configure PHPStorm properly, so that it plays nice with the virtual machine in use. Thats why I want to show you a sample configuration via the SFTP-Deployment + Remote Interpreter capabilities of PHPStorm, where you won’t even recognize anymore that you are not working on your host system. This configuration is not only valid for a VM managed with vagrant, but with any other as well.

Weiterlesen

Besuch der unKonf 2015 in Mannheim

Am Samstag den 18.04.2015 wurde in Mannheim zum zweiten mal die sogenannte unKonf in den Räumlichkeiten der Kollegen von bitExpert ausgerichtet. Ich war wie auch schon im Vorjahr vor Ort.
Eine unKonf(-erenz) zeichnet sich wie eine Art Barcamp dadurch aus, dass es zuvor keine festen Session gibt. Jeder der Teilnehmer kann in einem Grooming Vorschläge einreichen. Man wird sogar dazu aufgefordert. In diesem Jahr belohnte der dpunkt.verlag jeden Redner mit einem Buchgutschein.
Über 18 Talks in 6 Slots verteilt auf 3 Lokalitäten wurde abgestimmt. Nachdem es im letzten Jahr gewünscht wurde, konnten diese nun in einer eigens für die unKonf entwickelten App (Android, IOS und HTM5) von jedem Teilnehmer eingesehen werden.
Eine Änderung bei den Sessions gab es jedoch. Es wurde eine Keynote eingeführt. Gehalten wurde diese von Stefan Koopmanschap, den man besser unter seinem Twitter Handle @skoop kennt.

Weiterlesen

Performant Handling of Excel Files in PHP

When you look at Excel solutions for PHP, the first thing you find is PHPExcel, digging a little bit further lets you find libXl. The prior is a pure PHP solution, the latter a native library for a couple of operating systems. There is a PHP extension that exposes this library to PHP, so you can do the same things with it that you can do with PHPExcel.

TL;DR: PHPExcel is nice, libXl with php_excel can do the same WAY faster. Use the Diagrams below to convince your customer/boss/CFO to invest in performance.

Weiterlesen

eZ Publish 5 Templating – Teil 3: Ein eigenes Layout

Nachdem Teil eins und zwei dieses Tutorials die Grundlagen gelegt haben, soll es in diesem Teil darum gehen, die speziellen Eigenheiten von eZ Publish, namentlich die ehemals in der ezflow-Extension, neuerdings im Page-FieldType untergebrachten Mittel zur Organisation und Strukturierung einer Seite zu nutzen.

ezflow-to-Page (stage_4)

Die Organisation des Contents auf einer Seite ist im Legacy-Stack von eZ Publish in der Regel über die Extension „ezflow“ realisiert. In der Symfony2-Welt wurden deren Strukturen in den „Page“ FieldType übernommen. Im Wesentlichen handelt es sich dabei um die Gruppierung von ContentObjekten einer Seite in „Zones“, die die Grobgliederung der Seite erlaubt. „Zones“ enthalten ihrerseits „Blocks“, in denen wiederum einzelne ContentObjekte untergebracht werden. In einem „Block“ werden also zum Beispiel Listen aktueller Beiträge oder Ähnliches realisiert. Weiterlesen