← Back to context

Comment by jraph

5 hours ago

You could have some client side JavaScript handle your for nodes as well. That's how I imagined what OP described actually.

> Nobody uses PHP this way any more though

Well… I have bad news.

I do, for one :-)

I ask you then: (1) how do you deal with the template that surrounds a large number of pages on a site? (2) how do you deal with the fact that the average web form might want to display something different based on the form contents (e.g. redraw the form if there's an error, draw something different on success?) (3) do you write anything that returns JSON or other results for AJAX or web services?

  • (1) What about it? (note that I don't manage websites with a large number of pages)

    (2) It's easy to add if conditions that test $_GET, $_POST or $_REQUEST display different things depending on what was submitted

    (3) Not often (but have in the past, and will probably have to soon in a personal project). What issue are you anticipating?

    • (1) It's a problem if you have 2 or 3 (never mind N where N is large) different web pages that have the same stuff at the top of the bottom. I mean you can have

        <?php include("header.php") ?>
        ... body ...
        <?php include("footer.php") ?>
      

      but...

      (2) ... in either case it is just as easy to write

        <?php
        ... some "router" that tests $_GET, ... to set $body_file ...
        include("header.php");
        include($body_file)
        include("footer.php");
        ?>
      

      where you have the option of putting headers on before you include header.php, showing a different header or footer conditional, etc. This approach is structurally stable and scales with the complexity of your application no matter what you're doing...

      (3) ... for instance say you want to write a page that might return a different format depending on the headers, the router can return JSON if that is called for, or XML if that is called for, or HTML inside the site's global template if that is called for.

      1 reply →