NAME

Dancer2::Plugin::ControllerAutoload - Autoload controllers

SYNOPSIS

When we use the plugin in MyApp.pm it'll load all the controllers under the Controller directory, so you don't have to write one use $controller in MyApp.pm for each controller.

# MyApp.pm
package MyApp;
use Dancer2;
use Dancer2::Plugin::ControllerAutoload;

# MyApp/Controller/Users.pm
package MyApp::Controller::Users;
use Dancer2 appname => 'MyApp';

# MyApp/Controller/Users/Thoughts.pm
package MyApp::Controller::Users::Thoughts;
use Dancer2 appname => 'MyApp';

DESCRIPTION

If you have these three controllers

# MyApp/Controller/Users.pm
package MyApp::Controller::Users;
use Dancer2 appname => 'MyApp';

# MyApp/Controller/Users/Thoughts.pm
package MyApp::Controller::Users::Thoughts;
use Dancer2 appname => 'MyApp';

# MyApp/Controller/Services.pm
package MyApp::Controller::Services;
use Dancer2 appname => 'MyApp';

you'd have to load each with an use

# MyApp.pm
package MyApp;
use Dancer2;
use MyApp::Controller::Users;
use MyApp::Controller::Users::Thoughts;
use MyApp::Controller::Services;

This plugin simplifies this process. When you use the plugin, all controllers will be loaded.

# MyApp.pm
package MyApp;
use Dancer2;
use Dancer2::Plugin::ControllerAutoload;

A controller will be by default identified as such if it is under the Controller directory. But that's configurable. If your controller directory is called "Contr":

# in a config or environment file
plugins:
    ControllerAutoload:
        controller_dir: Contr

AUTHOR

Gil Magno, <gilmagno at gilmagno.com>

BUGS

Please report any bugs or feature requests to bug-dancer2-plugin-controllerautoload at rt.cpan.org, or through the web interface at https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Dancer2-Plugin-ControllerAutoload. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

Also you can use github: https://github.com/gilmagno/Dancer2-Plugin-ControllerAutoload.

ACKNOWLEDGEMENTS

Angel Leyva, José Biskofski, Natanael Lizama, Uriel Lizama

LICENSE AND COPYRIGHT

This software is Copyright (c) 2021 by Gil Magno.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)