In this new post to his site Cal Evans goes through a simple application he's created using the Symfony Command component and some of his gotchas along the way. He shows how, using a trait, he was able to control the output of the command more effectively.
Recently I came up with a project I needed to build. Honestly, it’s one of those “not useful to anyone but me” kind of projects. I decided though that while I was at it, I wanted to learn something new. Since I’ve been a die-hard Zend guy since Zend Framework was 0.2, and more recently a Silex believer, I thought I would drop down a level form Silex and dig into symfony itself. This project is strictly a command line project. No API, no web interface, just a command and a few switches. Digging around I found SymfonyComponentConsoleCommandCommand so I decided to give it a try.
He goes through some of the work he did to pull in the needed packages and create his first command. He creates a "writeln" method to output to the console that contains his check for the verbosity level of the current command options (like "quiet" or "verbose"). He introduces the trait to add some additional handling to this output, making it easier to just drop in the "writeln" functionality in any command of his choosing.