[Catalyst-commits] r9366 - Catalyst-Runtime/5.80/trunk/lib/Catalyst
t0m at dev.catalyst.perl.org
t0m at dev.catalyst.perl.org
Fri Feb 20 16:58:00 GMT 2009
Date: 2009-02-20 16:58:00 +0000 (Fri, 20 Feb 2009)
New Revision: 9366
And cover the rest of Upgrading.pod
--- Catalyst-Runtime/5.80/trunk/lib/Catalyst/Upgrading.pod 2009-02-20 16:12:49 UTC (rev 9365)
+++ Catalyst-Runtime/5.80/trunk/lib/Catalyst/Upgrading.pod 2009-02-20 16:58:00 UTC (rev 9366)
@@ -188,31 +188,29 @@
=head2 Confused multiple inheritance with Catalyst::Component::COMPONENT
+Previously, Catalyst's COMPONENT method would delegate to the method on the
+right hand side, which could then delegate back again with NEXT. This (as it
+is insane AND makes no sense with C3 method dispatch order), and is therefore
+no longer supported.
+If a COMPONENT method is detected in the inheritence hierarchy to the right
+hand side of Catalyst::Component::COMPONENT, then the following warning
+message will be emitted:
There is a COMPONENT method resolving after Catalyst::Component
-This means that one of the packages on the right hand side of
-Catalyst::Component in your Class' inheritance hierarchy defines a COMPONENT
+The correct fix is to re-arrange your class' inheritance hierarchy so that the
+COMPONENT method you would like to inherit is the first (left-hand most)
+COMPONENT method in your @ISA.
-Previously, Catalyst's COMPONENT method would delegate to the method on the
-right hand side, which could then delegate back again with NEXT. This (as it
-is insane), is no longer supported, as it makes no sense with C3 method
-Therefore the correct fix is to re-arrange your class' inheritance hierarchy
-so that the COMPONENT method you would like to inherit is the first COMPONENT
-method in your @ISA.
=head2 Methods in Catalyst::Dispatcher
-The following methods in Catalyst::Dispatcher are both an implementation detail,
-and also likely to change significantly in the 5.8X release series, and therefore
-their use is highly deprecated.
+The following methods in Catalyst::Dispatcher are both an implementation
+detail, which may change in the 5.8X release series, and therefore their use
+is highly deprecated.
@@ -232,8 +230,8 @@
The first time one of these methods is called, a warning will be emitted:
- Class $class is calling the deprecated method Catalyst::Dispatcher::$public_method_name,\n"
- . "this will be removed in Catalyst 5.9X"
+ Class $class is calling the deprecated method Catalyst::Dispatcher::$public_method_name,
+ this will be removed in Catalyst 5.9X
You should B<NEVER> be calling any of these methods from application code.
@@ -242,16 +240,21 @@
adaquately supports your use-case, please email the development list to
discuss what API features you need so that you can be appropriately supported.
-=head2 require $class was successful but the package is not defined.
+=head2 Class naming to packages defined does not correspond.
In this version of Catalyst, if a component is loaded from disk, but no
symbols are defined in that component's namespace after it is loaded, this
-warning will be issued.
+warning will be issued:
-This is to protect against confusing bugs caused by mis-typing package names.
+ require $class was successful but the package is not defined.
-This will become a fatal error in a future version.
+This is to protect against confusing bugs caused by mis-typing package names,
+and will become a fatal error in a future version.
+Please note that 'inner packages' (via L<Devel::InnerPackage>) are still fully
+supported, this warning is only issued when component file naming does not map
+to B<any> of the packages defined within that component.
=head2 $c->plugin method
Calling the plugin method is deprecated, and calling it at runtime is B<highly
@@ -260,4 +263,6 @@
Instead you are recommended to use L< Catalyst::Model::Adaptor > or similar to
compose the functionality you need outside of the main application namespace.
+Calling the plugin method at runtime will not be supported past Catalyst 5.81.
More information about the Catalyst-commits