Любая проблема с использованием включает в себя для всего, кроме конкретного контента? - PullRequest
0 голосов
/ 25 июня 2009

Я занимаюсь разработкой сайта, который довольно легкий по интерфейсу и в основном базируется на базе данных (равное количество операций чтения и записи). Он написан на PHP, и я нашел самый простой способ сделать каждую страницу:

Страница:

<?php include("header-nav.php"); ?>
  <table>
    <tr>
      <th>Column 1</th>
      <th>Column 2</th>
    </tr>
    <tr>
      <td>Data Point 1</td>
      <td>Data Point 2</td>
    </tr>
    <tr>
      <td>Data Point 3</td>
      <td>Data Point 4</td>
    </tr>
  </table>
<?php include("footer.php"); ?>

заголовок-nav.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Welcome</title>
    <link rel="stylesheet" type="text/css" href="assets/style.css" />
  </head>
  <?php include("db_connect.php"); ?>
  <body>
    <div id="wrapper">
      <h1>Welcome</h1>
      <ul id="nav">
        <li><a href="index.php">Home</a></li>
        <li><a href="data.php">Data</a></li>
      </ul>

footer.php:

    </div>
  </body>
  <?php mysql_close($dbc); ?>
</html>

Все эти страницы сами по себе недействительны и могут привести к ошибкам. Работая вместе, чтобы создать целую страницу, они отлично выглядят.

Мой вопрос: Это будет эффективное и простое в обслуживании решение?

Кажется, что просто добавление пары включает (один сверху и один снизу) имеет смысл. Тем более, что сайт настолько легкий, что мне не нужен веб-фреймворк. Просто неудобно создавать страницы, не начиная с <html><head> ... и т. Д.

Ответы [ 4 ]

2 голосов
/ 25 июня 2009

Это определенно нормально. Я очень рекомендую это. Таким образом, если вам нужно изменить заголовок или что-то еще, вы можете легко сделать это в одном месте. И время чтения для попадания в файловую систему для включения действительно не является большой проблемой. Поэтому я бы сказал, что это определенно приемлемо.

1 голос
/ 25 июня 2009

«Все эти страницы сами по себе недействительны» - я не уверен, что вы подразумеваете под этим. Вы имеете в виду, что HTML Validator не пройдет их? Ну, конечно, нет - это фрагменты страниц. Важно то, что говорит валидатор, когда работает с HTML, который генерирует исполняемый PHP.

Это один из подходов, и в зависимости от масштаба решаемой вами проблемы, он является правильным.

0 голосов
/ 25 июня 2009

Преодолейте дискомфорт. Большинство IDE (Dreamweaver приходит на ум) на самом деле поддерживают этот способ разработки сайтов и будут корректно отображать контент и учитывать включения, если вы предпочитаете WYSIWYG.

Я занимаюсь разработкой сайтов, используя, например,

site-header.inc:

require_once 'html-header.inc';
<div id="header">
/* menus, navigation, etc. */
</div>
<div class="content">

site-footer.inc:

</div>
<div id="header">
/* menus, navigation, etc. */
</div>
require_once 'html-footer.inc';

Где "html-header.inc" и "html-footer.inc" - это теги и элементы верхнего и нижнего колонтитула HTML (заголовок, мета и т. Д.). Затем у меня есть функции, позволяющие мне добавлять CSS, JavaScript, заголовки в любое место на странице и использовать ob_start() и ob_end_flush(), чтобы обрабатывать их в самом нижнем колонтитуле. например,

stylesheet_register($path, $media="screen", $type="text/css");
javascript_register($path, $type="text/javascript");
title_set($title, $overwrite=true);

Это ваша основная концепция абстракции: не пишите один и тот же HTML-код "header" и "footer" дважды. То же самое относится к любой функциональности PHP, которая может быть легко удалена и отделена. Желаем удачи.

0 голосов
/ 25 июня 2009

Да, IMO, это отличный способ сделать что-то, особенно для небольшого сайта. Сам много раз делал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...