2 namespace wcf\system\cache\builder
;
3 use wcf\data\
object\type\ObjectTypeCache
;
4 use wcf\system\package\PackageDependencyHandler
;
8 * Caches the versions for a certain package and object type.
10 * @author Jeffrey Reichardt
11 * @copyright 2001-2013 WoltLab GmbH
12 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
13 * @package com.woltlab.wcf
14 * @subpackage system.cache.builder
15 * @category Community Framework
17 class VersionCacheBuilder
extends AbstractCacheBuilder
{
19 * @see wcf\system\cache\builder\AbstractCacheBuilder::rebuild()
21 public function rebuild(array $parameters) {
23 $objectTypes = ObjectTypeCache
::getInstance()->getObjectTypes('com.woltlab.wcf.versionableObject');
26 'versions' => array(),
27 'versionIDs' => array()
30 foreach ($objectTypes as $objectTypeID => $objectType) {
31 $processorObject = $objectType->getProcessor();
34 FROM ".$processorObject::getDatabaseVersionTableName();
35 $statement = WCF
::getDB()->prepareStatement($sql);
36 $statement->execute(array());
38 while ($row = $statement->fetchArray()) {
39 $object = new $objectType->className(null, $row);
40 $data['versions'][$objectTypeID][$object->{$processorObject::getDatabaseIndexName()}] = $object;
41 $data['versionIDs'][$objectTypeID][$object->{$processorObject::getDatabaseIndexName()}][] = $object->{$processorObject::getDatabaseVersionTableIndexName()};