Commit | Line | Data |
8c57b129 |
1 | =head1 NAME |
6c18e892 |
2 | |
8c57b129 |
3 | Catalyst::Delta - Overview of changes between versions of Catalyst |
4 | |
5 | =head1 DESCRIPTION |
6 | |
1fae8c61 |
7 | This is an overview of the user-visible changes to Catalyst in version 5.9. |
b31499bc |
8 | |
1fae8c61 |
9 | =head2 |
10 | |
11 | =head1 PREVIOUS VERSIONS |
12 | |
13 | =head2 Catalyst 5.8 |
14 | |
15 | =head3 Deprecations |
b31499bc |
16 | |
e88235ff |
17 | Please see L<Catalyst::Upgrading> for a full description of how changes in the |
18 | framework may affect your application. |
19 | |
20 | Below is a brief list of features which have been deprecated in this release: |
21 | |
796a8358 |
22 | =over |
b31499bc |
23 | |
796a8358 |
24 | =item ::[MVC]:: style naming scheme has been deprecated and will warn |
b31499bc |
25 | |
e88235ff |
26 | =item NEXT is deprecated for all applications and components, use MRO::Compat |
b31499bc |
27 | |
e88235ff |
28 | =item Dispatcher methods which are an implementation detail made private, public versions now warn. |
b31499bc |
29 | |
e88235ff |
30 | =item MyApp->plugin method is deprecated, use L<Catalyst::Model::Adaptor> instead. |
796a8358 |
31 | |
0a3b8de0 |
32 | =item __PACKAGE__->mk_accessors() is supported for backward compatibility only, use Moose attributes instead in new code. |
33 | |
7df44a71 |
34 | =item Use of Catalyst::Base now warns |
35 | |
796a8358 |
36 | =back |
37 | |
1fae8c61 |
38 | =head3 New features |
0a3b8de0 |
39 | |
40 | =head3 Dispatcher |
b31499bc |
41 | |
7df44a71 |
42 | =over |
43 | |
44 | =item Fix forwarding to Catalyst::Action objects. |
45 | |
46 | =item Add the dispatch_type method |
47 | |
48 | =back |
b31499bc |
49 | |
0a3b8de0 |
50 | =head3 Restarter |
b31499bc |
51 | |
6171ddd5 |
52 | The development server restarter has been improved to be compatible with |
53 | immutable Moose classes, and also to optionally use |
54 | L<B::Hooks::OP::Check::StashChange> to handle more complex application layouts |
55 | correctly. |
b31499bc |
56 | |
7df44a71 |
57 | =head3 $c->uri_for_action method. |
b31499bc |
58 | |
7df44a71 |
59 | Give a private path to the Catalyst action you want to create a URI for. |
6c18e892 |
60 | |
0a3b8de0 |
61 | =head3 Logging |
b31499bc |
62 | |
7df44a71 |
63 | Log levels have been made additive. |
b31499bc |
64 | |
0a3b8de0 |
65 | =head3 L<Catalyst::Test> |
66 | |
67 | =over |
68 | |
69 | =item Change to use L<Sub::Exporter>. |
70 | |
0a3b8de0 |
71 | =item Support mocking multiple virtual hosts |
72 | |
73 | =item New methods like action_ok and action_redirect to write more compact tests |
74 | |
75 | =back |
76 | |
7df44a71 |
77 | =head3 Catalyst::Response |
0a3b8de0 |
78 | |
7df44a71 |
79 | =over |
80 | |
81 | =item * |
82 | |
83 | New print method which prints @data to the output stream, separated by $,. |
84 | This lets you pass the response object to functions that want to write to an |
85 | L<IO::Handle>. |
86 | |
87 | =item * |
88 | |
89 | Added code method as an alias for C<< $res->status >> |
0a3b8de0 |
90 | |
d5a6de01 |
91 | =back |
92 | |
1fae8c61 |
93 | =head3 Consequences of the Moose back end |
b31499bc |
94 | |
796a8358 |
95 | =over |
96 | |
97 | =item * |
98 | |
7df44a71 |
99 | Components are fully compatible with Moose, and all Moose features, such as |
100 | method modifiers, attributes, roles, BUILD and BUILDARGS methods are fully |
101 | supported and may be used in components and applications. |
102 | |
103 | =item * |
104 | |
105 | Many reusable extensions which would previously have been plugins or base |
106 | classes are better implemented as Moose roles. |
107 | |
108 | =item * |
109 | |
110 | L<MooseX::MethodAttributes::Inheritable> is used to contain action |
111 | attributes. This means that attributes are represented in the MOP, and |
112 | decouples action creation from attributes. |
796a8358 |
113 | |
114 | =item * |
115 | |
0a3b8de0 |
116 | There is a reasonable API in Catalyst::Controller for working with |
796a8358 |
117 | and registering actions, allowing a controller sub-class to replace |
25f61108 |
118 | subroutine attributes for action declarations with an alternate |
0a3b8de0 |
119 | syntax. |
796a8358 |
120 | |
121 | =item * |
122 | |
0a3b8de0 |
123 | Refactored capturing of $app from L<Catalyst::Controller> into |
124 | L<Catalyst::Component::ApplicationAttribute> for easier reuse in other |
7df44a71 |
125 | components. |
126 | |
127 | =item * |
128 | |
129 | Your application class is forced to become immutable at the end of compilation. |
130 | |
131 | =back |
132 | |
1fae8c61 |
133 | =head3 Bug fixes |
7df44a71 |
134 | |
135 | =over |
136 | |
137 | =item * |
138 | |
25f61108 |
139 | Don't ignore SIGCHLD while handling requests with the development server, so that |
7df44a71 |
140 | system() and other ways of creating child processes work as expected. |
141 | |
142 | =item * |
143 | |
144 | Fixes for FastCGI when used with IIS 6.0 |
145 | |
146 | =item * |
147 | |
148 | Fix a bug in uri_for which could cause it to generate paths with multiple |
149 | slashes in them. |
796a8358 |
150 | |
151 | =item * |
152 | |
7df44a71 |
153 | Fix a bug in Catalyst::Stats, stopping garbage being inserted into |
154 | the stats if a user calls begin => but no end |
796a8358 |
155 | |
156 | =back |
157 | |