Grokbase
Topics Posts Groups | in
x
[ help ]

Re: [Catalyst] Any chance there is an arbitrary limit to how many classes you can load this way...?

View PostFlat  Thread  Threaded | < Prev - Next >
Josef Chladek Re: [Catalyst] Any chance there is an arbitrary limit to how many classes you can load this way...?
| +1 vote
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
Am 09.10.2007 um 11:51 schrieb Dustin Suchter:

> So let's assume I have the below code. Each of the 13 classes
> represent 1 table in the same MySQL db. All class definitions are
> essentially identical in structure and have nothing more complex
> than foreign keys in them.
>
> Here's the weird thing, if I run my code with all 13 classes, my
> default view stops working - it seems to be replaced with the only
> other view I've defined! I only use the other one by manually
> calling 'forward' to it in 1 function - ultra weird!
>
> If I remove any of the classes the load_classes line the behavior
> goes back to expected. I've tried lots of reordering, renaming,
> removing, etc etc. I actually have far more than 13 classes I want
> to load, so I've even tried interchanging which 13 I test with. As
> far as I can tell, loading more than 12 classes at a time here
> causes some sort of buffer overflow that ends up messing with my
> views. That really doesn't make any sense to me, but it is what I'm
> observing.
>
> Also, I notice that in the debug output when starting my server,
> both my views are present at all times, so it's not like the
> secondary view is getting used because the default one is missing.
>
> However, if I delete the class defining my secondary view then my
> default view starts working again. This seems to imply that having
> more than 12 classes loaded in my Model somehow changes my default
> view order...?!
>
> umm... help? =]
>
> ###############
> package MyAppDB;
>
> use base qw/DBIx::Class::Schema/;
> __PACKAGE__->load_classes({
> MyAppDB => [qw/One Two Three Four Five Six Seven Eight Nine Ten
> Eleven Twelve Thirteen/]
> });
>
> ###############

hmm, I had the exact same situation (although the number of classes  
was somewhat higher, aprox. 25) when I used

Catalyst::Action::RenderView::ErrorHandler

I removed it and my app worked again. maybe this helps...

josef



_______________________________________________
List: [email protected: Cat...@lists.scsys.co.uk]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
Dev site: http://dev.catalyst.perl.org/

Thread : [Catalyst] Any chance there is an arbitrary limit to how many classes you can load this way...?
1)
Dustin Suchter So let's assume I have the below code. Each of the 13 classes represent 1 table in the same MySQL...
2)
Josef Chladek hmm, I had the exact same situation (although the number of classes was somewhat higher, aprox. 25)...
3)
Dustin Suchter The fact that someone else had this problem makes me feel a tiny bit better. At least I'm not...
4)
Juan Miguel Paredes I once had a similar problem... not related to Views, but authentication, when defining about 20...
5)
Dustin Suchter Why yes they are! There are classes like, 'User' and 'UserRoles'. This overlap happens a few time,...
6)
Juan Miguel Paredes The issue may be configuration related (not especific to YAML, though it's a common option, at...
7)
Dustin Suchter I added the following line to lib/MyApp.pm and the problem is now fixed: __PACKAGE__->config(...
8)
Matt S Trout That should just be => 'TT' Your problem was probably having 'MyApp::View::TT' in there instead.
9)
Jonathan Rockway FWIW, this is going to burn users of View::Template::Declare also. Given YourApp::View::TD and a...
10)
Jonathan Rockway Uhh, qr/View::TD$/, not qw. Regards, Jonathan Rockway
11)
Matt S Trout No! ->config(default_view => 'TD'); Remember, the default_view arg is -what you pass to $c->view-....
12)
John Romkey Try making sure that you fully qualify all your model and view names, and that they're the correct...
13)
Matt S Trout WRONG. $c->view('Foo') is correct. Never -ever- use a full class name to $c->view, that relies on...
spacer
View PostFlat  Thread  Threaded | < Prev - Next >