A long time ago, we introduced the "Symfony platform", a set of cohesive but decoupled classes that of course powers the Symfony MVC framework. The most interesting fact about the Symfony platform is that you can use any of its libraries by itself in a non-Symfony project.

It means for instance that you can use the YAML or the routing classes without the rest of the MVC framework. But until now, I have not seen many people actually taking advantage of those classes as standalone libraries. I mention these two libraries specifically because they have a lot of potential. As a matter of fact, Pookey wrote an interesting post on using the routing classes in a standalone project last week, and the YAML classes are actually used by two other major PHP projects: Doctrine and PHPUnit.

As we think some of the Symfony libraries deserve more visibility than they have today, we have decided to go one step further and publish some of them as standalone components, under the Symfony Components name.

The Symfony Components won't start duplicating the work done by the Zend Framework or the ezComponents teams. Everybody knows that the Symfony core team don't like to reinvent the wheel. As such, we will only publish components that we need for the Symfony MVC framework and for which there is not yet an alternative and viable option.

The Symfony Components are hosted on the main Symfony Subversion repository: http://svn.symfony-project.com/components/.

The first component to be released is the YAML library. sfYAML is the only pure PHP library that can parse and dump YAML files reliably. It does not implement the whole YAML 1.1 specifications but it supports most of the features you need to manage configuration files, and some more.

The next component to be released later this week is a "Dependency Injection Container", which will power Symfony 2. I have started writing about Dependency Injection on my personal blog last week. It is good read if you want to learn more about dependency injection in general, or about the Symfony 2 container in particular.

In the coming weeks, more components will be released, starting with the new templating framework that will power Symfony 2, and the Symfony 2 core kernel (aka the sfRequestHandler class). That will be a great opportunity to have a sneak peek at the future of Symfony.

Stay tuned!