Commit | Line | Data |
7e2ec16e |
1 | =head1 Upgrading to Catalyst 5.80 |
2 | |
3 | Work in progress |
4 | |
5 | =head1 Known backwards compatibility breakages. |
6 | |
7 | =head2 Catalyst::Plugin::Authentication |
8 | |
9 | You need at least version FIXME of Catalyst::Plugin::Authentication. |
10 | |
11 | =head2 Moose applications |
12 | |
13 | Applications made by early adopters, which say: |
14 | |
15 | extends qw/Moose::Object Catalyst::Component/ |
16 | |
17 | need the C<Moose::Object> removing to run with Catalyst 5.80, otherwise |
18 | your Class' @ISA will not linearise with C3. |
19 | |
20 | rafl to fix this bit :) |
21 | |
04a48104 |
22 | =head2 Anonymous closures installed directly into the symbol table |
23 | |
24 | If you have any code which installs anonymous subroutine references directly |
25 | into the symbol table, you may encounter breakages. The simplest solution is |
26 | to use L<Sub::Name> to name the subroutine. Example: |
27 | |
28 | #Originalcode, likely to break: |
29 | my $full_method_name = join('::',$package_name, $method_name); |
30 | *$full_method_name = sub { ... }; |
31 | |
32 | #Fixed Code |
33 | use Sub::Name 'subname'; |
34 | my $full_method_name = join('::',$package_name, $method_name); |
35 | *$full_method_name = subname $full_method_name, sub { ... }; |
36 | |
37 | Additionally, you can take advantage of Catalyst's use of L<Class::MOP> and |
38 | install the closure using the appropriate metaclass. Example: |
39 | |
40 | use Class::MOP; |
41 | my $metaclass = Moose::Meta::Class->initialize($package_name); |
42 | $metaclass->add_method($method_name => sub { ... }); |
43 | |
7e2ec16e |
44 | =head2 Components without new methods |
45 | |
46 | FIXME |
47 | |
48 | =head2 Components without COMPONENT methods |
49 | |
50 | FIXME |
51 | |
52 | =head2 __PACKAGE__->mk_accessor('meta'); |
53 | |
54 | Won't work due to a limitation of L<MooseX::Emulate::Class::Accessor::Fast> |
55 | |
56 | FIXME |
57 | |
58 | =head2 Class::Data::Inheritable side effects |
59 | |
60 | FIXME |
61 | |
62 | =head2 Extending Catalyst::Request or other classes in an ad-hoc manor using mk_accessor |
63 | |
64 | FIXME |
65 | |
66 | =head2 require $class was successful but the package is not defined. |
67 | |
68 | FIXME Warning |
69 | |
8be895a7 |
70 | =head2 $c->plugin method |
71 | |
72 | Deprecated |
73 | |
7e2ec16e |
74 | =head2 Components which inherit Catalyst::Component's COMPONENT method, who's new method does not return a true value. |
75 | |
76 | Previously if your new method returned a false value, then your class' configuration would be blessed into a hash on your behalf, |
77 | and this would be returned from the COMPONENT method. This is no longer supported. You are not recommended to implement your own new method |
78 | in components, instead, you should inherit the new method from Catalyst::Component, and use Moose's BUILD functionality |
79 | to perform any construction work necessary for your sub-class. |
80 | |
81 | |
82 | =head Methods in Catalyst::Dispatcher |
83 | |
84 | Class $class is calling the deprecated method Catalyst::Dispatcher::$public_method_name,\n" |
85 | . "this will be removed in Catalyst 5.9X" |
86 | |
87 | FIXME |
88 | |
89 | =head2 Confused multiple inheritence with Catalyst::Component::COMPONENT |
90 | |
91 | Warning message: |
92 | |
93 | There is a COMPONENT method resolving after Catalyst::Component |
94 | in ${next_package}. |
95 | |
96 | This means that one of the packages on the right hand side of |
97 | Catalyst::Component in your Class' inheritance hierarchy defines |
98 | a COMPONENT method. |
99 | |
100 | Previously, Catalyst's COMPONENT method would delegate to the |
101 | method on the right hand side, which could then delegate back again |
102 | with NEXT. This (as it is insane), is no longer supported, as it |
103 | makes no sense with C3 method dispatch order. |
104 | |
105 | Therefore the correct fix is to re-arrange your class' inheritance |
106 | hierarchy so that the COMPONENT method you would like to inherit is |
107 | the first COMPONENT method in your @ISA. |
108 | |
109 | |
110 | =cut |