Jak zrobi prosty cache strony, która jest oparta w technologii PHP

Aby stworzyć prosty system cache dla strony internetowej opartej na HTML, CSS, PHP i MySQL, możesz wykorzystać pliki do przechowywania zbuforowanych danych lub zastosować mechanizm buforowania w pamięci, jak APCu lub Memcached. W tej odpowiedzi skupię się na prostym podejściu z użyciem plików.

Krok 1: Ustal, co chcesz cache’ować

Zdecyduj, które dane chcesz zbuforować. Na przykład, może to być wynik zapytania do bazy danych lub wygenerowany HTML.

Krok 2: Utwórz plik cache

Możesz tworzyć pliki cache, które będą przechowywały dane na dysku. Przykładowo, załóżmy, że chcesz zbuforować wynik zapytania do bazy danych.

Krok 3: Stwórz funkcję do zarządzania cache

Oto przykładowa funkcja, która zarządza cache:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
function getCache($cacheKey, $cacheTime = 3600) {
$cacheFile = 'cache/' . md5($cacheKey) . '.cache';
// Sprawdź, czy plik cache istnieje i czy jest aktualny
if (file_exists($cacheFile) && (time() - filemtime($cacheFile)) < $cacheTime) {
// Wczytaj dane z pliku cache
return file_get_contents($cacheFile);
}
return false; // Cache nie istnieje lub jest przestarzałe
}
function setCache($cacheKey, $data) {
$cacheFile = 'cache/' . md5($cacheKey) . '.cache';
// Zapisz dane do pliku cache
file_put_contents($cacheFile, $data);
}
function getCache($cacheKey, $cacheTime = 3600) { $cacheFile = 'cache/' . md5($cacheKey) . '.cache'; // Sprawdź, czy plik cache istnieje i czy jest aktualny if (file_exists($cacheFile) && (time() - filemtime($cacheFile)) < $cacheTime) { // Wczytaj dane z pliku cache return file_get_contents($cacheFile); } return false; // Cache nie istnieje lub jest przestarzałe } function setCache($cacheKey, $data) { $cacheFile = 'cache/' . md5($cacheKey) . '.cache'; // Zapisz dane do pliku cache file_put_contents($cacheFile, $data); }
function getCache($cacheKey, $cacheTime = 3600) {
    $cacheFile = 'cache/' . md5($cacheKey) . '.cache';

    // Sprawdź, czy plik cache istnieje i czy jest aktualny
    if (file_exists($cacheFile) && (time() - filemtime($cacheFile)) < $cacheTime) {
        // Wczytaj dane z pliku cache
        return file_get_contents($cacheFile);
    }

    return false; // Cache nie istnieje lub jest przestarzałe
}

function setCache($cacheKey, $data) {
    $cacheFile = 'cache/' . md5($cacheKey) . '.cache';
    
    // Zapisz dane do pliku cache
    file_put_contents($cacheFile, $data);
}

Krok 4: Użyj cache w swoim kodzie

Możesz teraz używać tej funkcji w swoim kodzie PHP. Przykład, jak zbuforować wyniki zapytania do bazy danych:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$cacheKey = 'my_query_cache'; // Klucz cache
$cachedData = getCache($cacheKey);
if ($cachedData !== false) {
// Użyj zbuforowanych danych
echo $cachedData;
} else {
// Wykonaj zapytanie do bazy danych
$query = "SELECT * FROM my_table";
$result = mysqli_query($connection, $query);
$data = '';
while ($row = mysqli_fetch_assoc($result)) {
$data .= "<div>{$row['column_name']}</div>"; // Przykładowe wyświetlanie danych
}
// Zapisz dane do cache
setCache($cacheKey, $data);
// Wyświetl dane
echo $data;
}
$cacheKey = 'my_query_cache'; // Klucz cache $cachedData = getCache($cacheKey); if ($cachedData !== false) { // Użyj zbuforowanych danych echo $cachedData; } else { // Wykonaj zapytanie do bazy danych $query = "SELECT * FROM my_table"; $result = mysqli_query($connection, $query); $data = ''; while ($row = mysqli_fetch_assoc($result)) { $data .= "<div>{$row['column_name']}</div>"; // Przykładowe wyświetlanie danych } // Zapisz dane do cache setCache($cacheKey, $data); // Wyświetl dane echo $data; }
$cacheKey = 'my_query_cache'; // Klucz cache
$cachedData = getCache($cacheKey);

if ($cachedData !== false) {
    // Użyj zbuforowanych danych
    echo $cachedData;
} else {
    // Wykonaj zapytanie do bazy danych
    $query = "SELECT * FROM my_table";
    $result = mysqli_query($connection, $query);
    
    $data = '';
    while ($row = mysqli_fetch_assoc($result)) {
        $data .= "<div>{$row['column_name']}</div>"; // Przykładowe wyświetlanie danych
    }

    // Zapisz dane do cache
    setCache($cacheKey, $data);
    
    // Wyświetl dane
    echo $data;
}

Krok 5: Tworzenie folderu cache

Upewnij się, że masz folder cache w swoim projekcie, do którego PHP ma prawo zapisu. Możesz to zrobić za pomocą polecenia w terminalu:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
mkdir cache
chmod 777 cache
mkdir cache chmod 777 cache
mkdir cache
chmod 777 cache

Krok 6: Ustalenie czasu życia cache

Wartość $cacheTime w funkcji getCache() określa czas życia cache w sekundach. Możesz dostosować ten czas w zależności od tego, jak często zmieniają się dane w Twojej aplikacji.

Podsumowanie

To prosty sposób na wdrożenie mechanizmu cache w aplikacji opartej na PHP i MySQL. Użycie plików cache może znacznie przyspieszyć czas ładowania strony, ponieważ zmniejsza liczbę zapytań do bazy danych. W przypadku większych aplikacji lub większego obciążenia, rozważ użycie bardziej zaawansowanych rozwiązań, takich jak Redis czy Memcached.

Szukasz taniego i dobrego hostingu dla swojej strony www? - Sprawdź Seohost.pl