[dancer-users] Plugin nesting in Dancer2

sawyer x xsawyerx at gmail.com
Fri Dec 6 17:16:40 GMT 2013


We clearly haven't thought about this case. I really wish we could clean up
the plugin completely. It still isn't what we want it to be. :(

Could you please open an issue for this?


On Wed, Oct 2, 2013 at 12:47 PM, Marco Pessotto <melmothx at gmail.com> wrote:

>
> Hello all!
>
> I have a question about the plugin nesting in Dancer2. I'd like to know
> if using a plugin (notably the Dancer2::Plugin::Database) inside another
> plugin is doable or deprecated or hacky or unsupported or just can't
> work.
>
> This used to work with Dancer1, but now it's unclear if and how it
> should work, as we don't do "use Dancer qw/:syntax/" anymore.
>
> The app at runtime seems to work, I get the expected output of the
> dumped D2::P::D object, but in a Dancer2 qw/:script/ it fails with a
> "deep recursion" error.
>
> use Dancer2 ":script";
> use Dancer2::Plugin::Test;
> print to_dumper(hello);
>
> perl -I lib t/script.t
> 1..1
> DEPRECATED: Dancer2::Plugin::Test calls 'dsl' instead of '$dsl->dsl'. at
> /home/melmoth/perl5/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3/Dancer2/Plugin/Database.pm
> line 57.
> DEPRECATED: Dancer2::Plugin::Test calls 'dsl' instead of '$dsl->dsl'. at
> /tmp/MyApp/lib/Dancer2/Plugin/Test.pm line 6.
> DEPRECATED: Dancer2::Plugin::Test calls 'dsl' instead of '$dsl->dsl'. at
> /tmp/MyApp/lib/Dancer2/Plugin/Test.pm line 6.
> DEPRECATED: Dancer2::Plugin::Test calls 'dsl' instead of '$dsl->dsl'. at
> /tmp/MyApp/lib/Dancer2/Plugin/Test.pm line 6.
> DEPRECATED: Dancer2::Plugin::Test calls 'dsl' instead of '$dsl->dsl'. at
> /tmp/MyApp/lib/Dancer2/Plugin/Test.pm line 6.
> DEPRECATED: Dancer2::Plugin::Test calls 'dsl' instead of '$dsl->dsl'. at
> /tmp/MyApp/lib/Dancer2/Plugin/Test.pm line 6.
> Deep recursion on anonymous subroutine at
> /home/melmoth/perl5/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3/Dancer2/Core/Role/DSL.pm
> line 72.
> # Looks like your test exited with 255 before it could output anything.
>
> The test app is the following (also packed in the tarball attached with
> the tests).
>
> conf:
> ### cut ####
> plugins:
>     Database:
>         driver: SQLite
>         database: 'foo.sqlite'
> ### cut ####
>
> app:
>
> ### cut ####
>
> package MyApp;
> use strict;
> use warnings;
> use Dancer2;
> use Dancer2::Plugin::Test;
>
> our $VERSION = '0.1';
>
> get '/' => sub {
>     my $dbh = hello;
>     return to_dumper($dbh);
> };
>
> true;
>
> ### cut ####
>
> plugin:
>
> ### cut ####
> package Dancer2::Plugin::Test;
> use strict;
> use warnings;
>
> use Dancer2::Plugin;
> use Dancer2::Plugin::Database;
>
> register hello => sub {
>     my $dsl     = shift;
>     return database;
> };
>
> register_plugin;
> 1;
> ### cut ####
>
> Thanks in advance
>
> Best wishes
>
>
>
>
>
>
> --
> Marco
>
> _______________________________________________
> dancer-users mailing list
> dancer-users at dancer.pm
> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.preshweb.co.uk/pipermail/dancer-users/attachments/20131206/25545b1c/attachment.html>


More information about the dancer-users mailing list