X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FUpgrading.pod;h=58f827f88509b9020a9c408e58e47be297697e6b;hb=04189a0f6c54fc880f1688dc28785016671f5d34;hp=5cf2396868c954647d31da63954690cfe07f960b;hpb=63b546b18317765a6c523e618f5f9439abeb13e0;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Upgrading.pod b/lib/Catalyst/Upgrading.pod index 5cf2396..58f827f 100644 --- a/lib/Catalyst/Upgrading.pod +++ b/lib/Catalyst/Upgrading.pod @@ -32,7 +32,8 @@ L in your applications. =head2 Controller actions in Moose roles -Declaring actions in Roles is currently unsupported. +You can use L if you want to declare actions +inside Moose roles. =head2 Using Moose in Components @@ -84,7 +85,7 @@ you identify the ones in conflict, and resolve them. To be able to generate a linear @ISA, the list of superclasses for each class must be resolvable using the C3 algorithm. Unfortunately, when superclasses are being used as mixins (to add functionality used in your class), -and with multiple inheritence, it is easy to get this wrong. +and with multiple inheritance, it is easy to get this wrong. Most common is the case of: @@ -216,7 +217,7 @@ been called, and will not call them again. Using this now causes infinite recursion between MyApp::setup and Catalyst::setup, due to other backwards compatibility issues related to how -plugin setup works. Moose method modifiers like C<< before|after|around 'setup +plugin setup works. Moose method modifiers like C<< before|after|around setup => sub { ... }; >> also will not operate correctly on the setup method. The right way to do it is this: @@ -309,7 +310,37 @@ COMPONENT method in your @ISA. Having actions in your application class will now emit a warning at application startup as this is deprecated. It is highly recommended that these actions are moved into a MyApp::Controller::Root (as demonstrated by the scaffold application -generated by catalyst.pl) +generated by catalyst.pl). + +This warning, also affects tests. You should move actions in your test, +creating a myTest::Controller::Root, like the following example: + + package MyTest::Controller::Root; + + use strict; + use warnings; + + use parent 'Catalyst::Controller'; + + __PACKAGE__->config(namespace => ''); + + sub action : Local { + my ( $self, $c ) = @_; + $c->do_something; + } + + 1; + +=head2 ::[MVC]:: naming scheme + +Having packages called MyApp::[MVC]::XX is deprecated and can no longer be generated +by catalyst.pl + +This is still supported, but it is recommended that you rename your application +components to Model/View/Controller. + +A warning will be issued at application startup if the ::[MVC]:: naming scheme is +in use. =head2 Catalyst::Base @@ -370,7 +401,7 @@ to B of the packages defined within that component. Calling the plugin method is deprecated, and calling it at run time is B. -Instead you are recommended to use L< Catalyst::Model::Adaptor > or similar to +Instead you are recommended to use L or similar to compose the functionality you need outside of the main application name space. Calling the plugin method will not be supported past Catalyst 5.81.