In my recent talk on introducing Disco - the DI container with the damn coolest name(tm) - I talk about why I believe that using XML or any other non-code configuration (YAML, JSON, ...) is not a good idea. This stirred some twitter discussion recently which led to this blog post.

Just for the record, for a very long time I was part of the XML camp - just browse my collection of old talks to see for yourself. I praised XML a lot as being the only true DI configuration format.

He then goes through some of the main issues he sees with using something like XML for the dependency container's configuration:

An XML editor won't give you code-completion for PHP classes or methods.

Refactoring won't work properly in an XML configuration file.

An XML editor is not capable of doing proper type checks.

XML is just too verbose.

For each item he provides a brief explanation and an example of XML where it helps to illustrate the point.