Name Catalyst::Plugin::ConfigComponents - Creates components from config entries Synopsis # In your Catalyst application package YourApp; use Catalyst qw(ConfigComponents); __PACKAGE__->setup; # In your applications config file YourExternal::ModelE/parent_classes> Catalyst::ModelE/parent_classes> # Do not create YourApp::Model::YourModel this module will do it for you # In a controller this will call your_method in # the class YourExternal::Model $result = $c->model( q(YourModel) )->your_method( ... ); Version This documents version v0.8.$Rev: 1 $ of Catalyst::Plugin::ConfigComponents Description When the application starts this module creates Catalyst component class definitions using config information. The defined class inherits from the list of parent classes referenced in the config file Configuration and Environment Specify a *Plugin::ConfigComponents* config option. Attributes are "component_active" If the "component_active" config attribute exists and is false the component will not be loaded "parent_classes" List of classes for the derived component to inherit from "search_extra" To add additional search paths, specify a key named *search_extra* as an array reference. Items in the array beginning with "::" will have the application class name prepended to them "setup_method" Defaults to "_setup_config_components", the method to call after the call to Catalyst::setup_components Subroutines/Methods setup_components Calls the setup method (which defaults to "setup_config_components") after the parent method _setup_config_components For each config key matching "\A Model|View|Controller ::" it checks if the corresponding component already exists, and if it doesn't this method creates it at run-time The parent class is set to "MyApp->config->{ $component }->{parent_classes}" if it exists, "Catalyst::$component" otherwise. The *parent_classes* can be an array ref in which case the defined class will inherit from all classes in the list (multiple inheritance) Diagnostics None Dependencies Moose::Role Catalyst::Utils Devel::InnerPackage Incompatibilities There are no known incompatibilities in this module Bugs and Limitations There are no known bugs in this module. Please report problems to http://rt.cpan.org/NoAuth/Bugs.html?Dist=Catalyst-Plugin-ConfigComponent s. Patches are welcome Acknowledgements Larry Wall - For the Perl programming language This code was originally posted to the Catalyst mailing list by Dagfinn Ilmari Manns�ker as a patch in response to an idea by Castaway. I thought it would be better as a plugin and have extended it to handle MI Author Peter Flanigan, "" License and Copyright Copyright (c) 2013 Peter Flanigan. All rights reserved This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic This program is distributed in the hope that it will be useful, but WITHOUT WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE