If you monitor Metacpan Recent as closely as I do, you'll have noted the forth development version of Perl Catalyst landed this Friday past. I'm happy to announce after a weekend of letting CPAN testers have a go at it, its passing tests, so please download it, poke / prod etc and let me your you problems, complaints, code thoughts.
Here's what in Dev 4:
- Catalyst now sets various PSGI env variables, such as 'plack.request.body' so that it can play nicer with any PSGI applications you may be mounting under a Catalyst action
- When we read psgi.input if we don't find a buffer we build one. This should make behavior more consistent if you are using a server that buffers (like Starman) in development, but something else in production (like FastCGI). It should also be more polite to PSGI applications mounted under Catalyst.
- Catalyst::Response has a new method '->from_psgi_response' that makes it easy to set an action response from a PSGI application.
- New configuration option 'use_hash_multivalue_in_request' that uses Hash::MultiValue to populate Catalyst::Request->*_parameters instead of a plain old hashref. This reduces the need for defensive code on incoming parameters to check if a value is a scalar or an arrayref.
- Experimental support for Net::Async::HTTP::Server and IO::Async based event loops
As you can see, we've tried to take PSGI support more seriously in Catalyst, and to expose Catalyst's native PSGI underpinnings. It should be a lot easier now to mount PSGI application under Catalyst actions for the cases when you are using Catalyst for its dispatcher and dependency management.
Please give this latest development release a good shakedown on your code. There's probably one more development release before we take this to stable, so now is the time to review and complain about anything you don't like!