Re: [SMARTY-DEV] another way to handle objects]

From: Date: Tue, 24 Dec 2002 22:57:46 +0000
Subject: Re: [SMARTY-DEV] another way to handle objects]
Groups: php.smarty.dev 
Request: Send a blank email to php-smarty-dev+get-489@lists.php.net to get a copy of this message
Hello, On Tue, Dec 24, 2002 at 09:41:00AM -0600, Monte Ohrt wrote: > This had to have been thought of already, so I'll throw it out there > (again?) and see what reaction we get... > > Currently, we are looking at supporting this kind of syntax for objects: > > {$myobj->get_headline($foo,$smarty.const._MY_CONST)} > > Instead of supporting a new syntax, why not use the exisiting template > syntax and access them through a template function? I also had this idea some time ago :) > example: > > {object name="myobj" method="get_headline" p1=$foo > p2=$smarty.const._MY_CONST} I see a problem here. this works fine with objects that are simply assigned (by ref maybe) as template variables. But if your object is an array element, or itself an object property we have something like: {object name="myobj->children.0" p1=$foo... This would be hard to be parsed at runtime, wouldn't it? And we cannot parse it at compile-time using the old function-call-parsing and -handling. Just my thoughts. > This way we aren't polluting Smarty with new syntax support, we don't > have to make special parsing logic for the parameters, and we are only > adding a plugin. The only downside I see is that the syntax is a little > wordier to work with, but it works all the same. I'm not sure of the > best way to handle parameters since you have to name them. I just used > p1, p2, etc. There are probably other ways to simplify the syntax, maybe > something like: > > {object name="myobj->get_headline" parameters="\$foo, \$bar, > \$smarty.const._MY_CONST"} > > The CVS version of Smarty supports applying modifiers to function output > so you can do this: > > {object|upper name="myobj" ...} > > > Thoughts? > > Monte

« previous php.smarty.dev (#489) next »