2 namespace wcf\system\cache\builder
;
6 * Caches cleanup adapters.
8 * @author Alexander Ebert
9 * @copyright 2001-2011 WoltLab GmbH
10 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
11 * @package com.woltlab.wcf
12 * @subpackage system.cache.builder
13 * @category Community Framework
15 class CleanupAdapterCacheBuilder
implements ICacheBuilder
{
17 * @see wcf\system\cache\ICacheBuilder::getData()
19 public function getData(array $cacheResource) {
21 'adapters' => array(),
22 'objectTypes' => array(),
23 'packageIDs' => array()
26 $sql = "SELECT listener.*, package.packageDir
27 FROM wcf".WCF_N
."_cleanup_listener listener
28 LEFT JOIN wcf".WCF_N
."_package package
29 ON (package.packageID = listener.packageID)";
30 $statement = WCF
::getDB()->prepareStatement($sql);
31 $statement->execute();
32 while ($row = $statement->fetchArray()) {
33 if (!is_array($data['adapters'][$row['objectType']])) $data['adapters'][$row['objectType']] = array();
34 $data['adapters'][$row['objectType']][] = $row;
36 if (!is_array($data['objectTypes'][$row['objectType']])) $data['objectTypes'][$row['objectType']] = array();
37 $data['objectTypes'][$row['objectType']][] = $row['packageID'];
40 $data['objectTypes'] = array_unique($data['objectTypes']);
41 $data['packageIDs'] = array_unique($data['packageIDs']);