Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikibooksThe Free Textbook Project
Search

PHP Programming/Why Templating

From Wikibooks, open books for an open world
<PHP Programming
CachingPHP Programming
Why Templating
Templates

So what is a template, in the first place? For our purpose, a template is an HTML-like document that defines thepresentation of a web page, while a PHP script supplies thecontent. The separation of content and presentation is at the heart of anyGUI paradigm. To see why this is desirable, consider the following hypothetical, yet realistic script. It's a script to retrieve a list of books from the database and display it as a table with alternate colours for each row, or "No books found" if the list is empty.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"       "http://www.w3.org/TR/html4/loose.dtd"><html>   <head>      <title>List of Books</title>   </head>    <body><?php$books=newArray();$i=0;$database=open_database();if(is_null($database)){?>    <h1>Error opening database</h1>    Please contact the system administrator at alice@wonderland.com and report the problem.    </body>    </html><?phpexit();}$result=$database->query("SELECT ISBN, title, author FROM book");while($row=$result->retrieveAssoc()){$books[]=$row;}?>    <table><?phpif(count($books)==0){echo"<tr><td>No books found</td></tr>";}else{foreach($booksas$book){if($i%2==0){echo"<tr bgcolor='#EEEEEE'>";}else{echo"<tr bgcolor='#FFFFFF'>";}$i++;?>                <td><?phpecho$book['ISBN'];?></td>                <td><?phpecho$book['title'];?></td>                <td><?phpecho$book['author'];?></td>                </tr><?php}}?>    </table></body></html>

You will find yourself writing this kind of script very soon. The problems with this script are obvious:

  • This PHP page really is two pages, one for the error message and one for the normal display. Confusing.
  • Even for the normal display part, the PHP script does two things: prepare the data and format it, e.g. alternate colour for each row.
  • Look at how entangled the PHP and HTML codes are. Good indentation becomes practically impossible and that makes the code difficult to read.
  • What if your boss now wants not a table, but a list instead? You will need to alter your PHP code for that.
  • And now your boss wants a fancier error page that needs at least 300 lines of HTML, can you still tell where your first "page" ends and the second starts?
  • You probably need to teach your graphics designer PHP if he wants to do any aesthetic make up to your page.

The list goes on.

See also

[edit |edit source]


CachingPHP Programming
Why Templating
Templates
Retrieved from "https://en.wikibooks.org/w/index.php?title=PHP_Programming/Why_Templating&oldid=3675870"
Category:

[8]ページ先頭

©2009-2025 Movatter.jp