Я уже рассказывал об установке pear. Сегодня я представлю один из нескольких известных пакетов pear. Если что-то неясно, найдите на сайте «Учебное пособие по PEAR», чтобы получить предыдущее руководство!
Сегодня мы собираемся представить пакет PEAR Cache_Lite. Глаза веб-разработчиков расширяются, когда они говорят об ускорении, точно так же, как глаза мужчин расширяются, когда они видят потрясающую красоту. Поэтому первое, что я хочу представить здесь, — это пакет PEAR Cache_lite. , вы можете использовать этот пакет для кэширования любой части веб-страницы в соответствии с вашими потребностями, что значительно улучшает скорость создания и загрузки страниц!
Сначала перейдите в список пакетов Pear, чтобы загрузить установочный пакет Cache_Lite. При написании этого руководства стабильной версией является 1.7.2, поэтому мы загружаем эту версию, разархивируем ее после загрузки, а затем помещаем файл в корневой каталог PEAR ( О том, как организовать каталог файлов, будет рассказано позже), а затем мы перейдем к соответствующей главе руководства, чтобы узнать, как его использовать. Сначала вы можете ознакомиться с введением о пакетах. Здесь нет прелюдии, и мы перейдем непосредственно к теме. Ниже приведен пример Cache_Lite::get(). Начнем с этого примера. Я добавил к примеру китайские комментарии.
require_once "Cache/Lite.php";//Это адрес относительно PEAR. Найдя файл Lite.php в только что загруженном пакете, вы должны знать, как развернуть эту папку!
$options=массив(
'cacheDir'=>'/tmp/',//Это путь к кэшу, лучше всего использовать абсолютный путь, который будет объяснен в нашем примере.
'lifeTime'=>7200, //Срок действия кэша в секундах
'pearErrorMode'=>CACHE_LITE_ERROR_DIE//Режим сообщения об ошибках
);
$cache=newCache_Lite($options);//Создаем кеш после установки параметров
if($data=$cache->get('id_of_the_page')){//Если кеш с id=id_of_the_page существует, напрямую вывести кэшированные данные
// Кэш попал!
// Содержимое находится в $data
// (...)
}else{//Если кеш не существует, создайте кеш
// Действительный кеш не найден (необходимо создать и сохранить страницу)
// (...)
}
Прочитав приведенный выше пример, вы считаете его очень простым? На самом деле, ключ к кэшированию заключается не в том, как создавать и удалять кэши, а в том, как сбалансировать отношения между статическими и динамическими кэшами и как перестроить кэш в подходящее время. Позвольте мне начать с примера, который поможет каждому осознать преимущества кэширования! , создайте файловый кеш в папке Tutor (корневой каталог, соответствующий примеру в нашем руководстве). Для операционных систем *nix установите для свойства значение 0777, затем создайте файл кэша в папке Tutor, введите следующий код
<? php
require_once"config.php";
require_once"Cache/Lite.php";
//Следующий код предназначен для расчета времени выполнения страницы и не имеет никакого отношения к кешу.
функцияget_microtime()
{
list($usec,$sec)=explode(' ',microtime());
return((float)$usec+(float)$sec);
}
$s= get_microtime();
//Ниже приведены настройки кэша
$options=массив(
'cacheDir'=> WEB_DIR."/cache/",
//Перейдите к репетитору (корневой каталог, соответствующий примерам в нашем руководстве)
//Создаем файловый кэш,
//*операционная система nix, установите атрибут 0777
'lifeTime'=>10,//время истечения 10 секунд
'pearErrorMode'=>CACHE_LITE_ERROR_DIE
);
$cache=newCache_Lite($options);
$cache_id='cache'; //id должен быть уникальным
//Иначе будет конфликт с чужим кешем.
if($data=$cache->get($cache_id)){
//данные — это результат получения данных, если кэш существует и срок его действия не истек,
//Получаем данные напрямую
эхо$данные;
}еще{
//Иначе создаём кеш
// Ниже мы намеренно используем циклы, чтобы потреблять время
в то время как ($ я <10000000)
$я++;
$data='Время создания кэша:'.date("Ymd H:i:s");
$data.="<p>Время выполнения без кэша: ".(get_microtime()-$s)."секунд";
эхо$данные;
$кэш->сохранить($данные);
}
echo"<p>Текущая страница занимает: ".(get_microtime()-$s)."секунд</p>";
?>
Запустите http://127.0.0.1/tutor/cache.php в браузере, а затем посмотрите, создается ли файл в каталоге кэша. Это очень приятно, не так ли? !
На веб-странице мы обнаружили, что время первого запуска заняло около 1 секунды, а после генерации кеша время составило всего 1/1000 от оригинала. Мне больше не нужно описывать эту эффективность! ! Фактически, общий процесс приведенного выше примера таков: 1. Установить параметры кэша, включая идентификатор кэша. 2. Проверить, существует ли кэш, на основе параметров и идентификатора. Если он существует, данные кэша получаются в $data. переменную, а затем отобразить ее, в противном случае регенерируйте кеш, сохраните результаты страницы в переменной, а затем запишите данные переменной в кеш. Однако этот метод очень неудобен, поскольку мы должны записывать весь вывод в переменную, что на самом деле более хлопотно. Он требует большого количества строковых связей и сложен в обслуживании кода. Конечно, лучше всего рекомендуется использовать простой кеш. Примите этот подход. Но не волнуйтесь, мощный PEAR не настолько умственно отсталый, поэтому он также предоставляет другой способ: получить буфер и извлечь переменные. Давайте рассмотрим этот простой пример. Соответствующая глава руководства находится здесь. .
<?php
require_once"config.php";
require_once"Cache/Lite/Output.php";
//Обратите внимание, что требуемые файлы здесь другие.
$options=массив(
'cacheDir'=> WEB_DIR."/cache/",
'lifeTime'=>10,//время истечения 10 секунд
'pearErrorMode'=>CACHE_LITE_ERROR_DIE
);
$cache=newCache_Lite_Output($options);
$cache_id='obcache';
if(!($cache->start($cache_id))){
//Если его нет, создаем кеш. Если он существует, программа автоматически выведет кеш.
?>
Здесь ты можешь делать все, что захочешь,
Включая выполнение php
Разве не очень удобно, что все запросы к базе данных, включая запросы к базе данных, можно выполнять здесь, если PHP это позволяет?
<?php
$cache->end();//Не забывайте об этом,
//Иначе кеш никогда не будет успешно создан.
//Эта функция выходит из выходного буфера
}
?>
Пойди и посмотри, есть ли в каталоге кэша еще один файл?
На этом введение в кэш завершено. Вот несколько вещей, на которые следует обратить внимание:
1. Идентификатор кэша должен быть уникальным, некоторые параметры могут быть интегрированы.
2. Лучше всего прописать абсолютный путь к кэшу.
3. В этом разделе основное внимание уделяется комментариям.
Кроме того, в моем введении вы можете прочитать соответствующее руководство о том, как удалить кеш. Приведенный выше пример предназначен только для того, чтобы вдохновить других. используйте приведенный выше пример, продолжайте. Операция кэширования не должна вызвать затруднений.