Following along the same line as some of his recent dependency injection articles, Fabien Potencier has posted two new articles dealing with a related feature of the Symfony 2 engine - the Symfony Service Container.
Until now in this series on Dependency Injection, we have talked about general concepts. The first two introductory articles were important to better understand the implementation we will talk about in this article and in the following ones. It is now time to dive into the Symfony 2 service container implementation. The Dependency Injection Container in Symfony is managed by a class named sfServiceContainer. It is a very lightweight class that implements the basic features we talked about in the last article.
In the first of the two posts he introduces the Container including some example code showing how you can integrate a Zend Framework component (Zend_Mail_Transport_Smtp) inside your Symfony application.
The second article builds on this and shows how to create a services interface with a sfServiceContainerBuilder object. The service takes in various options and injects them into the already-created Container for handling. In this instance, they pass in the mailing information which is passed off to the Container with the Zend_Mail_Transport_Smtp instance inside.