The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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)