private_path method for actions that returns a string suitable for use in forward...
[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.8.
8
9 =head2 Deprecations
10
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
16 =over
17
18 =item ::[MVC]:: style naming scheme has been deprecated and will warn
19
20 =item NEXT is deprecated for all applications and components, use MRO::Compat
21
22 =item Dispatcher methods which are an implementation detail made private, public versions now warn.
23
24 =item MyApp->plugin method is deprecated, use L<Catalyst::Model::Adaptor> instead.
25
26 =item __PACKAGE__->mk_accessors() is supported for backward compatibility only, use Moose attributes instead in new code.
27
28 =item Use of Catalyst::Base now warns
29
30 =back
31
32 =head2 New features
33
34 =head3 Dispatcher
35
36 =over
37
38 =item Fix forwarding to Catalyst::Action objects.
39
40 =item Add the dispatch_type method
41
42 =back
43
44 =head3 Restarter
45
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.
50
51 =head3 $c->uri_for_action method.
52
53 Give a private path to the Catalyst action you want to create a URI for.
54
55 =head3 Logging
56
57 Log levels have been made additive.
58
59 =head3 L<Catalyst::Test>
60
61 =over
62
63 =item Change to use L<Sub::Exporter>.
64
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
71 =head3 Catalyst::Response
72
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 >>
84
85 =back
86
87 =head2 Consequences of the Moose back end
88
89 =over
90
91 =item *
92
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.
107
108 =item *
109
110 There is a reasonable API in Catalyst::Controller for working with
111 and registering actions, allowing a controller sub-class to replace
112 subroutine attributes for action declarations with an alternate
113 syntax.
114
115 =item *
116
117 Refactored capturing of $app from L<Catalyst::Controller> into
118 L<Catalyst::Component::ApplicationAttribute> for easier reuse in other
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
133 Don't ignore SIGCHLD while handling requests with the development server, so that
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.
144
145 =item *
146
147 Fix a bug in Catalyst::Stats, stopping garbage being inserted into
148 the stats if a user calls begin => but no end
149
150 =back
151