Add explicit `return null;` statements
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / data / package / PackageCache.class.php
CommitLineData
0c7b8679 1<?php
a9229942 2
0c7b8679 3namespace wcf\data\package;
a9229942 4
b401cd0d 5use wcf\system\cache\builder\PackageCacheBuilder;
0c7b8679
MW
6use wcf\system\SingletonFactory;
7
8/**
9 * Manages the package cache.
a9229942
TD
10 *
11 * @author Marcel Werk
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
0c7b8679 15 */
a9229942
TD
16class PackageCache extends SingletonFactory
17{
18 /**
19 * list of cached packages
20 * @var mixed[][]
21 */
22 protected $packages = [];
23
24 /**
25 * @inheritDoc
26 */
27 protected function init()
28 {
29 $this->packages = PackageCacheBuilder::getInstance()->getData();
30 }
31
32 /**
33 * Returns a specific package.
34 *
35 * @param int $packageID
5227ebc7 36 * @return Package|null
a9229942
TD
37 */
38 public function getPackage($packageID)
39 {
813c41ce 40 return $this->packages['packages'][$packageID] ?? null;
a9229942
TD
41 }
42
43 /**
44 * Returns the id of a specific package or 'null' if not found.
45 *
46 * @param string $package
5227ebc7 47 * @return string|null
a9229942
TD
48 */
49 public function getPackageID($package)
50 {
813c41ce 51 return $this->packages['packageIDs'][$package] ?? null;
a9229942
TD
52 }
53
54 /**
55 * Returns all packages.
56 *
57 * @return Package[]
58 */
59 public function getPackages()
60 {
61 return $this->packages['packages'];
62 }
63
64 /**
65 * Returns a specific package.
66 *
67 * @param string $package
68 * @return Package
69 */
70 public function getPackageByIdentifier($package)
71 {
72 $packageID = $this->getPackageID($package);
73 if ($packageID === null) {
c0b28aa2 74 return null;
a9229942
TD
75 }
76
77 return $this->getPackage($packageID);
78 }
0c7b8679 79}