Symfony-Zone | Timo Haberkern blogs about symfony

Archive for October 2009

Oct/09

23

Vote for Lime-Support in Netbeans

The Netbeans-IDE already has PHPUnit support. It is possible to run the unit tests from the IDE and get the result shown in a pretty way. I opend a feature request at the netbeans tracker to support Lime too. I think Lime2  support should not be really difficult through the xUnit XML-Resultfile-Support of Lime2. If you like to have the feature in a future version of Netbeans just vote for it under: http://www.netbeans.org/issues/show_bug.cgi?id=175256

:-)

No tags

Oct/09

15

Colorize your Windows Console output

Update: The code-changes are included in symfony by now. If you use 1.3 or higheryou will not need to patch any symfony files.

If you are one of the developers, that is “forced” to use Windows on your development machine, you probably wish yourself a more comfortable console window. The windows one just missing all features I wish me for developing with Symfony. A good copy&paste, no colored output, no tabs… I know that many developers are using cygwin to get arround of such problem, but cygwin and I will never get the best friends…

Today I came across AnsiCon (http://adoxa.110mb.com/ansicon/index.html). This small utility helps the Windows commandline to understand ANSI-Color-Codes and other escape characters. The installation is pretty easy, just copy the ansi.dll and ansicon.exe in a folder of your machine (i.e. c:\ansicon). After that set the PATH-Environment-Variable in the system settings, add the ansicom path there. Afterwards start ansicon with “ansicon.exe -i”. This installs a registry setting. Thats it!

ANSI-Colors and escape characters are now interpreted correctly. But there is a problem for Symfony-Developers: The Symfony classes with Console output doesn’t output ANSI-Colors on Windows :-(

At the moment the only possibility is to change the Symfony Sourcecode. This is a bad thing. You never should change the framework sourcecode. Therefore I opened a ticket in the Symfony-Wiki (http://trac.symfony-project.org/ticket/7359). If you lin to have this function added to symfony just support this in the ticket.

If you like to test the colorization for yourself open the lib/vendor/lime/lime.php and change line421 from

if (DIRECTORY_SEPARATOR == '\\' ||
   !function_exists('posix_isatty') ||
   !@posix_isatty(STDOUT))

to

if (is_null(getenv('ANSICON')) && (DIRECTORY_SEPARATOR == '\\' ||
   !function_exists('posix_isatty') ||
   !@posix_isatty(STDOUT)))

When you call “symfony test:unit” you will get a result like the one in the screenshot:

console.png

The other file that needs to be changed is the  libn/commands/sfAnsiColorFormatter.class.php. There you need to change line 145 to:

return !is_null(getenv('ANSICON')) ||
  ( DIRECTORY_SEPARATOR != '\\' &&
      function_exists('posix_isatty') &&
     @posix_isatty($stream) );

That’s it! Now the symfony tasks (list, help…) will show their results in color :-)

No tags

Theme Design by devolux.nh2.me