3 namespace wcf\data\package
;
5 use wcf\system\cache\builder\PackageCacheBuilder
;
6 use wcf\system\SingletonFactory
;
9 * Manages the package cache.
12 * @copyright 2001-2019 WoltLab GmbH
13 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
14 * @package WoltLabSuite\Core\Data\Package
16 class PackageCache
extends SingletonFactory
19 * list of cached packages
22 protected $packages = [];
27 protected function init()
29 $this->packages
= PackageCacheBuilder
::getInstance()->getData();
33 * Returns a specific package.
35 * @param int $packageID
36 * @return Package|null
38 public function getPackage($packageID)
40 return $this->packages
['packages'][$packageID] ??
null;
44 * Returns the id of a specific package or 'null' if not found.
46 * @param string $package
49 public function getPackageID($package)
51 return $this->packages
['packageIDs'][$package] ??
null;
55 * Returns all packages.
59 public function getPackages()
61 return $this->packages
['packages'];
65 * Returns a specific package.
67 * @param string $package
70 public function getPackageByIdentifier($package)
72 $packageID = $this->getPackageID($package);
73 if ($packageID === null) {
77 return $this->getPackage($packageID);