warning: Creating default object from empty value in /var/drupal/modules/taxonomy/ on line 33.

PHP Benelux: Symfony Content Management Framework

Conference: PHP Benelux, 25-26.1.2013
Title: Symfony Content Management Framework
Links: Slides,

In this talk i will present the Content Management Framework (CMF). It is a set of building blocks you can use to build content management in any Symfony2 project: Content repository with translation and versioning, database routing, menu system and building the page.

PHP Tour Nantes: Symfony Content Management Framework

Conference: PHP Tour Nantes, 29-30.11.2012
Title: Symfony Content Management Framework
Links: Slides,

Je vais présenter le Content Management Framework (CMF). C'est une collection des composants afin de faire la gestion de contenu dans les projéts symfony: Doctrine content repository avec traduction et versions, routing avec des données de la bd, système menu et construction des pages. Une idée général de Symfony va vous aider à mieux comprendre cette conférence.

Semantic web meets frontend-awesomeness

I repost some of my blog posts made @ liip. Please see here for the original post and comments:

Frontend editing is a hot topic at the moment. With the HTML5 content-editable, there is no longer any excuse to reload a page in edit mode and render forms on server side. And even less to use the iframe mess of traditional WYSIWYG editors. One excellent frontend editing project is create.js. Its main strength is to use RDF annotations in HTML (RDFa) to explain the semantic structure of your content. Then you load create.js and tell it what editors to use for your entities. Storage happens based on backbone.js, the server backend is easy to implement.

Webmardi Fribourg: Introduction to Symfony2

Conference: Webmardi Fribourg, 3.7.2012
Title: Symfony2 - Powerful and flexible web application framework in state of the art PHP
Links: Slides

Symfony2 introduction. Followed by a Liip techtalk a week later aimed at people knowing Symfony2 a bit, focussing on using the various Symfony2 components standalone.

Symfony Live Paris 2012: Agile and Symfony

Conference: Symfony Live Paris 2012
Title: Agile and Symfony
Links: Slides,

In this talk I share our experiences at Liip with agile development in Symfony2. I focus on technical aspects of agility that will be helpful whether you use Scrum, Kanban or some other agile process. Agility is not limited to program code, there are also ways to handle data model changes. I will talk about our take on unit and functional tests with the WebTestCase, about the Doctrine Migrations project and automated deployment.

Additionally, I did a lightning talk about Symfony CMF dynamic routing during this conference.

phpDay Italy 2012: Step By Step: Making a website fly with Assetic, Varnish and ESI

Conference: phpDay Italy 2012
Title: Step By Step: Making a website fly with Assetic, Varnish and ESI
Links: Slides,

Starting with a demo web site that is not optimized, i will demonstrate step by step how the user experience can be improved. Improving the speed the end user experiences in his browser is more than writing efficient code. The goal is to reduce the time between the initial request and the moment the browser actually shows something. I will show how to improve javascript and css loading and how to use the caching proxy Varnish. With Edge Side Includes (ESI) it can even cache partly personalized pages.

PHP talking to Magnolia CMS

I repost some of my blog posts made @ liip. Please see here for the original post and comments:

Since we started working on Jackalope, we always claimed it would also provide an integration point with other enterprise systems. Last week, we set out to proof this idea. Grégory Joseph of the Java based Magnolia CMS came to help us on the Magnolia side of things. Magnolia is using the JCR reference implementation Jackrabbit for storing its content. After an interesting exchange on their design decisions and our ideas, we started to hack.

Doctrine PHPCR-ODM now handles versioning

I repost some of my blog posts made @ liip. Please see here for the original post and comments:

The Doctrine PHPCR-ODM allows you to easily map your PHP objects onto content repository nodes. Since last week, the PHPCR-ODM leverages the versioning support of PHPCR in the ODM layer. This gives your application a very simple way to work with versioned content.

Symfony2: Profiler trying to serialize objects or how to build your own router

The other day, i wanted to write a controller that expects an object as an action parameter, with the help of a custom router. Writing the router was as easy as adding a field to the array i return in the match() method. But then sometimes the controller has to send a redirection response. In production mode, everything works fine.
But in debug mode, i got a - very non-telling - error about serializing:

Notice: serialize(): "controller" returned as member variable from __sleep() but does not exist in
/home/david/liip/symfony-cmf/cmf-sandbox/vendor/symfony/src/Symfony/Component/HttpKernel/DataCollector/DataCollector.php line 30

Symfony2 arrays as parameters in xml dependeny injection

Symfony documentation recommends to use XML for dependency injection configuration. I like the yml format because its simple and intuitive, but the main benefit of XML is the possibility for better validation and editing help.
So today we tried to port some configuration from yaml to xml.
Our yaml file contained an array parameter:

        en: [en, de]
        de: [de, en]

To make this work in XML, you need to nest parameter tags and use the type="collection" attribute.

    <parameter key="symfony_cmf_multilang_content.lang_preference" type="collection">
        <parameter key="en" type="collection">
Syndicate content