eZ Publish 5 Templating – Teil 1: Basics

Das eZ Publish Content Management System hat sich mit dem Umbau auf Basis des Symfony2 Frameworks stark verändert. Eine der wesentlichsten Änderungen liegt im Templating für das Frontend. Bauten die pre-Symfony-Versionen bis 4 auf einen Mix aus Smarty mit PHP-Code, lassen sich eZ Publish 5 Templates in der Symfony2-eigenen Templatesprache Twig entwickeln. Weiterlesen

Oracle LOB in Symfony2 und Doctrine2 mittels OCI8-Extension: Die Stolpersteine erkennen

Oracle LOB in Symfony2 mit OCI-Lob Klasse nutzbar zu machen, ist nicht ganz einfach. Unter anderem die Unterstützung von Large Objects (LOB) hat in Doctrine2 einige Fallstricke, z.B. das Cachen von Queries, welches nicht ganz so optimal mit php_streams umgehen kann.

Hier will ich aber auf die Probleme bei der Benutzung des Oracle OCI8 Drivers von Doctrine2 in Bezug auf LOBs eingehen. Weiterlesen

Enslaving eZ Publish

Web applications of all sizes rarely come without the need for editable text content. Implementing a complete content editing solution might yet be still oversized. So why not make use of one of the better known content management solutions available to the open source community – eZ Publish?

As a full blown content management system, eZ Publish does not only supply a quite powerful content repository, but also an ideally tailored content editor that supports all relevant features such as content versioning, publishing workflow or roles and permissions management.
Weiterlesen

DomniklStatsdBundle: Monitoring mit statsd in Symfony2-Projekten

Während mit klassischen Monitoringlösungen wie Nagios Systemdaten überwacht werden können, eignet sich die Kombination aus statsd und Graphite hervorragend für effektives Monitoring von Businessprozessen in Webanwendungen. Auch für Symfony2-Projekte wäre so eine Lösung praktisch – eine Variante stellt der Artikel vor. Weiterlesen

Development Environments with Vagrant and Puppet

Motivation

Setting up the infrastructure for new projects can be quite a pain in the ***. Even after the initial setup is done, adding new developers to the team requires a lot of time. Besides explaining the project to the new team member, the project’s development environment has to be installed on the new developer’s computer. This includes setting up virtual machines, web- and database-servers, updating libraries etc.

Many IT companies use the same technologies repeatedly which leaves them with multiple development environments that look very similar but have been set up separately. This problem can be solved by using a configuration management software and a smart tool for handling virtual machines.

Weiterlesen

ACLs and Symfony2

Like most larger PHP frameworks, Symfony2 contains a component that handles all kinds of security topics. Its main two capabilities are authentication and authorization. While making it easy to implement these concepts, the component separates them and executes one after the other. In the first step, the framework determines who the current user is or whether he is who he claims to be respectively (Authentication). Secondly, it evaluates whether he is allowed to perform a certain operation (Authorization).

This article focuses on authorization or – more accurately – Symfony2’s Access Control Lists (ACLs) and how they support the implementation of complex access right models.
Weiterlesen

Ein erster Eindruck von Zend Framework 2

Vor ein paar Tagen ist Zend Framework 2 in einer stabilen Version freigegeben worden. Somit steht das Ergebnis einer langen Entwicklungszeit endlich zur Verfügung. Grund genug für einen ersten Blick auf das neue Framework.

Ich habe die Entwicklung nur sporadisch verfolgt und keine der zahlreichen Vorab-Versionen ausprobiert. Ohne Vorwissen habe ich mich so an den neuen Quickstart-Guide und das neue Handbuch gesetzt um mir einen ersten Überblick zu verschaffen. Meine ersten Eindrücke möchte ich hier teilen.

Weiterlesen

Content-Type Negotiation mit Symfony2

Die Mächtigkeit und Einfachheit des HTTP wird in vielerlei Hinsicht oft unterschätzt. Der folgende Artikel stellt einen Aspekt vor, bei dem genau dies der Fall ist: Die Aushandlung des Formats, in welchem Daten per HTTP transportiert werden. Leider wird in den allermeisten HTTP-Applikationen über das Format der Antwort nicht verhandelt. Es werden beispielsweise GET-Requests kategorisch mit HTML beantwortet, ob ein Newsfeed als Atom oder RSS geliefert wird, entscheidet ein URL-Parameter. Auch ist das Kriterium dafür, mit JSON oder XML zu antworten, nicht zu selten, ob auf die Ressource via XMLHTTPRequest zugegriffen wird. Hierbei halten sich selbst moderne HTTP-Applikationen kaum an den Standard.

Das Problem

Unser Anwendungsbeispiel ist eine Applikation, in der alle Daten sowohl in Form von HTML-Dokumenten als auch in JSON ausgeliefert werden können. Genau für solche Zwecke sieht das HTTP den Request-Header Accept vor. Ein HTTP-Client kann diesen nutzen, um dem Server mitzuteilen, welches Format er gerne in der Antwort vorfinden würde. Dabei kann er nicht nur ein einzelnes Format angeben, sondern auch mehrere und diese sogar priorisieren.

Weiterlesen