On Wed, Jan 20, 2010 at 08:15:55PM -0800, Allen McCabe wrote:

> For a work in progress, view http://www.mwclans.com/new_index.php
> The login fields are a 'component' I include in the header.
> The links are generated from the 'links' table; the primary_navigation links
> are a class by the same name, and the 'footer_navigation' are also a
> different category. All links on this page are generated from the Links
> table, and each row has 90% of the properties the HTML 'a' tag can have (eg.
> fields: id, link_text, href, target, onmouseover, onmouseout, onclick, name,
> class, etc.). The class is the same as the category.
> The content is pulled from an include file with the same ID number as this
> page ("home" page), which is "1", and the scripts.
> There are additional features, like a theme class which pulls a theme ID
> from the DB (a `site_settings` table).
> Here is an example of the source code for the above link:

You're free to do this as you like, and I've done it in the past just as
you did. But I think the general concensus is that you want to
intersperse as little complicated PHP inside your HTML as possible. For
example, you're doing a database call inside your HTML and then
displaying the results. The more acceptable practice is to make these
calls before you start outputting HTML, shove the values into variables
or an array, and then just loop through the *values* inside your HTML.
There are a couple of reasons for doing it this way. First, anyone
looking at the HTML later who isn't a programmer will have an easier
time of it if there aren't lines and lines of PHP code inside the HTML.
Second, it makes your code more "modular". That is, it puts your main
body of PHP code all together. That aids in debugging, testing and the
like later. This approach means your code is dispersed among several
files instead of just one. But it aids in debugging. I find it painful
to have to scan through HTML for PHP code, so I can fix a problem.

You'll also find that if you have a variety of pages which are all laid
out the same way, it's better to put that HTML in a separate "template"
file. Insert some code in it to display values as needed. Then when you
want to paint a page, simply define the values you want to display, and


This way, if you make a change to the design or look of the site, you
can make that change to one (template) file and it will echo all over
the site. This is particularly important if you're working with
"designers" who don't know HTML but do the work of designing pages.

This is just simple advice based on my experience. Feel free to ignore
it completely if you work better a different way.


Paul M. Foster

PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to