$pages->uncacheAll() method

Remove all pages from the cache (to clear memory)

This method clears all pages that ProcessWire has cached in memory, making room for more pages to be loaded. Use of this method (along with pagination) may be necessary when modifying or calculating from thousand of pages.

Example

// calculate total dollar value of all 50000+ products in inventory
$total = 0;
$start = 0;
$limit = 500;

do {
  $products = $pages->find("template=product, start=$start, limit=$limit");
  if(!$products->count()) break;
  foreach($products as $product) {
    $total += ($product->qty * $product->price);
  }
  unset($products);
  $start += $limit;
  // clear cache to make room for another 500 products
  $pages->uncacheAll();
} while(true);

echo "Total value of all products: $" . number_format($total);

Usage

// basic usage
$int = $pages->uncacheAll();

// usage with all arguments
$int = $pages->uncacheAll(Page $page = null, array $options = []);

Arguments

NameType(s)Description
page (optional)Page

Optional Page that initiated the uncacheAll

options (optional)array

Options to modify default behavior:

  • shallow (bool): By default, this method also calls $page->uncache(). To prevent that call, set this to true.

Return value

int

Number of pages uncached


$pages methods and properties

API reference based on ProcessWire core version 3.0.236

Latest news

  • ProcessWire Weekly #523
    In the 523rd issue of ProcessWire Weekly we'll check out what's new in the core this week, share some new module related news, and more. Read on!
    Weekly.pw / 18 May 2024
  • ProFields Table Field with Actions support
    This week we have some updates for the ProFields table field (FieldtypeTable). These updates are primarily focused on adding new tools for the editor to facilitate input and management of content in a table field.
    Blog / 12 April 2024
  • Subscribe to weekly ProcessWire news

“The end client and designer love the ease at which they can update the website. Training beyond how to log in wasn’t even necessary since ProcessWire’s default interface is straightforward.” —Jonathan Lahijani