[dancer-users] Any way to import plugins into extension apps?

Jason Crome cromedome at gmail.com
Sat Dec 16 21:33:30 GMT 2017


I tend to use the excellent Import::Base from Doug Bell when I need to bring groups of my commonly used modules into an application. Check it out - I think you’ll find it useful!

Jason A. Crome / CromeDome
CPAN: https://metacpan.org/author/CROMEDOME
github: https://github.com/cromedome
Twitter: https://twitter.com/cromedome



> On Dec 15, 2017, at 11:10 AM, Steve Dondley <sdondley at gmail.com> wrote:
> 
> Here's the few lines from a hypothetical MainApp in /lib:
> 
> # File 1
> package MainApp;
> use ExtendingApp;
> use HTML::Element;
> 
> And here is a perl module that extends this app.
> 
> # File 2
> package ExtendingApp;
> use Dancer2 appname => MainApp;
> 
> get '/' => sub {
>    my $element = HTML::Element->new('h1');
> };
> 
> ### END ###
> 
> This works. I get no errors because the HTML::Element module can be seen inside routes. However, unless I'm missing something, this doesn't work.
> 
> # File 1
> package MainApp;
> use ExtendingApp;
> use Dancer2::Plugin::Database;
> 
> # File 2
> package ExtendingApp;
> use Dancer2 appname => MainApp;
> 
> get '/' => sub {
>    my @data = database->quick_select('test_table', {});
> };
> 
> ### END ###
> 
> The above results in an error: Can't locate object method "quick_select" via package "database" (perhaps you forgot to load "database"?)
> 
> I'm forced to add "use Dancer2::Plugin::Database" to File 2. I'm curious to know if there's some way to import commonly used plugins into extension apps.
> 
> Thanks!
> 
> 
> 
> 
> _______________________________________________
> dancer-users mailing list
> dancer-users at dancer.pm
> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users



More information about the dancer-users mailing list