Re: [Agavi-Users] RFC: Dropping ability to change Output Type in AgaviView::initialize()

2009-01-15 Thread David Zülke

Hi Manuel,

no, that would still work fine, both with and without caching. The  
actual forward occurs much later, and is not affected by this change.


But it brings up an interesting point, thanks for that. Veikko asked  
much the same thing on IRC; he shows an HTML error page when a PDF  
cannot be generated.


Right now, a convenient way to do that would be to simply do  
$container-setOutputType('html'); in YourErrorView::initialize() to  
set back the output type to HTML, no matter what the output type  
currently is. That wouldn't be possible anymore and would have to be  
done by doing the forward you're describing (kudos for having such  
clean code!)


It might be worth noting that we wouldn't have to actually *prevent*  
the Output Type from being set. That means the quick-and-dirty- 
solution above *could* still work. We'd simply change things inside  
the framework so it doesn't care, and when you then use caching,  
things would act wonky. That would preserve flexibility (and 99.97% of  
BC, I presume), but might also be a potential source for WTF moments.  
But of course, we could throw an exception if we detect an output type  
change while trying to cache something. I guess that would work best,  
and basically mean that the functionality is only disabled in  
combination with caching. Which I, on the other hand, do not like,  
because a system should never force a user to bother with  
implementational details or optimizations (PHP has enough of that, I'm  
not keen on repeating those mistakes, besides the fact that it simply  
makes me angry...)


Nice Catch-22, ain't it... (but a welcome change; most annoying  
decisions revolve around naming things, like in anything computer  
science :p)


- David



Am 15.01.2009 um 15:43 schrieb Manuel Giesa:


Hi David,

would this affect forward containers? I my particular case i have an  
action wich has a special output type compared to the rest of the  
application. But in an error case i create a forward container to my  
something went wrong action with a different output type.


Manuel

___
users mailing list
users@lists.agavi.org
http://lists.agavi.org/mailman/listinfo/users




smime.p7s
Description: S/MIME cryptographic signature
___
users mailing list
users@lists.agavi.org
http://lists.agavi.org/mailman/listinfo/users


Re: [Agavi-Users] RFC: Dropping ability to change Output Type in AgaviView::initialize()

2009-01-15 Thread Felix Gilcher

Hi,

as for Veikkos problem: Instead of setting the output type in  
view::initialize() the view could just define a generic execute()  
which forwards to itself with the proper OT. Same effect, just a  
single roundtrip more. Considering this is an error condition which  
should not be reached in the majority of cases I'd say it's a good  
tradeoff for a cleaner and more consistent implementation.


cheers

felix

On Jan 15, 2009, at 4:35 PM, David Zülke wrote:


Hi Manuel,

no, that would still work fine, both with and without caching. The  
actual forward occurs much later, and is not affected by this change.


But it brings up an interesting point, thanks for that. Veikko asked  
much the same thing on IRC; he shows an HTML error page when a PDF  
cannot be generated.


Right now, a convenient way to do that would be to simply do  
$container-setOutputType('html'); in YourErrorView::initialize() to  
set back the output type to HTML, no matter what the output type  
currently is. That wouldn't be possible anymore and would have to be  
done by doing the forward you're describing (kudos for having such  
clean code!)


It might be worth noting that we wouldn't have to actually *prevent*  
the Output Type from being set. That means the quick-and-dirty- 
solution above *could* still work. We'd simply change things inside  
the framework so it doesn't care, and when you then use caching,  
things would act wonky. That would preserve flexibility (and 99.97%  
of BC, I presume), but might also be a potential source for WTF  
moments. But of course, we could throw an exception if we detect an  
output type change while trying to cache something. I guess that  
would work best, and basically mean that the functionality is only  
disabled in combination with caching. Which I, on the other hand, do  
not like, because a system should never force a user to bother with  
implementational details or optimizations (PHP has enough of that,  
I'm not keen on repeating those mistakes, besides the fact that it  
simply makes me angry...)


Nice Catch-22, ain't it... (but a welcome change; most annoying  
decisions revolve around naming things, like in anything computer  
science :p)


- David



Am 15.01.2009 um 15:43 schrieb Manuel Giesa:


Hi David,

would this affect forward containers? I my particular case i have  
an action wich has a special output type compared to the rest of  
the application. But in an error case i create a forward container  
to my something went wrong action with a different output type.


Manuel

___
users mailing list
users@lists.agavi.org
http://lists.agavi.org/mailman/listinfo/users


___
users mailing list
users@lists.agavi.org
http://lists.agavi.org/mailman/listinfo/users


--
Felix Gilcher

Bitextender GmbH
Paul-Heyse-Str. 6
D-80336 München

T: +49 89 57 08 15 16
F: +49 89 57 08 15 17
M: +49 172 840 88 28

felix.gilc...@bitextender.com
http://bitextender.com/

Amtsgericht München, HRB 174280
Geschäftsführer: David Zülke, Florian Clever



smime.p7s
Description: S/MIME cryptographic signature
___
users mailing list
users@lists.agavi.org
http://lists.agavi.org/mailman/listinfo/users