X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FUpgrading.pod;h=75a74f76adb01eb953baef17d4e27317f3d52954;hb=cbe627b901f8e459035a76d423229694e1fefbff;hp=79a90ecd40bb0e102281f52742b6c37dd686c49d;hpb=7a5049902b30035b0d5bbdc77b1600bc945590cf;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Upgrading.pod b/lib/Catalyst/Upgrading.pod index 79a90ec..75a74f7 100644 --- a/lib/Catalyst/Upgrading.pod +++ b/lib/Catalyst/Upgrading.pod @@ -2,6 +2,53 @@ Catalyst::Upgrading - Instructions for upgrading to the latest Catalyst +=head1 Upgrading to Catalyst 5.90090 + +L has a new method 'inject_component' which works the same as the method of +the same name in L. You should start converting any +use of the non core method in your code as future changes to Catalyst will be +sychronized to the core method first. We reserve the right to cease support +of the non core version should we reach a point in time where it cannot be +properly supported as an external module. Luckily this should be a trivial +search and replace. Change all occurances of: + + CatalystX::InjectComponent->inject(...) + +Into + + Catalyst::Utils::inject_component(...) + +and we expect everything to work the same (we'd consider it not working the same +to be a bug, and please report it.) + +We also cored features from L to compose a role into the +request, response and stats classes. The main difference is that with L +you did: + + package MyApp; + + use Catalyst; + use CatalystX::RoleApplicator; + + __PACKAGE__->apply_request_class_roles( + qw/My::Request::Role Other::Request::Role/); + +Whereas now we have three class attributes, 'request_class_traits', 'response_class_traits' +and 'stats_class_traits', so you use like this (note this value is an ArrayRef) + + + package MyApp; + + use Catalyst; + + __PACKAGE__->request_class_traits([qw/ + My::Request::Role + Other::Request::Role/]); + +(And the same for response_class_traits and stats_class_traits. We left off the +traits for Engine, since that class does a lot less nowadays, and dispatcher. If you +used those and can share a use case, we'd be likely to support them. + =head1 Upgrading to Catalyst 5.90085 In this version of Catalyst we made a small change to Chained Dispatching so @@ -66,6 +113,40 @@ If this causes you trouble and you can't fix your code to conform, you may set t application configuration setting "use_chained_args_0_special_case" to true and that will revert you code to the previous behavior. +=head2 More backwards compatibility options with UTF-8 changes + +In order to give better backwards compatiblity with the 5.90080+ UTF-8 changes +we've added several configuration options around control of how we try to decode +your URL keywords / query parameters. + +C + +If true, then do not try to character decode any wide characters in your +request URL query or keywords. Most readings of the relevent specifications +suggest these should be UTF-* encoded, which is the default that L +will use, hwoever if you are creating a lot of URLs manually or have external +evil clients, this might cause you trouble. If you find the changes introduced +in Catalyst version 5.90080+ break some of your query code, you may disable +the UTF-8 decoding globally using this configuration. + +This setting takes precedence over C and +C + +C + +By default we decode query and keywords in your request URL using UTF-8, which +is our reading of the relevent specifications. This setting allows one to +specify a fixed value for how to decode your query. You might need this if +you are doing a lot of custom encoding of your URLs and not using UTF-8. + +This setting take precedence over C. + +C + +Setting this to true will default your query decoding to whatever your +general global encoding is (the default is UTF-8). + + =head1 Upgrading to Catalyst 5.90080 UTF8 encoding is now default. For temporary backwards compatibility, if this