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:

parameters:
    symfony_cmf_multilang_content.lang_preference:
        en: [en, de]
        de: [de, en]

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

<parameters>
    <parameter key="symfony_cmf_multilang_content.lang_preference" type="collection">
        <parameter key="en" type="collection">
            <parameter>en</parameter>

International PHP Conference 2011: PHP Content Repository Specification

Conference: International PHP Conference / WebTech Con 2011
Title: PHP Content Repository Specification (joint talk with Lukas K. Smith)
Links: Slides, joind.in

The PHPCR specification defines an API that combines the power of NoSQL databases with hierarchical data structures and versioning, powerful search and other features. Content repositories, like Midgard2 or Jackrabbit, can implement the API to provide generic access to their content. Using PHPCR, applications can focus on the application logic and use the API to quickly implement CMS functionality.

Symfony2 controller as a service and the service_container

NOTE from 1.5 years later: This is not best practice. If you want a testable controller or write a reusable bundle, you should take the effort to inject the services you actually need, instead of extending the symfony base controller. For rapid development however, i would still recommend this as the base controller methods are very convenient.

I often want to have my controllers be a service so you can inject some information. But at the same time i like to extend the base controller Symfony\Bundle\FrameworkBundle\Controller\Controller to have the convenience methods like $this->render. Now if you just create a service from your controller, you won't be able to use the methods anymore. You will get exceptions about calling get() on a non-object.

Arduino and WS2801 RGB LED strip

Recently, i ordered a sample of a ws2801 based RGB LED strip from China. After todays successful playing around with it, I plan to order a bigger quantity beginning of next week.

A frontend editor for Symfony2 CMF with the help of VIE

I repost some of my blog posts made @ liip. Please see here for the original post and comments: http://blog.liip.ch/archive/2011/09/27/a-frontend-editor-for-symfony2-cm...

Yesterday we started working on an editor for the Symfony2 Content Management Editor, the LiipVieBundle. We use VIE and - until something non-GPL comes along - the Aloha editor. VIE is a piece of javascript on top of backbone.js that handles storing data with a REST backend. In Symfony2, this is a breeze thanks to the FOSRestBundle. Sounds complicated? Its actually quite simple, at least for the user. I made a short video to show how it looks.

Jackalope progress

I repost some of my blog posts made @ liip. Please see here for the original post and comments: http://blog.liip.ch/archive/2011/08/24/jackalope-progress.html

At Liip, employees can propose open source projects they want Liip to support. Together with Daniel Barsotti, I did this for the PHP Content Repository implementation Jackalope and Liip was so nice as to grant us a couple of man-weeks to implement stuff for Jackalope. Now that we used up the allocated budget, its time for a progress report what Jackalope can now do.

Symfony CMF Camp Italy wrap-up

I repost some of my blog posts made @ liip. Please see here for the original post and comments: http://blog.liip.ch/archive/2011/08/04/symfony-cmf-camp-italy-wrap-up.html

Last week, Lukas and me went to Italy to join the CMF Camp. Thanks a lot Ideato for hosting and organizing the event! Apart from meeting friendly people from Italy and Germany, eating lots of pizza and other great italian food, we discussed the Symfony content management framework and did a lot of coding on the second day.

PHP content repository API tutorial

I repost some of my blog posts made @ liip. Please see here for the original post and comments: http://blog.liip.ch/archive/2011/07/30/php-content-repository-api-tutori...

Our PHP content repository (PHPCR) implementation "Jackalope" is steadily improving. Besides the Jackrabbit backend, there is now also a driver for SQL databases (powered by Doctrine DB abstraction layer) and first work at a MongoDB driver and one for Midgard 1. Midgard 2 will get its own PHPCR implementation not based on Jackalope, and Typo 3 may choose to come back to PHPCR as well. Now is about time to show how to use that API.

phpdoc compilers and the @inheritDoc

I repost some of my blog posts made @ liip. Please see here for the original post and comments: http://blog.liip.ch/archive/2011/07/26/phpdoc-compilers-and-inheritdoc.html

In the PHP content repository, we have a set of interfaces and implementation classes of those interfaces. The interfaces define the standard and are extensively documented.

Liip presentation: Varnish - A caching reverse proxy

Venue: Liip AG
Title: Varnish - A caching reverse proxy (joint talk with Stefan Paschke)
Links: Slides

Introducing the varnish caching proxy and explaining how to interact with it from Symfony, including efficient authorization handling (paywall).

Syndicate content