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