Mailing List Archive

Catalyst + Bread::Board
Hello,

Following Christiaan's lead, I'm also writing this to ask for input for
Google Summer of Code. I will also be applying for Catalyst this year,
on the same project as last year, i.e. reworking Catalyst component
loading system using Bread::Board.

Last summer I did implement the component loading system, but it is
still not ready to be released. If you try the code from the
gsoc_breadboard branch, you can create your own custom container. But
some things aren't quite ready to be used. For instance, setting the
lifetime of the component to "per request" is not working, and the sugar
syntax (which, while not required, is pretty cool!) is also not
finished. Also, some features were removed or deprecated, and back
compat is needed. In the last few weeks of GSOC, while implementing the
new features, some things had to be broken and important modules like
Catalyst::Model::DBIC::Schema stopped working with the branch.

So, summing up, it does load everything with Bread::Board, it is
possible to use the new features, Config::Loader is merged into the
core, and we're approaching a developer release. But we have a couple of
blocker bugs that were introduced, which shouldn't take long to fix.
Aside from that, there's room for improvement in sugary syntax, and
maybe other features. Lots of tests to make sure it won't break anything
that was working before, and also lots of documentation, because most
people have a hard time understanding what Bread::Board is about, and
how it can be used to improve Catalyst :)

So this is what I've got so far to write my proposal to this year's
GSoC. Other than that, I'd like to hear from you. What do you want to be
able to do with Catalyst's new component loading system?

Regards,
André

_______________________________________________
Catalyst-dev mailing list
Catalyst-dev@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst-dev
Re: Catalyst + Bread::Board [ In reply to ]
On Sun, 11 Mar 2012, André Walker wrote:

> So this is what I've got so far to write my proposal to this year's
> GSoC. Other than that, I'd like to hear from you. What do you want
> to be able to do with Catalyst's new component loading system?

Show me how it fits into MyApp, so that I see that Catalyst is a
plugin which gives MyApp a web presence, rather than a framework
in which I can create a web application called MyApp.

> Regards,
> André

> _______________________________________________
> Catalyst-dev mailing list
> Catalyst-dev@lists.scsys.co.uk
> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst-dev

_______________________________________________
Catalyst-dev mailing list
Catalyst-dev@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst-dev
Re: Catalyst + Bread::Board [ In reply to ]
On 03/11/2012 01:33 AM, Greg Matheson wrote:
> Show me how it fits into MyApp, so that I see that Catalyst is a
> plugin which gives MyApp a web presence, rather than a framework in
> which I can create a web application called MyApp.
Right, we're working to get there. What you suggest is that we create an
example app showing it?

_______________________________________________
Catalyst-dev mailing list
Catalyst-dev@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst-dev
Re: Catalyst + Bread::Board [ In reply to ]
>________________________________
> From: André Walker <andre@andrewalker.net>
>To: Development of the elegant MVC web framework <catalyst-dev@lists.scsys.co.uk>
>Sent: Sunday, March 11, 2012 10:52 AM
>Subject: Re: [Catalyst-dev] Catalyst + Bread::Board
>
>On 03/11/2012 01:33 AM, Greg Matheson wrote:
>> Show me how it fits into MyApp, so that I see that Catalyst is a plugin which gives MyApp a web presence, rather than a framework in which I can create a web application called MyApp.
>Right, we're working to get there. What you suggest is that we create an example app showing it?
>

Personally I'm very intrigued by this idea and would love to hear/ see more.  How is this different from say the suggested practice that your contain your domain logic in class (generally I use DBIC) and then pull that into catalyst with a mix of thin adapter classes?

John

>_______________________________________________
>Catalyst-dev mailing list
>Catalyst-dev@lists.scsys.co.uk
>http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst-dev
>
>
>

_______________________________________________
Catalyst-dev mailing list
Catalyst-dev@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst-dev
Re: Catalyst + Bread::Board [ In reply to ]
On 03/29/2012 08:44 PM, John Napiorkowski wrote:
> Personally I'm very intrigued by this idea and would love to hear/ see more. How is this different from say the suggested practice that your contain your domain logic in class (generally I use DBIC) and then pull that into catalyst with a mix of thin adapter classes?
The idea is basically this: (In MyApp::Container)

container {
model {
component DBIC => (
class => 'DBIx::Class',
lifecycle => 'Singleton',
# other args
);
component Logic => ( # all your domain logic, whatever class
you want here
class => 'My::Domain::Logic',
lifecycle => 'Request',
dependencies => {
connection => depends_on('DBIC'),
},
# etc
);
}
}

Then you could fetch your components from a crontab script, for
instance, like this:

perl -MMyApp::Container -e "MyApp::Container->new->resolve(service =>
'model/Logic')->do_stuff"
# magically gets connected, although doesn't load unnecessary dispatch
stuff, views, etc

And in your Catalyst application, you could have it accessible the old
usual way:

$ctx->model('DBIC')->foo;
$ctx->model('Logic')->bar;

So, answering your question, the difference is that you don't need the
adapter class anymore. You can glue it together using a Bread::Board
container :)

_______________________________________________
Catalyst-dev mailing list
Catalyst-dev@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst-dev
Re: Catalyst + Bread::Board [ In reply to ]
P.S.: I'm not saying you should have all your domain logic in one class
here! Just saying, you can glue anything you like using this method.

_______________________________________________
Catalyst-dev mailing list
Catalyst-dev@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst-dev