Re: smarty
| From: | Chris de Vidal | Date: | Tue, 06 Apr 2004 20:37:48 +0000 |
| Subject: | Re: smarty | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-182542@lists.php.net to get a copy of this message | ||
Kelly Hallman said:
> Apr 6 at 2:43pm, Chris de Vidal wrote:
>> Given that scripts are compiled the first time they're ran, you'll
>> never* notice the bloat and never lack performance; it's the same as
>> real PHP code and can be optimized with a caching engine like Zend.
>
> Certainly. However, the Smarty compiler is about 2200 lines of code, and
> the Smarty class itself (which does load every time) is about 2000. Both
> figures rounded up, and both files contain heaps of comments.
Ahh never thought about that.
> Still, many people consider this bloat, if they're merely wanting to
> search and replace a couple of values on an HTML template.
Yep, I was given something simple on this mailing list for this task.
Looked perfect -- at first -- but I recognized I was going to need more
(if/then and loops) so I used Smarty instead. But here is a very simple
template engine:
http://marc.theaimsgroup.com/?l=php-general&m=107644142420608&w=2
>> Instead, I put something like this in the template:
>> {if $level > 2}{bio}{/if}
>
> Again, take it a step further and you may just load up a $User object (of
> your design) within your PHP code. Then in the template, you could use:
>
> {if $User->hasPermission('write')} ... {/if}
>
> When you start thinking like this, your PHP logic gets very slim and easy
> to read and maintain. This is the goal and benefit of templating.
Sweet!
> It becomes especially powerful when working on a larger web app. You
> needn't assign your values into the template from each PHP page. You can
> make a boilerplate include and assign common variables as references:
>
<code snipped>
>
> So you can attach references right off the bat in an include, then every
> time you use that include, you've already got things assigned and can
> change them all you want before displaying, without additional assignment.
>
> Going even one step further (the beauty of Smarty: always another level),
> just extend the Smarty object itself. Then, instead of making all your
> templates includes other templates (such as a header or a footer), you can
> make your overall page be a template, and the extended Smarty object can
> be given extra functionality to control the page:
>
<code snipped>
>
> Now, is Smarty awesome, or what? :)
I don't quite understand what you're saying because I'm feeling ill at the
moment :-P so I'll have to try to comprehend it later.
But thanks for the enthusiasm!
/dev/idal