[Dancer-users] multi-folder Dancer app

sukria sukria at sukria.net
Sat Aug 21 13:21:53 CEST 2010


On Fri, 20 Aug 2010 06:32:54 -0500, P Kishor <punk.kish at gmail.com> wrote:
[...]
> app/
>     environments/
>     view/
>     lib/
>     public/
>     t/
> 
> The above works well for a relatively simple application, but if I
> have several groups of relatively complicated functions, I would like
> to group them by, well, by functions. Here is what I would like --
> 
> app/
>     function1/
>     function2/
> 
> function1 and function2 would be like mini dancer apps in their own
> right, but would share common resources such as top menu, login
> capabilities, logos, images (common to the both of them), master style
> sheet, etc. They would likely also share a fair bit of common Perl
> code, and also some data tables from a db.
> 
> What is a suggested pattern for that?

This is where you really should upgrade to 1.1806_02, in order to benefit
from the 'load_app' feature.

You'll be able to do the following:

    appdir/
      yourapp.pl
      lib/
        yourapp.pm
        yourapp/
          function1.pm
          function2.pm
      views/
        function1/
        function2/

in yourapp.pm, you mount your subapps like that
      
package yourapp;
use Dancer ':syntax';

load_app 'yourapp::function1', prefix => '/function1';
load_app 'yourapp::function2', prefix => '/function2';
...

and in your subapps:

package yourapp::function1;
use Dancer ':syntax';

get '/' => sub { "root of function1" };

...




More information about the Dancer-users mailing list