9880687cc705a60c94d4119ba4f375e6be72689c
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Delta.pod
1 =head1 NAME
2
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.9.
8
9 =head2
10
11 =head1 PREVIOUS VERSIONS
12
13 =head2 Catalyst 5.8
14
15 =head3 Deprecations
16
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
22 =over
23
24 =item ::[MVC]:: style naming scheme has been deprecated and will warn
25
26 =item NEXT is deprecated for all applications and components, use MRO::Compat
27
28 =item Dispatcher methods which are an implementation detail made private, public versions now warn.
29
30 =item MyApp->plugin method is deprecated, use L<Catalyst::Model::Adaptor> instead.
31
32 =item __PACKAGE__->mk_accessors() is supported for backward compatibility only, use Moose attributes instead in new code.
33
34 =item Use of Catalyst::Base now warns
35
36 =back
37
38 =head3 New features
39
40 =head3 Dispatcher
41
42 =over
43
44 =item Fix forwarding to Catalyst::Action objects.
45
46 =item Add the dispatch_type method
47
48 =back
49
50 =head3 Restarter
51
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.
56
57 =head3 $c->uri_for_action method.
58
59 Give a private path to the Catalyst action you want to create a URI for.
60
61 =head3 Logging
62
63 Log levels have been made additive.
64
65 =head3 L<Catalyst::Test>
66
67 =over
68
69 =item Change to use L<Sub::Exporter>.
70
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
77 =head3 Catalyst::Response
78
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 >>
90
91 =back
92
93 =head3 Consequences of the Moose back end
94
95 =over
96
97 =item *
98
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.
113
114 =item *
115
116 There is a reasonable API in Catalyst::Controller for working with
117 and registering actions, allowing a controller sub-class to replace
118 subroutine attributes for action declarations with an alternate
119 syntax.
120
121 =item *
122
123 Refactored capturing of $app from L<Catalyst::Controller> into
124 L<Catalyst::Component::ApplicationAttribute> for easier reuse in other
125 components.
126
127 =item *
128
129 Your application class is forced to become immutable at the end of compilation.
130
131 =back
132
133 =head3 Bug fixes
134
135 =over
136
137 =item *
138
139 Don't ignore SIGCHLD while handling requests with the development server, so that
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.
150
151 =item *
152
153 Fix a bug in Catalyst::Stats, stopping garbage being inserted into
154 the stats if a user calls begin => but no end
155
156 =back
157