On Sep 18, 6:41 pm, Miles J <[email protected]> wrote:
> Theres no point in using the HTML
> helper to create a div when you can create it manually.

Sure there is. For one, it makes your code shorter by eliminating
boilerplate. The <div class="foo">bar</div> idiom is very common, and
so some clever HtmlHelper developer realized it'd be handy to make the
class attribute implicit. div('foo', 'bar') is about 2/3 the length of
the above, and while that doesn't make a big difference for just one
div, in the divitis that often is real-word markup, those characters
add up. ^_^

Another benefit of generating your HTML programmatically that follows
from the above is that, as you notice repetition in your own code -
for example, a pattern of frequently used classes like <div class="foo
bar baz quux wam bam"></div> - and write functions like divFooEtc() to
abstract it away, it becomes easier to switch to using divFooEtc() if
you've already been using div() than if you've been writing raw HTML
and have to edit all your <?php?> tags.

You're right that the performance issue is a concern. (And as I said,
I would really love to know how severe that is.) There is also the
problem of code maintainability if you every need someone who knows
HTML but not the HtmlHelper to look at your source. But I don't think
issue of hand-writing markup vs. generating it programmatically is
really so one-sided as the present votes on this thread would suggest.

Thanks,
Evan

> On Sep 18, 3:16 pm, "Evan R. Murphy" <[email protected]> wrote:
>
>
>
> > I figured out a way to do this through trial-and-error, but it's kinda
> > kludgy.
>
> > You create a libs/html.php file with wrapper functions for every
> > HtmlHelper you want to alias:
>
> > <?
>
> > // contents of libs/html.php
>
> > global $HTML;
> > $HTML = $html;
>
> > if (!function_exists('div')) {
> >   function div($class = null, $text = null, $options = array()) {
> >     global $HTML;
> >     return $HTML->div($class, $text, $options); } }
>
> > if (!function_exists('tag')) {
> >   function tag (...) {
> >     ... } }
>
> > ... ?>
>
> > Then, in every view where you want to use these functions, just
> > include('libs/html.php'); at the top and they become available.
>
> > On Sep 18, 10:26 am, Jeremy Burns | Class Outfit
>
> > <[email protected]> wrote:
> > > These tags are so simple, there's no need to use the helper.
> > > Drop the helper altogether and do it with straightforward html.
> > > There's little benefit in using the helper for these - in fact you are 
> > > slowing your site down by using it. Then you have complete control.
>
> > There must be two schools of thought on this, or else why would the
> > helper functions exist for simple tags! ;) I appreciate increased
> > clarity of not constantly escaping between PHP and HTML, but your
> > point is well taken. Any idea what kind of performance hit is taken
> > for using the HtmlHelper?
>
> > Thanks,
> > Evan
>
> > On Sep 17, 11:44 pm, "Evan R. Murphy" <[email protected]> wrote:
>
> > > I really like using CakePHP's HtmlHelper, except that it's so verbose.
> > > I'd love to be able to write
>
> > > div('header',
> > >   tag('ul',
> > >     tag('li', link('Home', '/')),
> > >     aa('class', 'nav')))
>
> > > instead of
>
> > > $html->div('header',
> > >   $html->tag('ul',
> > >     $html->tag('li', $html->link('Home', '/')),
> > >     aa('class', 'nav')))
>
> > > How can I make this happen? (It's ok with me if functions like div,
> > > tag and link are global. I'm willing to risk naming conflicts for this
> > > extra convenience.)
>
> > > Thanks,
> > > Evan

Check out the new CakePHP Questions site http://cakeqs.org and help others with 
their CakePHP related questions.

You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en

Reply via email to