Правильный способ создания HTML / JS-сайта с помощью PHP - PullRequest
0 голосов
/ 05 января 2012

Я делаю раздел для веб-сайта с изменяемой информацией из панели администратора, но информация не будет сильно меняться, поэтому раздел не должен быть динамичным.Я собираюсь генерировать html при изменении информации, но чтобы хранить все html в одной переменной с "", это становится грязным.Так, может быть, есть другой способ сделать это, так что его более легко обслуживать?

Ответы [ 2 ]

2 голосов
/ 05 января 2012

Просто кеш сайта таким образом, что кеш будет поражен первым:

<?php
ob_start();
?>
<html>
...
Build your page dynamically as usual.
...
</html>
<?php

$site = ob_get_contents();
file_put_contents('webroot/site.html', $site);
ob_end_flush();

Это создает обычную динамическую страницу HTML / PHP и записывает эту страницу в файл .html в webroot, который сразу попадет в следующий раз. В вашем интерфейсе администратора вам просто нужно удалить эту кэшированную версию всякий раз, когда вы обновляете информацию. Вышеуказанный сценарий вызывается только в том случае, если версия .html не существует с помощью правил перезаписи .htaccess, например ::

.
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)\.html$ $1.php [QSA,L]
</IfModule>

Итак, логика работает так:

  • Администратор обновляет содержимое в панели администратора, которое сохраняется где-то
  • пользователь посещает сайт, не существует кэшированной страницы .html, перезапись вызывает приведенный выше PHP-скрипт
  • скрипт создает файл .html и один раз динамически обслуживает страницу
  • следующий пользователь заходит на сайт, получает кэшированную .html версию
  • Администратор обновляет содержимое в админ-панели, кэшированный сайт удаляется
  • промыть, повторить
0 голосов
/ 05 января 2012

Я бы написал «правильный» php-сайт, и если бы производительность была проблемой, я бы использовал кеширующий прокси.Затем, если проблема с неверным кешем, я бы использовал / разработал какой-нибудь инструмент, который может сделать недействительным кеш, когда кто-то сохраняет то же самое у администратора.

I настоятельно предлагает вам использовать фреймворк.Я обычно использую Zend Framework, потому что знаю это очень хорошо.

Вы также можете использовать symfony или yii.Поиск, сравнение, выбор;)

...