News for hackers. Stuff that matters.
Re:PHP in 2020 by pjmlp on Wednesday January 22, 2020 @05:29AM (#22116237)
> And yet we had alternate templating engines for PHP since forever (remember Smarty ? know Twig now ?). Stuffing templates with "htmlspecialchars" or "htmlentities" is no fun.

One of the best decisions after I decided to stick with PHP for my web site was ditching all those alternatives and go with PHP alone, using functions as tag libraries.

Re:PHP in 2020 by guggle on Wednesday January 22, 2020 @06:30AM (#22116584)
> using functions as tag libraries.

Care to post an example ?

Re:PHP in 2020 by pjmlp on Wednesday January 22, 2020 @06:59AM (#22116764)
Basically you split the PHP code into three layers, trying to do a kind of bare bones MVC.

You have the PHP business logic code as usual.

Then instead of doing

    <a href="http://somewhere">A link</a>

You have a view function that does that for you

    function web_link($url, $title) {
        echo "<a href="$url">$title</a>";
    }
And then on the HTML markup, you place those calls as tag libraries in other similar frameworks,

    web_link("http://somewhere", "A link")  
Very low tech, but does the job similar to JSP tag libraries and provides some organization.
Re:PHP in 2020 by krapp on Wednesday January 22, 2020 @07:39AM (#22116993)
It seems too low tech to be useful for any project of any complexity. Existing HTML template frameworks do a lot of things like character and syntax aware data escaping (and avoiding double-escaping), template caching, plugins, code generation, tag extension, filters, etc.

Other than being slightly more concise and appearing more functional, I don't see the benefit of this over something like Twig or Smarty. At some point you're going to wind up re implementing features that already exist in a framework anyway.

Re:PHP in 2020 by pjmlp on Wednesday January 22, 2020 @09:23AM (#22117744)
Naturally if one is doing it at scale, this is NIH.

I used it only for my web site, and many alternatives did not exist back when I did this.

Re:PHP in 2020 by stef25 on Wednesday January 22, 2020 @07:20AM (#22116876)
Re:PHP in 2020 by pjmlp on Wednesday January 22, 2020 @07:37AM (#22116974)
Yes that is the idea, it just did not exist in 2003.
Re:PHP in 2020 by guggle on Wednesday January 22, 2020 @07:06AM (#22116798)
Low-tech is fine, however I'll assume your example has been excessively simplified for the sake of brievity because as-is it's prone to break your page.
Re:PHP in 2020 by pjmlp on Wednesday January 22, 2020 @07:37AM (#22116978)
Yes, I was making it basic, just describe the idea behind it.