diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 6040e68a17d..42d24cf34e7 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -84,18 +84,6 @@ parameters: count: 2 path: wcfsetup/install/files/lib/data/comment/CommentAction.class.php - - - message: '#^Property wcf\\data\\comment\\response\\CommentResponseAction\:\:\$response \(wcf\\data\\comment\\response\\CommentResponse\) does not accept wcf\\data\\comment\\response\\CommentResponseEditor\.$#' - identifier: assign.propertyType - count: 1 - path: wcfsetup/install/files/lib/data/comment/response/CommentResponseAction.class.php - - - - message: '#^Property wcf\\data\\style\\StyleAction\:\:\$style \(wcf\\data\\style\\Style\) does not accept wcf\\data\\style\\StyleEditor\.$#' - identifier: assign.propertyType - count: 1 - path: wcfsetup/install/files/lib/data/style/StyleAction.class.php - - message: '#^While loop condition is always true\.$#' identifier: while.alwaysTrue @@ -108,18 +96,6 @@ parameters: count: 1 path: wcfsetup/install/files/lib/form/LostPasswordForm.class.php - - - message: '#^Negated boolean expression is always true\.$#' - identifier: booleanNot.alwaysTrue - count: 1 - path: wcfsetup/install/files/lib/page/AbstractPage.class.php - - - - message: '#^Strict comparison using \=\=\= between int and ''og\:description'' will always evaluate to false\.$#' - identifier: identical.alwaysFalse - count: 1 - path: wcfsetup/install/files/lib/page/AbstractPage.class.php - - message: '#^Instanceof between wcf\\data\\search\\ISearchResultObject and wcf\\data\\search\\ISearchResultObject will always evaluate to true\.$#' identifier: instanceof.alwaysTrue @@ -402,12 +378,6 @@ parameters: count: 1 path: wcfsetup/install/files/lib/system/condition/AbstractMultiSelectCondition.class.php - - - message: '#^PHPDoc type array of property wcf\\system\\condition\\AbstractMultiSelectCondition\:\:\$fieldValue is not covariant with PHPDoc type string of overridden property wcf\\system\\condition\\AbstractSelectCondition\:\:\$fieldValue\.$#' - identifier: property.phpDocType - count: 1 - path: wcfsetup/install/files/lib/system/condition/AbstractMultiSelectCondition.class.php - - message: '#^Parameter \#2 \$array of function implode expects array\|null, string given\.$#' identifier: argument.type @@ -780,12 +750,6 @@ parameters: count: 2 path: wcfsetup/install/files/lib/system/form/builder/container/wysiwyg/WysiwygFormContainer.class.php - - - message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#' - identifier: function.alreadyNarrowedType - count: 2 - path: wcfsetup/install/files/lib/system/form/builder/data/FormDataHandler.class.php - - message: '#^Call to function is_bool\(\) with string will always evaluate to false\.$#' identifier: function.impossibleType @@ -1017,7 +981,7 @@ parameters: - message: '#^Call to function is_numeric\(\) with float\|int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType - count: 7 + count: 2 path: wcfsetup/install/files/lib/system/form/builder/field/UploadFormField.class.php - @@ -1045,7 +1009,7 @@ parameters: path: wcfsetup/install/files/lib/system/form/builder/field/acl/AclFormField.class.php - - message: '#^Instanceof between wcf\\data\\DatabaseObjectList and wcf\\data\\DatabaseObjectList will always evaluate to true\.$#' + message: '#^Instanceof between wcf\\data\\DatabaseObjectList and wcf\\data\\DatabaseObjectList will always evaluate to true\.$#' identifier: instanceof.alwaysTrue count: 1 path: wcfsetup/install/files/lib/system/form/builder/field/dependency/ValueFormFieldDependency.class.php @@ -1183,7 +1147,7 @@ parameters: path: wcfsetup/install/files/lib/system/label/object/AbstractLabelObjectHandler.class.php - - message: '#^Call to an undefined method wcf\\data\\DatabaseObjectList\:\:getAttachmentList\(\)\.$#' + message: '#^Call to an undefined method wcf\\data\\DatabaseObjectList\:\:getAttachmentList\(\)\.$#' identifier: method.notFound count: 1 path: wcfsetup/install/files/lib/system/message/QuickReplyManager.class.php @@ -1293,13 +1257,13 @@ parameters: - message: '#^Call to function assert\(\) with true will always evaluate to true\.$#' identifier: function.alreadyNarrowedType - count: 1 + count: 2 path: wcfsetup/install/files/lib/system/package/plugin/ACPMenuPackageInstallationPlugin.class.php - message: '#^Instanceof between DOMElement and DOMElement will always evaluate to true\.$#' identifier: instanceof.alwaysTrue - count: 1 + count: 2 path: wcfsetup/install/files/lib/system/package/plugin/ACPMenuPackageInstallationPlugin.class.php - @@ -1311,13 +1275,13 @@ parameters: - message: '#^Call to function assert\(\) with true will always evaluate to true\.$#' identifier: function.alreadyNarrowedType - count: 1 + count: 2 path: wcfsetup/install/files/lib/system/package/plugin/UserMenuPackageInstallationPlugin.class.php - message: '#^Instanceof between DOMElement and DOMElement will always evaluate to true\.$#' identifier: instanceof.alwaysTrue - count: 1 + count: 2 path: wcfsetup/install/files/lib/system/package/plugin/UserMenuPackageInstallationPlugin.class.php - diff --git a/phpstan.neon b/phpstan.neon index 48c845db327..8f7a3ea04e3 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -2,7 +2,7 @@ includes: - phpstan-baseline.neon parameters: - level: 5 + level: 6 paths: - wcfsetup/install/files excludePaths: @@ -12,6 +12,7 @@ parameters: - constants.php ignoreErrors: - identifier: match.unhandled + - identifier: method.unused - identifier: new.static - identifier: trait.unused universalObjectCratesClasses: diff --git a/wcfsetup/install/files/lib/acp/action/DashboardConfigureAction.class.php b/wcfsetup/install/files/lib/acp/action/DashboardConfigureAction.class.php index eaa7e96cc22..d05ff336c79 100644 --- a/wcfsetup/install/files/lib/acp/action/DashboardConfigureAction.class.php +++ b/wcfsetup/install/files/lib/acp/action/DashboardConfigureAction.class.php @@ -24,6 +24,15 @@ final class DashboardConfigureAction implements RequestHandlerInterface { private AcpDashboard $dashboard; + + /** + * @var array + */ private array $userConfiguration; public function __construct() @@ -88,6 +97,9 @@ private function getForm(): Psr15DialogForm return $form; } + /** + * @return list + */ private function getSelectedBoxNames(): array { $selectedBoxNames = []; @@ -111,6 +123,9 @@ private function getConfigurationFormField(): MultipleSelectionFormField }; } + /** + * @return array + */ private function getBoxOptions(): array { $options = []; @@ -123,6 +138,9 @@ private function getBoxOptions(): array return $options; } + /** + * @param array &$options + */ private function sortBoxOptions(array &$options): void { \uksort($options, function (string $boxNameA, string $boxNameB) { diff --git a/wcfsetup/install/files/lib/acp/action/FullLogoutAction.class.php b/wcfsetup/install/files/lib/acp/action/FullLogoutAction.class.php index 4e2da709288..4ade49dd611 100644 --- a/wcfsetup/install/files/lib/acp/action/FullLogoutAction.class.php +++ b/wcfsetup/install/files/lib/acp/action/FullLogoutAction.class.php @@ -19,7 +19,7 @@ final class FullLogoutAction extends LogoutAction /** * @inheritDoc */ - public function execute() + public function execute(): RedirectResponse { AbstractSecureAction::execute(); diff --git a/wcfsetup/install/files/lib/acp/action/TagSynonymAction.class.php b/wcfsetup/install/files/lib/acp/action/TagSynonymAction.class.php index 4cdf9912e25..987eb412756 100644 --- a/wcfsetup/install/files/lib/acp/action/TagSynonymAction.class.php +++ b/wcfsetup/install/files/lib/acp/action/TagSynonymAction.class.php @@ -81,6 +81,9 @@ public function handle(ServerRequestInterface $request): ResponseInterface } } + /** + * @param Tag[] $tags + */ private function getForm(array $tags): Psr15DialogForm { $form = new Psr15DialogForm( diff --git a/wcfsetup/install/files/lib/acp/action/UninstallPackageAction.class.php b/wcfsetup/install/files/lib/acp/action/UninstallPackageAction.class.php index 168b1582632..c7e2d1067bb 100644 --- a/wcfsetup/install/files/lib/acp/action/UninstallPackageAction.class.php +++ b/wcfsetup/install/files/lib/acp/action/UninstallPackageAction.class.php @@ -75,7 +75,7 @@ public function readParameters() } } - public function execute() + public function execute(): ResponseInterface { parent::execute(); diff --git a/wcfsetup/install/files/lib/acp/action/UserExportGdprAction.class.php b/wcfsetup/install/files/lib/acp/action/UserExportGdprAction.class.php index e10f4e1bcc6..41943ca66dc 100644 --- a/wcfsetup/install/files/lib/acp/action/UserExportGdprAction.class.php +++ b/wcfsetup/install/files/lib/acp/action/UserExportGdprAction.class.php @@ -3,6 +3,7 @@ namespace wcf\acp\action; use Laminas\Diactoros\Response\JsonResponse; +use Psr\Http\Message\ResponseInterface; use wcf\action\AbstractAction; use wcf\data\package\PackageCache; use wcf\data\user\cover\photo\DefaultUserCoverPhoto; @@ -35,7 +36,7 @@ final class UserExportGdprAction extends AbstractAction /** * export data * - * @var array + * @var mixed[] */ public $data = []; @@ -149,7 +150,7 @@ public function readParameters() /** * @inheritDoc */ - public function execute() + public function execute(): ResponseInterface { // you MUST NOT use the `execute` event to provide data, use `export` (see below) instead! parent::execute(); @@ -249,7 +250,7 @@ public function execute() * @param string $ipAddressColumn * @param string $timeColumn * @param string $userIDColumn - * @return array + * @return mixed[] */ public function exportIpAddresses($databaseTable, $ipAddressColumn, $timeColumn, $userIDColumn) { @@ -263,6 +264,11 @@ public function exportIpAddresses($databaseTable, $ipAddressColumn, $timeColumn, return $this->fetchIpAddresses($statement, $ipAddressColumn, $timeColumn); } + /** + * @param string $tableName + * @param string $userIDColumn + * @return mixed[] + */ protected function dumpTable($tableName, $userIDColumn) { $sql = "SELECT * @@ -279,6 +285,11 @@ protected function dumpTable($tableName, $userIDColumn) return $data; } + /** + * @param string $ipAddressColumn + * @param string $timeColumn + * @return array{ipAddress: string, time: mixed}[] + */ protected function fetchIpAddresses(PreparedStatement $statement, $ipAddressColumn, $timeColumn) { $ipAddresses = []; @@ -297,6 +308,9 @@ protected function fetchIpAddresses(PreparedStatement $statement, $ipAddressColu return $ipAddresses; } + /** + * @return array{session: mixed[], acpSessionLog: mixed[]} + */ protected function exportSessionIpAddresses() { $data = [ @@ -323,6 +337,9 @@ protected function exportSessionIpAddresses() return $data; } + /** + * @return array + */ protected function exportUser() { $data = ['languageCode' => $this->user->getLanguage()->getFixedLanguageCode()]; @@ -351,6 +368,9 @@ protected function exportUser() return $data; } + /** + * @return mixed[] + */ protected function exportUserOptions() { $optionHandler = new UserOptionHandler(false, '', ''); @@ -365,6 +385,11 @@ protected function exportUserOptions() return $data; } + /** + * @param mixed[] &$data + * @param mixed[] $optionTree + * @return void + */ protected function exportUserOptionCategory(array &$data, array $optionTree) { if (!empty($optionTree['options'])) { diff --git a/wcfsetup/install/files/lib/acp/action/UserQuickSearchAction.class.php b/wcfsetup/install/files/lib/acp/action/UserQuickSearchAction.class.php index 51adbbece62..6ae51316e1f 100644 --- a/wcfsetup/install/files/lib/acp/action/UserQuickSearchAction.class.php +++ b/wcfsetup/install/files/lib/acp/action/UserQuickSearchAction.class.php @@ -83,7 +83,7 @@ public function readParameters() /** * @inheritDoc */ - public function execute() + public function execute(): RedirectResponse { ACPMenu::getInstance()->setActiveMenuItem('wcf.acp.menu.link.user.search'); diff --git a/wcfsetup/install/files/lib/acp/action/WorkerProxyAction.class.php b/wcfsetup/install/files/lib/acp/action/WorkerProxyAction.class.php index 413e8c2abb7..f72c6d4d582 100644 --- a/wcfsetup/install/files/lib/acp/action/WorkerProxyAction.class.php +++ b/wcfsetup/install/files/lib/acp/action/WorkerProxyAction.class.php @@ -32,7 +32,7 @@ final class WorkerProxyAction extends AJAXInvokeAction /** * parameters for worker action - * @var array + * @var array */ protected $parameters = []; @@ -42,6 +42,9 @@ final class WorkerProxyAction extends AJAXInvokeAction */ protected $worker; + /** + * @var string[] + */ public static $allowInvoke = []; /** @@ -66,6 +69,8 @@ public function readParameters() /** * Validates class name. + * + * @return void */ protected function validate() { @@ -112,8 +117,9 @@ public function execute() * Sends a JSON-encoded response. * * @param int $progress - * @param array $parameters + * @param ?array $parameters * @param string $proceedURL + * @return void */ protected function sendResponse($progress = 0, ?array $parameters = null, $proceedURL = '') { diff --git a/wcfsetup/install/files/lib/acp/form/AbstractAcpForm.class.php b/wcfsetup/install/files/lib/acp/form/AbstractAcpForm.class.php index abf15ef171f..6f75514d1e2 100644 --- a/wcfsetup/install/files/lib/acp/form/AbstractAcpForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/AbstractAcpForm.class.php @@ -34,7 +34,7 @@ abstract class AbstractAcpForm extends AbstractForm /** * Registers a new i18n value. * - * @param I18nValue $value + * @return void */ public function registerI18nValue(I18nValue $value) { @@ -106,7 +106,7 @@ public function validate() /** * Reads the i18n data for the given object. * - * @param DatabaseObject $databaseObject + * @return void */ public function readDataI18n(DatabaseObject $databaseObject) { @@ -159,8 +159,10 @@ public function beforeSaveI18n(DatabaseObject $databaseObject) * Saves the i18n data for the given database object after the given database * object has been created. * - * @param DatabaseObject $databaseObject + * @template TDatabaseObject of DatabaseObject + * @param TDatabaseObject $databaseObject * @param string $editorClass + * @return void */ public function saveI18n(DatabaseObject $databaseObject, $editorClass) { @@ -182,7 +184,7 @@ public function saveI18n(DatabaseObject $databaseObject, $editorClass) } if (!empty($data)) { - /** @var DatabaseObjectEditor $editor */ + /** @var DatabaseObjectEditor $editor */ $editor = new $editorClass($databaseObject); $editor->update($data); } @@ -190,6 +192,8 @@ public function saveI18n(DatabaseObject $databaseObject, $editorClass) /** * Resets the form values and calls the saved event. + * + * @return void */ public function reset() { diff --git a/wcfsetup/install/files/lib/acp/form/AbstractBulkProcessingForm.class.php b/wcfsetup/install/files/lib/acp/form/AbstractBulkProcessingForm.class.php index 12ef7a56855..93d88428d73 100644 --- a/wcfsetup/install/files/lib/acp/form/AbstractBulkProcessingForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/AbstractBulkProcessingForm.class.php @@ -42,6 +42,7 @@ abstract class AbstractBulkProcessingForm extends AbstractForm /** * list with bulk processed objects * @var \wcf\data\DatabaseObjectList + * @phpstan-ignore missingType.generics */ public $objectList; @@ -168,7 +169,10 @@ public function readFormParameters() */ public function save() { - $this->objectList = $this->actions[$this->action]->getProcessor()->getObjectList(); + $action = $this->actions[$this->action]->getProcessor(); + \assert($action instanceof AbstractBulkProcessingAction); + + $this->objectList = $action->getObjectList(); parent::save(); @@ -182,8 +186,6 @@ public function save() } } - $action = $this->actions[$this->action]->getProcessor(); - /** @var AbstractBulkProcessingAction $action */ if ($action->canRunInWorker()) { $this->objectList->readObjectIDs(); diff --git a/wcfsetup/install/files/lib/acp/form/AbstractCategoryAddForm.class.php b/wcfsetup/install/files/lib/acp/form/AbstractCategoryAddForm.class.php index bcfa10476b5..e66f0a4a581 100644 --- a/wcfsetup/install/files/lib/acp/form/AbstractCategoryAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/AbstractCategoryAddForm.class.php @@ -42,7 +42,7 @@ abstract class AbstractCategoryAddForm extends AbstractForm /** * additional category data - * @var array + * @var array */ public $additionalData = []; @@ -173,6 +173,8 @@ public function assignVariables() /** * Checks if the active user has the needed permissions to add a new category. + * + * @return void */ protected function checkCategoryPermissions() { @@ -183,6 +185,8 @@ protected function checkCategoryPermissions() /** * Reads the categories. + * + * @return void */ protected function readCategories() { @@ -360,7 +364,7 @@ public function validate() } /** - * @inheritDoc + * @return void */ protected function validateParentCategory() { diff --git a/wcfsetup/install/files/lib/acp/form/AbstractCustomOptionForm.class.php b/wcfsetup/install/files/lib/acp/form/AbstractCustomOptionForm.class.php index 7edccad7ccd..1784a8eb19c 100644 --- a/wcfsetup/install/files/lib/acp/form/AbstractCustomOptionForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/AbstractCustomOptionForm.class.php @@ -242,7 +242,7 @@ public function readData() /** * Returns the list of database values including additional fields. * - * @return array + * @return array */ protected function getDatabaseValues() { @@ -262,7 +262,8 @@ protected function getDatabaseValues() /** * Returns additional parameters passed to the database object action object. * - * @since 5.4 + * @return array + * @since 5.4 */ protected function getActionParameters(): array { diff --git a/wcfsetup/install/files/lib/acp/form/AbstractOptionListForm.class.php b/wcfsetup/install/files/lib/acp/form/AbstractOptionListForm.class.php index ea015a4e4a4..f6bbb57d256 100755 --- a/wcfsetup/install/files/lib/acp/form/AbstractOptionListForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/AbstractOptionListForm.class.php @@ -4,6 +4,7 @@ use wcf\form\AbstractForm; use wcf\system\exception\UserInputException; +use wcf\system\option\IOptionHandler; use wcf\system\option\OptionHandler; /** @@ -12,6 +13,8 @@ * @author Marcel Werk * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @template-covariant TOptionHandler of IOptionHandler */ abstract class AbstractOptionListForm extends AbstractForm { @@ -39,7 +42,8 @@ abstract class AbstractOptionListForm extends AbstractForm /** * option handler object - * @var \wcf\system\option\IOptionHandler + * @var TOptionHandler + * @phpstan-ignore generics.variance */ public $optionHandler; @@ -72,6 +76,8 @@ public function readParameters() /** * Initializes the option handler. + * + * @return void */ protected function initOptionHandler() { diff --git a/wcfsetup/install/files/lib/acp/form/ApplicationManagementForm.class.php b/wcfsetup/install/files/lib/acp/form/ApplicationManagementForm.class.php index d95609f2c4c..bb7f611f376 100644 --- a/wcfsetup/install/files/lib/acp/form/ApplicationManagementForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ApplicationManagementForm.class.php @@ -5,6 +5,7 @@ use wcf\data\application\ViewableApplicationList; use wcf\data\page\Page; use wcf\data\page\PageList; +use wcf\data\page\PageNode; use wcf\data\page\PageNodeTree; use wcf\form\AbstractForm; use wcf\system\application\ApplicationHandler; @@ -61,7 +62,7 @@ final class ApplicationManagementForm extends AbstractForm /** * nested list of page nodes - * @var \RecursiveIteratorIterator + * @var \RecursiveIteratorIterator */ public $pageNodeList; diff --git a/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php b/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php index 6024d06910a..94722df4c44 100644 --- a/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/ArticleAddForm.class.php @@ -202,7 +202,7 @@ class ArticleAddForm extends AbstractForm /** * maps the label group ids to the article category ids - * @var array + * @var array> */ public $labelGroupsToCategories = []; @@ -258,6 +258,8 @@ public function readParameters() /** * Reads basic article parameters controlling i18n. + * + * @return void */ protected function readMultilingualSetting() { @@ -352,6 +354,8 @@ public function readFormParameters() /** * Reads the box images. + * + * @return void */ protected function readImages() { @@ -477,6 +481,8 @@ public function validate() /** * Validates the selected labels. + * + * @return void */ protected function validateLabelIDs() { @@ -638,6 +644,8 @@ public function readData() /** * Sets the default values of properties. + * + * @return void */ protected function setDefaultValues() { diff --git a/wcfsetup/install/files/lib/acp/form/BBCodeAddForm.class.php b/wcfsetup/install/files/lib/acp/form/BBCodeAddForm.class.php index d42dfa63b2f..3d547ccac4d 100644 --- a/wcfsetup/install/files/lib/acp/form/BBCodeAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/BBCodeAddForm.class.php @@ -157,6 +157,8 @@ public function readFormParameters() /** * Reads the form parameter for the button label. + * + * @return void */ protected function readButtonLabelFormParameter() { @@ -225,6 +227,8 @@ public function validate() /** * Validates the bbcode tag usage. + * + * @return void * @throws UserInputException */ protected function validateBBCodeTagUsage() diff --git a/wcfsetup/install/files/lib/acp/form/BoxAddForm.class.php b/wcfsetup/install/files/lib/acp/form/BoxAddForm.class.php index cf5dc35ab78..c11c85c77a0 100644 --- a/wcfsetup/install/files/lib/acp/form/BoxAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/BoxAddForm.class.php @@ -10,6 +10,7 @@ use wcf\data\object\type\ObjectType; use wcf\data\object\type\ObjectTypeCache; use wcf\data\page\Page; +use wcf\data\page\PageNode; use wcf\data\page\PageNodeTree; use wcf\data\smiley\SmileyCache; use wcf\form\AbstractForm; @@ -173,13 +174,13 @@ class BoxAddForm extends AbstractForm /** * nested list of page nodes - * @var \RecursiveIteratorIterator + * @var \RecursiveIteratorIterator */ public $pageNodeList; /** * acl values - * @var array + * @var mixed[] */ public $aclValues = []; @@ -195,7 +196,7 @@ class BoxAddForm extends AbstractForm /** * list of available positions per box handler - * @var array + * @var array */ public $availableBoxPositions = []; @@ -275,6 +276,8 @@ public function readParameters() /** * Loads available box positions per box controller. + * + * @return void */ protected function readBoxPositions() { @@ -288,7 +291,8 @@ protected function readBoxPositions() /** * Reads basic page parameters controlling type and i18n. * - * @throws IllegalLinkException + * @return void + * @throws IllegalLinkException */ protected function readBoxType() { @@ -412,6 +416,8 @@ private function readConditions(): void /** * Reads the box images. + * + * @return void */ protected function readBoxImages() { @@ -555,6 +561,8 @@ public function validate() /** * Validates box name. + * + * @return void */ protected function validateName() { @@ -568,6 +576,8 @@ protected function validateName() /** * Validates the selected box position. + * + * @return void */ protected function validateBoxPosition() { @@ -786,6 +796,9 @@ public function readData() * This is a helper method to convert groupedConditionObjectTypes to a flat list. * This method should not be used for any other purpose! * + * @template T of object + * @param T[]|T[][] $array + * @return T[] * @since 5.5 */ protected function toFlatList(array $array): array diff --git a/wcfsetup/install/files/lib/acp/form/DataImportForm.class.php b/wcfsetup/install/files/lib/acp/form/DataImportForm.class.php index 11b19e3f59f..ff1a9c17bb8 100644 --- a/wcfsetup/install/files/lib/acp/form/DataImportForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/DataImportForm.class.php @@ -4,6 +4,7 @@ use wcf\acp\action\CacheClearAction; use wcf\data\application\Application; +use wcf\data\object\type\ObjectType; use wcf\data\object\type\ObjectTypeCache; use wcf\form\AbstractForm; use wcf\system\application\ApplicationHandler; @@ -26,7 +27,7 @@ class DataImportForm extends AbstractForm { /** * additional data - * @var array + * @var mixed[] */ public $additionalData = []; @@ -42,7 +43,7 @@ class DataImportForm extends AbstractForm /** * list of available exporters - * @var array + * @var array */ public $exporters = []; @@ -66,13 +67,13 @@ class DataImportForm extends AbstractForm /** * list of supported data types - * @var array + * @var array */ public $supportedData = []; /** * selected data types - * @var array + * @var string[] */ public $selectedData = []; diff --git a/wcfsetup/install/files/lib/acp/form/DevtoolsProjectAddForm.class.php b/wcfsetup/install/files/lib/acp/form/DevtoolsProjectAddForm.class.php index d78540136df..be5d2f406fb 100644 --- a/wcfsetup/install/files/lib/acp/form/DevtoolsProjectAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/DevtoolsProjectAddForm.class.php @@ -1013,8 +1013,8 @@ public function save() /** * Writes the updated `package.xml` file for the given project using the given data. * - * @param DevtoolsProject $project - * @param array $data + * @param mixed[] $data + * @return void */ protected function writePackageXml(DevtoolsProject $project, array $data) { diff --git a/wcfsetup/install/files/lib/acp/form/DevtoolsProjectEditForm.class.php b/wcfsetup/install/files/lib/acp/form/DevtoolsProjectEditForm.class.php index 35ec431286e..81cba14701f 100644 --- a/wcfsetup/install/files/lib/acp/form/DevtoolsProjectEditForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/DevtoolsProjectEditForm.class.php @@ -255,7 +255,7 @@ protected function setFormObjectData() foreach ($requirements as $requirement) { $requirementData[] = [ 'file' => isset($requirement['file']) ? 1 : 0, - 'minVersion' => $requirement['minversion'] ?? '', + 'minVersion' => $requirement['minversion'], 'packageIdentifier' => $requirement['name'], ]; } @@ -271,7 +271,7 @@ protected function setFormObjectData() foreach ($exclusions as $exclusion) { $exclusionData[] = [ 'packageIdentifier' => $exclusion['name'], - 'version' => $exclusion['version'] ?? '', + 'version' => $exclusion['version'], ]; } @@ -334,6 +334,10 @@ protected function setFormObjectData() $instructionsField->value($instructions); } + /** + * @param bool $available + * @return void + */ protected function tooglePackageXmlFieldAvailabilty($available) { /** @var TabMenuFormContainer $tabMenu */ diff --git a/wcfsetup/install/files/lib/acp/form/DevtoolsProjectPipEntryAddForm.class.php b/wcfsetup/install/files/lib/acp/form/DevtoolsProjectPipEntryAddForm.class.php index 69c62c96eed..fdaec979789 100644 --- a/wcfsetup/install/files/lib/acp/form/DevtoolsProjectPipEntryAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/DevtoolsProjectPipEntryAddForm.class.php @@ -132,6 +132,8 @@ public function createForm() /** * Adds the pip-specific form fields. + * + * @return void */ protected function addPipFormFields() { diff --git a/wcfsetup/install/files/lib/acp/form/FirstTimeSetupOptionsEmailForm.class.php b/wcfsetup/install/files/lib/acp/form/FirstTimeSetupOptionsEmailForm.class.php index 68ce45f47b4..1ac27258b78 100644 --- a/wcfsetup/install/files/lib/acp/form/FirstTimeSetupOptionsEmailForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/FirstTimeSetupOptionsEmailForm.class.php @@ -19,7 +19,8 @@ * @license GNU Lesser General Public License * @since 6.0 * - * @property OptionHandler $optionHandler + * @phpstan-import-type ParsedOption from OptionHandler + * @extends AbstractOptionListForm */ final class FirstTimeSetupOptionsEmailForm extends AbstractOptionListForm { @@ -30,7 +31,7 @@ final class FirstTimeSetupOptionsEmailForm extends AbstractOptionListForm /** * list of options - * @var array + * @var ParsedOption[] */ public $options = []; diff --git a/wcfsetup/install/files/lib/acp/form/FirstTimeSetupOptionsForm.class.php b/wcfsetup/install/files/lib/acp/form/FirstTimeSetupOptionsForm.class.php index 3c82c1b4298..3a54606bf59 100644 --- a/wcfsetup/install/files/lib/acp/form/FirstTimeSetupOptionsForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/FirstTimeSetupOptionsForm.class.php @@ -19,7 +19,8 @@ * @license GNU Lesser General Public License * @since 6.0 * - * @property OptionHandler $optionHandler + * @phpstan-import-type ParsedOption from OptionHandler + * @extends AbstractOptionListForm */ final class FirstTimeSetupOptionsForm extends AbstractOptionListForm { @@ -30,7 +31,7 @@ final class FirstTimeSetupOptionsForm extends AbstractOptionListForm /** * list of options - * @var array + * @var ParsedOption[] */ public $options = []; diff --git a/wcfsetup/install/files/lib/acp/form/LabelGroupAddForm.class.php b/wcfsetup/install/files/lib/acp/form/LabelGroupAddForm.class.php index e823faf0cef..32df844522b 100644 --- a/wcfsetup/install/files/lib/acp/form/LabelGroupAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/LabelGroupAddForm.class.php @@ -66,7 +66,7 @@ class LabelGroupAddForm extends AbstractForm /** * list of label group to object type relations - * @var array + * @var array */ public $objectTypes = []; @@ -257,6 +257,7 @@ public function assignVariables() * Saves label group to object relations. * * @param ?int $groupID + * @return void */ protected function saveObjectTypeRelations($groupID) { @@ -299,7 +300,8 @@ protected function saveObjectTypeRelations($groupID) /** * Sets object type relations. * - * @param array|null $data + * @param ?array $data + * @return void */ protected function setObjectTypeRelations($data = null) { diff --git a/wcfsetup/install/files/lib/acp/form/LanguageExportForm.class.php b/wcfsetup/install/files/lib/acp/form/LanguageExportForm.class.php index aa5b9555de9..1c3318722ee 100644 --- a/wcfsetup/install/files/lib/acp/form/LanguageExportForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/LanguageExportForm.class.php @@ -44,11 +44,13 @@ class LanguageExportForm extends AbstractForm /** * selected packages + * @var int */ public $packageID = 0; /** * true to export custom variables + * @var bool */ public $exportCustomValues = false; @@ -82,7 +84,7 @@ public function readFormParameters() } if (isset($_POST['exportCustomValues'])) { - $this->exportCustomValues = \intval($_POST['exportCustomValues']); + $this->exportCustomValues = (bool)\intval($_POST['exportCustomValues']); } if (isset($_POST['languageID'])) { $this->languageID = \intval($_POST['languageID']); diff --git a/wcfsetup/install/files/lib/acp/form/MenuItemAddForm.class.php b/wcfsetup/install/files/lib/acp/form/MenuItemAddForm.class.php index 9ae376c4247..4c1c066acc1 100644 --- a/wcfsetup/install/files/lib/acp/form/MenuItemAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/MenuItemAddForm.class.php @@ -62,6 +62,9 @@ class MenuItemAddForm extends AbstractFormBuilderForm */ public Menu $menu; + /** + * @var \RecursiveIteratorIterator + */ public \RecursiveIteratorIterator $menuItemNodeList; /** @@ -291,15 +294,31 @@ protected function setFormAction() ); } + /** + * @param \RecursiveIteratorIterator $pageNodeList + * @param array $pageHandlers + */ protected function getPageObjectIDFormField( \RecursiveIteratorIterator $pageNodeList, array $pageHandlers ): IntegerFormField { return new class($pageNodeList, $pageHandlers) extends IntegerFormField { protected $templateName = '__pageObjectIDFormField'; + + /** + * @var array + */ protected array $pageHandlers; + + /** + * @var \RecursiveIteratorIterator + */ protected \RecursiveIteratorIterator $pageNodeList; + /** + * @param \RecursiveIteratorIterator $pageNodeList + * @param array $pageHandlers + */ public function __construct(\RecursiveIteratorIterator $pageNodeList, array $pageHandlers) { parent::__construct(); diff --git a/wcfsetup/install/files/lib/acp/form/OptionForm.class.php b/wcfsetup/install/files/lib/acp/form/OptionForm.class.php index e9d5ffac869..a1edfbb192e 100644 --- a/wcfsetup/install/files/lib/acp/form/OptionForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/OptionForm.class.php @@ -7,6 +7,7 @@ use wcf\system\application\ApplicationHandler; use wcf\system\exception\IllegalLinkException; use wcf\system\menu\acp\ACPMenu; +use wcf\system\option\OptionHandler; use wcf\system\service\worker\ServiceWorkerHandler; use wcf\system\style\StyleHandler; use wcf\system\WCF; @@ -17,6 +18,8 @@ * @author Marcel Werk * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @extends AbstractOptionListForm */ class OptionForm extends AbstractOptionListForm { @@ -34,7 +37,7 @@ class OptionForm extends AbstractOptionListForm /** * the option tree - * @var array + * @var mixed[] */ public $optionTree = []; diff --git a/wcfsetup/install/files/lib/acp/form/PackageEnableUpgradeOverrideForm.class.php b/wcfsetup/install/files/lib/acp/form/PackageEnableUpgradeOverrideForm.class.php index 65456b4da69..99f7c369828 100644 --- a/wcfsetup/install/files/lib/acp/form/PackageEnableUpgradeOverrideForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/PackageEnableUpgradeOverrideForm.class.php @@ -84,7 +84,7 @@ protected function createForm() } } - private function isEnabled() + private function isEnabled(): bool { if (!isset($this->isEnabled)) { $this->isEnabled = PackageUpdateServer::isUpgradeOverrideEnabled(); @@ -93,7 +93,11 @@ private function isEnabled() return $this->isEnabled; } - private function getIssuesPreventingUpgrade() + + /** + * @return list + */ + private function getIssuesPreventingUpgrade(): array { $parameters = ['issues' => []]; EventHandler::getInstance()->fireAction($this, 'getIssuesPreventingUpgrade', $parameters); @@ -110,6 +114,9 @@ private function getIssuesPreventingUpgrade() return \array_filter($issues); } + /** + * @return ?array{title: string, description: string} + */ private function checkMinimumPhpVersion(): ?array { // Minimum: PHP 8.1.2 @@ -130,6 +137,9 @@ private function checkMinimumPhpVersion(): ?array } } + /** + * @return ?array{title: string, description: string} + */ private function checkMaximumPhpVersion(): ?array { // Maximum: PHP 8.3.x @@ -150,6 +160,9 @@ private function checkMaximumPhpVersion(): ?array } } + /** + * @return ?array{title: string, description: string} + */ private function checkRequiredPhpExtensions(): ?array { $requiredExtensions = [ @@ -195,6 +208,9 @@ private function checkRequiredPhpExtensions(): ?array } } + /** + * @return ?array{title: string, description: string} + */ private function checkMinimumDatabaseVersion(): ?array { $sqlVersion = WCF::getDB()->getVersion(); @@ -232,6 +248,9 @@ private function checkMinimumDatabaseVersion(): ?array } } + /** + * @return ?array{title: string, description: string} + */ private function checkForTls(): ?array { if (RouteHandler::secureConnection()) { diff --git a/wcfsetup/install/files/lib/acp/form/PackageStartInstallForm.class.php b/wcfsetup/install/files/lib/acp/form/PackageStartInstallForm.class.php index c15fa3a007d..c80119760e0 100755 --- a/wcfsetup/install/files/lib/acp/form/PackageStartInstallForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/PackageStartInstallForm.class.php @@ -123,6 +123,7 @@ public function validate() * Validates the upload package input. * * @param string $filename + * @return void * @throws UserInputException */ protected function validateUploadPackage($filename = '') diff --git a/wcfsetup/install/files/lib/acp/form/PackageUpdateServerAddForm.class.php b/wcfsetup/install/files/lib/acp/form/PackageUpdateServerAddForm.class.php index a537c07ceaa..f036ebd1a55 100755 --- a/wcfsetup/install/files/lib/acp/form/PackageUpdateServerAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/PackageUpdateServerAddForm.class.php @@ -3,6 +3,7 @@ namespace wcf\acp\form; use Laminas\Diactoros\Uri; +use wcf\data\package\update\server\PackageUpdateServer; use wcf\data\package\update\server\PackageUpdateServerAction; use wcf\data\package\update\server\PackageUpdateServerList; use wcf\form\AbstractForm; @@ -79,6 +80,7 @@ public function validate() /** * Validates the server URL. * + * @return void * @since 5.3 */ protected function validateServerURL() @@ -122,6 +124,7 @@ protected function validateServerURL() /** * Returns the first package update server with a matching serverURL. * + * @return ?PackageUpdateServer * @since 5.3 */ protected function findDuplicateServer() @@ -133,6 +136,8 @@ protected function findDuplicateServer() return $packageServer; } } + + return null; } /** diff --git a/wcfsetup/install/files/lib/acp/form/PageAddForm.class.php b/wcfsetup/install/files/lib/acp/form/PageAddForm.class.php index ee784dc3428..e8de035c58e 100644 --- a/wcfsetup/install/files/lib/acp/form/PageAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/PageAddForm.class.php @@ -139,7 +139,7 @@ class PageAddForm extends AbstractForm /** * acl values - * @var array + * @var mixed[] */ public $aclValues = []; @@ -245,6 +245,7 @@ public function readParameters() /** * Reads basic page parameters controlling type and i18n. * + * @return void * @throws IllegalLinkException */ protected function readPageType() @@ -394,6 +395,8 @@ public function validate() /** * Validates page name. + * + * @return void */ protected function validateName() { @@ -408,6 +411,7 @@ protected function validateName() /** * Validates page type. * + * @return void * @throws UserInputException */ protected function validatePageType() @@ -424,6 +428,7 @@ protected function validatePageType() /** * Validates parent page id. * + * @return void * @throws UserInputException */ protected function validateParentPageID() @@ -443,6 +448,7 @@ protected function validateParentPageID() /** * Validates package id. * + * @return void * @throws UserInputException */ protected function validateApplicationPackageID() @@ -455,6 +461,7 @@ protected function validateApplicationPackageID() /** * Validates custom urls. * + * @return void * @throws UserInputException */ protected function validateCustomUrls() @@ -482,6 +489,7 @@ protected function validateCustomUrls() * * @param int $languageID * @param string $customURL + * @return void * * @throws UserInputException */ @@ -524,6 +532,7 @@ protected function normalizeCustomUrl(string $customUrl): string /** * Validates page title. * + * @return void * @throws UserInputException */ protected function validateTitle() @@ -546,6 +555,7 @@ protected function validateTitle() /** * Validates parent menu item id. * + * @return void * @throws UserInputException */ protected function validateParentMenuItemID() @@ -561,6 +571,7 @@ protected function validateParentMenuItemID() /** * Validates box ids. * + * @return void * @throws UserInputException */ protected function validateBoxIDs() diff --git a/wcfsetup/install/files/lib/acp/form/PageEditForm.class.php b/wcfsetup/install/files/lib/acp/form/PageEditForm.class.php index b491580327d..7861a617ea9 100644 --- a/wcfsetup/install/files/lib/acp/form/PageEditForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/PageEditForm.class.php @@ -108,6 +108,9 @@ public function validate() $this->validateOverrideApplicationPackageID(); } + /** + * @return void + */ protected function validateOverrideApplicationPackageID() { if ($this->overrideApplicationPackageID) { diff --git a/wcfsetup/install/files/lib/acp/form/PaidSubscriptionAddForm.class.php b/wcfsetup/install/files/lib/acp/form/PaidSubscriptionAddForm.class.php index fd449076edf..923123889be 100644 --- a/wcfsetup/install/files/lib/acp/form/PaidSubscriptionAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/PaidSubscriptionAddForm.class.php @@ -119,7 +119,7 @@ class PaidSubscriptionAddForm extends AbstractForm /** * available user groups - * @var array + * @var UserGroup[] */ public $availableUserGroups = []; @@ -131,7 +131,7 @@ class PaidSubscriptionAddForm extends AbstractForm /** * list of available subscriptions - * @var array + * @var array */ public $availableSubscriptions = []; @@ -169,6 +169,9 @@ public function readParameters() $this->getAvailableSubscriptions(); } + /** + * @return void + */ protected function getAvailableSubscriptions() { $subscriptionList = new PaidSubscriptionList(); @@ -340,6 +343,7 @@ public function save() * * @param PaidSubscription $subscription * @param string $columnName + * @return void */ public function saveI18nValue(PaidSubscription $subscription, $columnName) { diff --git a/wcfsetup/install/files/lib/acp/form/PaidSubscriptionEditForm.class.php b/wcfsetup/install/files/lib/acp/form/PaidSubscriptionEditForm.class.php index dde638ed878..cad396e1f9f 100644 --- a/wcfsetup/install/files/lib/acp/form/PaidSubscriptionEditForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/PaidSubscriptionEditForm.class.php @@ -72,6 +72,9 @@ public function readFormParameters() } } + /** + * @return void + */ protected function getAvailableSubscriptions() { $subscriptionList = new PaidSubscriptionList(); diff --git a/wcfsetup/install/files/lib/acp/form/PaidSubscriptionUserAddForm.class.php b/wcfsetup/install/files/lib/acp/form/PaidSubscriptionUserAddForm.class.php index 59bb7dd69a2..9e86f2946bb 100644 --- a/wcfsetup/install/files/lib/acp/form/PaidSubscriptionUserAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/PaidSubscriptionUserAddForm.class.php @@ -118,6 +118,7 @@ public function validate() /** * Validates given username. * + * @return void * @throws UserInputException */ protected function validateUsername() @@ -134,6 +135,7 @@ protected function validateUsername() /** * Validates given end date. * + * @return void * @throws UserInputException */ protected function validateEndDate() @@ -195,6 +197,8 @@ public function readData() /** * Sets the default value for the end date. + * + * @return void */ protected function setDefaultEndDate() { diff --git a/wcfsetup/install/files/lib/acp/form/RescueModeForm.class.php b/wcfsetup/install/files/lib/acp/form/RescueModeForm.class.php index a52fdf8a5e3..81759e52777 100644 --- a/wcfsetup/install/files/lib/acp/form/RescueModeForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/RescueModeForm.class.php @@ -62,6 +62,9 @@ final class RescueModeForm extends AbstractForm */ public $username = ''; + /** + * @var string + */ public $domainName = ''; private const ALLOWED_ATTEMPTS_PER_10M = 3; @@ -72,6 +75,7 @@ final class RescueModeForm extends AbstractForm /** * @inheritDoc + * @phpstan-ignore return.unusedType */ public function __run() { @@ -160,6 +164,8 @@ public function readFormParameters() /** * Validates the user access data. + * + * @return void */ protected function validateUser() { @@ -215,6 +221,9 @@ private function validateDomainName(): void } } + /** + * @return void + */ protected function validateApplications() { $usedPaths = []; diff --git a/wcfsetup/install/files/lib/acp/form/SmileyAddForm.class.php b/wcfsetup/install/files/lib/acp/form/SmileyAddForm.class.php index 9baff489cc9..ded2b151965 100644 --- a/wcfsetup/install/files/lib/acp/form/SmileyAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/SmileyAddForm.class.php @@ -22,6 +22,15 @@ * @author Tim Duesterhus * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @phpstan-type FilesEntry array{ + * name: string, + * type: string, + * size: int, + * tmp_name: string, + * error: int, + * full_path: string, + * } */ class SmileyAddForm extends AbstractForm { @@ -95,13 +104,13 @@ class SmileyAddForm extends AbstractForm /** * data of the uploaded smiley file - * @var array + * @var FilesEntry|array{} */ public $fileUpload = []; /** * data of the uploaded smiley file (2x) - * @var array + * @var FilesEntry|array{} */ public $fileUpload2x = []; diff --git a/wcfsetup/install/files/lib/acp/form/StyleAddForm.class.php b/wcfsetup/install/files/lib/acp/form/StyleAddForm.class.php index 37e985bc2a3..0b4b9ca014e 100644 --- a/wcfsetup/install/files/lib/acp/form/StyleAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/StyleAddForm.class.php @@ -78,7 +78,7 @@ class StyleAddForm extends AbstractForm /** * list of available template groups - * @var TemplateGroup[] + * @var array */ public $availableTemplateGroups = []; @@ -89,7 +89,7 @@ class StyleAddForm extends AbstractForm public $availableUnits = ['px', 'pt', 'rem', 'em', '%']; /** - * @var array + * @var array */ public $colorCategories = []; @@ -107,7 +107,7 @@ class StyleAddForm extends AbstractForm /** * list of global variables - * @var array + * @var string[] */ public $globals = []; @@ -233,6 +233,7 @@ public function readParameters() } /** + * @return array * @since 5.3 */ protected function getUploadFields() @@ -279,6 +280,7 @@ protected function getUploadFields() } /** + * @return void * @since 5.3 */ protected function rebuildUploadFields() @@ -419,6 +421,7 @@ public function readFormParameters() } /** + * @return void * @since 5.3 */ protected function downloadGoogleFont() @@ -501,6 +504,8 @@ public function validate() /** * Validates the individual scss. + * + * @return void * @throws UserInputException * @since 5.3 */ @@ -531,6 +536,7 @@ public function validateIndividualScss() /** * Disallow the use of `com.woltlab.*` for package names to avoid accidental collisions. * + * @return void * @throws UserInputException */ protected function enforcePackageNameRestriction() @@ -542,6 +548,7 @@ protected function enforcePackageNameRestriction() } /** + * @return void * @since 5.3 */ protected function validateUploads() @@ -620,6 +627,7 @@ protected function validateUploads() * the style editor itself, it will be silently discarded. * * @param string $variableName + * @return void * @throws UserInputException */ protected function parseOverrides($variableName = 'overrideScss') @@ -720,6 +728,8 @@ public function readData() /** * Sets available variables + * + * @return void */ protected function setVariables() { @@ -820,6 +830,8 @@ protected function setVariables() /** * Reads style variable values. + * + * @return void */ protected function readStyleVariables() { @@ -953,6 +965,9 @@ public function assignVariables() ]); } + /** + * @return void + */ protected function setDefaultValues() { $this->authorName = WCF::getUser()->username; diff --git a/wcfsetup/install/files/lib/acp/form/TrophyAddForm.class.php b/wcfsetup/install/files/lib/acp/form/TrophyAddForm.class.php index f4e9ac31f51..5ba22be8b67 100644 --- a/wcfsetup/install/files/lib/acp/form/TrophyAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/TrophyAddForm.class.php @@ -278,6 +278,8 @@ public function validate() /** * Validates the trophy type. + * + * @return void */ protected function validateType() { diff --git a/wcfsetup/install/files/lib/acp/form/UserAddForm.class.php b/wcfsetup/install/files/lib/acp/form/UserAddForm.class.php index 0221ce34da6..5acc47a47d6 100644 --- a/wcfsetup/install/files/lib/acp/form/UserAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/UserAddForm.class.php @@ -3,6 +3,7 @@ namespace wcf\acp\form; use wcf\data\smiley\category\SmileyCategory; +use wcf\data\smiley\Smiley; use wcf\data\smiley\SmileyCache; use wcf\data\user\group\UserGroup; use wcf\data\user\User; @@ -114,18 +115,27 @@ class UserAddForm extends UserOptionListForm /** * tree of available user options - * @var array + * @var mixed[] */ public $optionTree = []; + public AttachmentHandler $attachmentHandler; + public int $attachmentObjectID = 0; + public string $attachmentObjectType = 'com.woltlab.wcf.user.signature'; + + /** + * @var array + */ public array $defaultSmilies = []; + /** * list of smiley categories - * @var SmileyCategory[] + * @var array */ public array $smileyCategories = []; + public ?string $tmpHash = ''; #[\Override] @@ -341,7 +351,6 @@ public function save() $this->signature = $this->disableSignatureReason = ''; $this->groupIDs = []; $this->languageID = $this->getDefaultFormLanguageID(); - \assert($this->optionHandler instanceof UserOptionHandler); $this->optionHandler->resetOptionValues(); // Reload attachment handler to reset the uploaded attachments. $this->attachmentHandler = new AttachmentHandler( @@ -355,7 +364,8 @@ public function save() * Throws a UserInputException if the username is not unique or not valid. * * @param string $username - * @throws UserInputException + * @return void + * @throws UserInputException */ protected function validateUsername($username) { @@ -376,7 +386,7 @@ protected function validateUsername($username) /** * Throws a UserInputException if the email is not unique or not valid. - * @throws UserInputException + * @throws UserInputException */ protected function validateEmail(string $email): void { @@ -397,7 +407,7 @@ protected function validateEmail(string $email): void /** * Throws a UserInputException if the password is not valid. - * @throws UserInputException + * @throws UserInputException */ protected function validatePassword( #[\SensitiveParameter] @@ -437,6 +447,8 @@ public function readData() /** * Reads option tree on page init. + * + * @return void */ protected function readOptionTree() { diff --git a/wcfsetup/install/files/lib/acp/form/UserAssignToGroupForm.class.php b/wcfsetup/install/files/lib/acp/form/UserAssignToGroupForm.class.php index 0267fbcfb34..b2d6ef9a397 100755 --- a/wcfsetup/install/files/lib/acp/form/UserAssignToGroupForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/UserAssignToGroupForm.class.php @@ -79,6 +79,7 @@ public function readParameters() } // get user + // @phpstan-ignore assign.propertyType $this->users = ClipboardHandler::getInstance()->getMarkedItems($this->objectTypeID); if (empty($this->users)) { throw new IllegalLinkException(); @@ -195,6 +196,8 @@ public function assignVariables() /** * Get a list of available groups. + * + * @return void */ protected function readGroups() { diff --git a/wcfsetup/install/files/lib/acp/form/UserContentRevertChangesForm.class.php b/wcfsetup/install/files/lib/acp/form/UserContentRevertChangesForm.class.php index afbfe3de976..ba52190b7d4 100644 --- a/wcfsetup/install/files/lib/acp/form/UserContentRevertChangesForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/UserContentRevertChangesForm.class.php @@ -68,6 +68,7 @@ public function readParameters() // get object type id $this->objectTypeID = ClipboardHandler::getInstance()->getObjectTypeID('com.woltlab.wcf.user'); // get user + // @phpstan-ignore assign.propertyType $this->users = ClipboardHandler::getInstance()->getMarkedItems($this->objectTypeID); if (empty($this->users)) { throw new IllegalLinkException(); diff --git a/wcfsetup/install/files/lib/acp/form/UserEditForm.class.php b/wcfsetup/install/files/lib/acp/form/UserEditForm.class.php index f3df9310d42..a7df8b4936d 100755 --- a/wcfsetup/install/files/lib/acp/form/UserEditForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/UserEditForm.class.php @@ -191,7 +191,6 @@ public function readParameters() */ protected function initOptionHandler() { - \assert($this->optionHandler instanceof UserOptionHandler); $this->optionHandler->setUser($this->user->getDecoratedObject()); } @@ -310,6 +309,8 @@ public function readData() /** * Sets the selected languages. + * + * @return void */ protected function readVisibleLanguages() { @@ -318,6 +319,8 @@ protected function readVisibleLanguages() /** * Sets the default values. + * + * @return void */ protected function readDefaultValues() { diff --git a/wcfsetup/install/files/lib/acp/form/UserEmailAddressExportForm.class.php b/wcfsetup/install/files/lib/acp/form/UserEmailAddressExportForm.class.php index 447e6133a40..1a98f90eedf 100755 --- a/wcfsetup/install/files/lib/acp/form/UserEmailAddressExportForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/UserEmailAddressExportForm.class.php @@ -81,6 +81,7 @@ public function readParameters() // get user ids $users = ClipboardHandler::getInstance()->getMarkedItems($this->objectTypeID); + /** @var User[] $users */ if (empty($users)) { throw new IllegalLinkException(); } diff --git a/wcfsetup/install/files/lib/acp/form/UserGroupAddForm.class.php b/wcfsetup/install/files/lib/acp/form/UserGroupAddForm.class.php index 692a68a745d..553d7b31bdf 100755 --- a/wcfsetup/install/files/lib/acp/form/UserGroupAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/UserGroupAddForm.class.php @@ -17,7 +17,8 @@ * @author Marcel Werk * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License - * @property-read UserGroupOptionHandler $optionHandler + * + * @extends AbstractOptionListForm */ class UserGroupAddForm extends AbstractOptionListForm { @@ -33,7 +34,7 @@ class UserGroupAddForm extends AbstractOptionListForm /** * option tree - * @var array + * @var mixed[] */ public $optionTree = []; @@ -60,8 +61,8 @@ class UserGroupAddForm extends AbstractOptionListForm protected $groupDescription = ''; /** - * list of values of group 'Anyone' - * @var array + * list of values of group 'Everyone' + * @var mixed[] */ public $defaultValues = []; diff --git a/wcfsetup/install/files/lib/acp/form/UserGroupOptionForm.class.php b/wcfsetup/install/files/lib/acp/form/UserGroupOptionForm.class.php index 36fa7307656..0493a7e10fb 100644 --- a/wcfsetup/install/files/lib/acp/form/UserGroupOptionForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/UserGroupOptionForm.class.php @@ -62,7 +62,7 @@ class UserGroupOptionForm extends AbstractForm /** * list of values per user group - * @var array + * @var mixed[] */ public $values = []; diff --git a/wcfsetup/install/files/lib/acp/form/UserMergeForm.class.php b/wcfsetup/install/files/lib/acp/form/UserMergeForm.class.php index 07089a90343..4433ac50ddd 100644 --- a/wcfsetup/install/files/lib/acp/form/UserMergeForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/UserMergeForm.class.php @@ -73,11 +73,13 @@ public function readParameters() // get object type id $this->objectTypeID = ClipboardHandler::getInstance()->getObjectTypeID('com.woltlab.wcf.user'); // get user + // @phpstan-ignore assign.propertyType $this->users = ClipboardHandler::getInstance()->getMarkedItems($this->objectTypeID); if (empty($this->users) || \count($this->users) < 2) { throw new IllegalLinkException(); } foreach ($this->users as $user) { + /** @var User $user */ if (!$user->canEdit()) { throw new PermissionDeniedException(); } diff --git a/wcfsetup/install/files/lib/acp/form/UserOptionListForm.class.php b/wcfsetup/install/files/lib/acp/form/UserOptionListForm.class.php index c5c07a1fc76..f9ed0a0929f 100644 --- a/wcfsetup/install/files/lib/acp/form/UserOptionListForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/UserOptionListForm.class.php @@ -12,6 +12,8 @@ * @author Marcel Werk * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @extends AbstractOptionListForm */ abstract class UserOptionListForm extends AbstractOptionListForm { @@ -28,7 +30,7 @@ abstract class UserOptionListForm extends AbstractOptionListForm /** * Returns a list of all available user groups. * - * @return UserGroup[] + * @return UserGroup[] */ protected function getAvailableGroups() { @@ -38,7 +40,7 @@ protected function getAvailableGroups() /** * Returns the default form language id. * - * @return int $languageID + * @return int $languageID */ protected function getDefaultFormLanguageID() { diff --git a/wcfsetup/install/files/lib/acp/form/UserSearchForm.class.php b/wcfsetup/install/files/lib/acp/form/UserSearchForm.class.php index d639b8b96af..a48913eb9b9 100755 --- a/wcfsetup/install/files/lib/acp/form/UserSearchForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/UserSearchForm.class.php @@ -283,6 +283,8 @@ public function validate() /** * Search for users which fit to the search values. + * + * @return void */ protected function search() { diff --git a/wcfsetup/install/files/lib/acp/form/UserTrophyAddForm.class.php b/wcfsetup/install/files/lib/acp/form/UserTrophyAddForm.class.php index 00bb51d5574..ee6d0f6738c 100644 --- a/wcfsetup/install/files/lib/acp/form/UserTrophyAddForm.class.php +++ b/wcfsetup/install/files/lib/acp/form/UserTrophyAddForm.class.php @@ -124,6 +124,7 @@ public function readFormParameters() /** * Validates the users. * + * @return void * @throws UserInputException */ protected function validateUser() diff --git a/wcfsetup/install/files/lib/acp/page/ACPSessionLogListPage.class.php b/wcfsetup/install/files/lib/acp/page/ACPSessionLogListPage.class.php index 4ad0070947f..96037913d86 100755 --- a/wcfsetup/install/files/lib/acp/page/ACPSessionLogListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/ACPSessionLogListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\ACPSessionLogGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2024 WoltLab GmbH * @license GNU Lesser General Public License * - * @property ACPSessionLogGridView $gridView + * @extends AbstractGridViewPage */ class ACPSessionLogListPage extends AbstractGridViewPage { @@ -33,7 +32,7 @@ class ACPSessionLogListPage extends AbstractGridViewPage public $neededPermissions = ['admin.management.canViewLog']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): ACPSessionLogGridView { return new ACPSessionLogGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/ACPSessionLogPage.class.php b/wcfsetup/install/files/lib/acp/page/ACPSessionLogPage.class.php index 065273cbd73..97ce50d313b 100755 --- a/wcfsetup/install/files/lib/acp/page/ACPSessionLogPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/ACPSessionLogPage.class.php @@ -5,7 +5,6 @@ use wcf\data\acp\session\log\ACPSessionLog; use wcf\page\AbstractGridViewPage; use wcf\system\exception\IllegalLinkException; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\ACPSessionGridView; use wcf\system\request\LinkHandler; use wcf\system\WCF; @@ -17,7 +16,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property ACPSessionGridView $gridView + * @extends AbstractGridViewPage */ class ACPSessionLogPage extends AbstractGridViewPage { @@ -64,7 +63,7 @@ public function assignVariables() } #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): ACPSessionGridView { return new ACPSessionGridView($this->sessionLog->sessionLogID); } diff --git a/wcfsetup/install/files/lib/acp/page/AbstractCategoryListPage.class.php b/wcfsetup/install/files/lib/acp/page/AbstractCategoryListPage.class.php index 7620d484e41..a7a75aade74 100644 --- a/wcfsetup/install/files/lib/acp/page/AbstractCategoryListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/AbstractCategoryListPage.class.php @@ -116,6 +116,8 @@ public function assignVariables() /** * Checks if the active user has the needed permissions to view this list. + * + * @return void */ protected function checkCategoryPermissions() { @@ -126,6 +128,8 @@ protected function checkCategoryPermissions() /** * Reads the categories. + * + * @return void */ protected function readCategories() { diff --git a/wcfsetup/install/files/lib/acp/page/AdListPage.class.php b/wcfsetup/install/files/lib/acp/page/AdListPage.class.php index 3870e1a5acc..f6a02694bbf 100644 --- a/wcfsetup/install/files/lib/acp/page/AdListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/AdListPage.class.php @@ -12,7 +12,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @property AdList $objectList + * @extends MultipleLinkPage */ class AdListPage extends MultipleLinkPage { diff --git a/wcfsetup/install/files/lib/acp/page/ArticleListPage.class.php b/wcfsetup/install/files/lib/acp/page/ArticleListPage.class.php index a3ede997721..74ef7564308 100644 --- a/wcfsetup/install/files/lib/acp/page/ArticleListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/ArticleListPage.class.php @@ -15,7 +15,7 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @property ArticleGridView $gridView + * @extends AbstractGridViewPage */ class ArticleListPage extends AbstractGridViewPage { diff --git a/wcfsetup/install/files/lib/acp/page/AttachmentListPage.class.php b/wcfsetup/install/files/lib/acp/page/AttachmentListPage.class.php index 6e74bf4fbe6..4c44fc9a189 100644 --- a/wcfsetup/install/files/lib/acp/page/AttachmentListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/AttachmentListPage.class.php @@ -13,7 +13,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property AttachmentGridView $gridView + * @extends AbstractGridViewPage */ class AttachmentListPage extends AbstractGridViewPage { @@ -43,6 +43,9 @@ public function assignVariables() ]); } + /** + * @return array{count: int, size: int, downloads: int} + */ private function getAttachmentStats(): array { $sql = "SELECT COUNT(*) AS count, diff --git a/wcfsetup/install/files/lib/acp/page/BBCodeListPage.class.php b/wcfsetup/install/files/lib/acp/page/BBCodeListPage.class.php index dc8e40fee97..ade791f0d24 100644 --- a/wcfsetup/install/files/lib/acp/page/BBCodeListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/BBCodeListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\BBCodeGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property BBCodeGridView $gridView + * @extends AbstractGridViewPage */ class BBCodeListPage extends AbstractGridViewPage { @@ -33,7 +32,7 @@ class BBCodeListPage extends AbstractGridViewPage public $templateName = 'bbcodeList'; #[\Override] - public function createGridView(): AbstractGridView + public function createGridView(): BBCodeGridView { return new BBCodeGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/BBCodeMediaProviderListPage.class.php b/wcfsetup/install/files/lib/acp/page/BBCodeMediaProviderListPage.class.php index 536dc5e6f72..8dd26828c46 100644 --- a/wcfsetup/install/files/lib/acp/page/BBCodeMediaProviderListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/BBCodeMediaProviderListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\BBCodeMediaProviderGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property BBCodeMediaProviderGridView $gridView + * @extends AbstractGridViewPage */ class BBCodeMediaProviderListPage extends AbstractGridViewPage { @@ -33,7 +32,7 @@ class BBCodeMediaProviderListPage extends AbstractGridViewPage public $templateName = 'bbcodeMediaProviderList'; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): BBCodeMediaProviderGridView { return new BBCodeMediaProviderGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/BoxListPage.class.php b/wcfsetup/install/files/lib/acp/page/BoxListPage.class.php index 930c84213a3..151bccc07c0 100644 --- a/wcfsetup/install/files/lib/acp/page/BoxListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/BoxListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\BoxGridView; use wcf\system\language\LanguageFactory; use wcf\system\WCF; @@ -16,7 +15,7 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @property BoxGridView $gridView + * @extends AbstractGridViewPage */ class BoxListPage extends AbstractGridViewPage { @@ -58,7 +57,7 @@ public function assignVariables() } #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): BoxGridView { return new BoxGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/CacheListPage.class.php b/wcfsetup/install/files/lib/acp/page/CacheListPage.class.php index 6a63871bed7..ba9611735da 100755 --- a/wcfsetup/install/files/lib/acp/page/CacheListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/CacheListPage.class.php @@ -35,13 +35,24 @@ class CacheListPage extends AbstractPage /** * contains a list of cache resources - * @var array + * @var array>> */ public $caches = []; /** * contains general cache information - * @var array + * @var array{ + * source: string, + * version: string, + * size: int, + * files: int, + * }|array{} */ public $cacheData = []; @@ -109,8 +120,9 @@ public function readData() * * @param string $cacheType * @param string $cacheDir - * @param Regex $ignore + * @param ?Regex $ignore * @param string $extension + * @return void */ protected function readCacheFiles($cacheType, $cacheDir, ?Regex $ignore = null, $extension = 'php') { diff --git a/wcfsetup/install/files/lib/acp/page/CaptchaQuestionListPage.class.php b/wcfsetup/install/files/lib/acp/page/CaptchaQuestionListPage.class.php index 8cf265fbd21..a3759f9cb57 100644 --- a/wcfsetup/install/files/lib/acp/page/CaptchaQuestionListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/CaptchaQuestionListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\CaptchaQuestionGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property CaptchaQuestionGridView $gridView + * @extends AbstractGridViewPage */ class CaptchaQuestionListPage extends AbstractGridViewPage { @@ -28,7 +27,7 @@ class CaptchaQuestionListPage extends AbstractGridViewPage public $neededPermissions = ['admin.captcha.canManageCaptchaQuestion']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): CaptchaQuestionGridView { return new CaptchaQuestionGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/CronjobListPage.class.php b/wcfsetup/install/files/lib/acp/page/CronjobListPage.class.php index 3649363db09..323ccbd2b5a 100755 --- a/wcfsetup/install/files/lib/acp/page/CronjobListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/CronjobListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\CronjobGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property CronjobGridView $gridView + * @extends AbstractGridViewPage */ class CronjobListPage extends AbstractGridViewPage { @@ -28,7 +27,7 @@ class CronjobListPage extends AbstractGridViewPage public $neededPermissions = ['admin.management.canManageCronjob']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): CronjobGridView { return new CronjobGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/CronjobLogListPage.class.php b/wcfsetup/install/files/lib/acp/page/CronjobLogListPage.class.php index 04f116c97c0..75e7d8bc948 100755 --- a/wcfsetup/install/files/lib/acp/page/CronjobLogListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/CronjobLogListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\CronjobLogGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2024 WoltLab GmbH * @license GNU Lesser General Public License * - * @property CronjobLogGridView $gridView + * @extends AbstractGridViewPage */ class CronjobLogListPage extends AbstractGridViewPage { @@ -28,7 +27,7 @@ class CronjobLogListPage extends AbstractGridViewPage public $neededPermissions = ['admin.management.canManageCronjob']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): CronjobLogGridView { return new CronjobLogGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/DevtoolsMissingLanguageItemListPage.class.php b/wcfsetup/install/files/lib/acp/page/DevtoolsMissingLanguageItemListPage.class.php index 631d493a926..24431ce301d 100644 --- a/wcfsetup/install/files/lib/acp/page/DevtoolsMissingLanguageItemListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/DevtoolsMissingLanguageItemListPage.class.php @@ -12,6 +12,8 @@ * @copyright 2001-2020 WoltLab GmbH * @license GNU Lesser General Public License * @since 5.3 + * + * @extends SortablePage */ class DevtoolsMissingLanguageItemListPage extends SortablePage { diff --git a/wcfsetup/install/files/lib/acp/page/DevtoolsProjectListPage.class.php b/wcfsetup/install/files/lib/acp/page/DevtoolsProjectListPage.class.php index e512a0b7aab..27f7684fd87 100644 --- a/wcfsetup/install/files/lib/acp/page/DevtoolsProjectListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/DevtoolsProjectListPage.class.php @@ -13,7 +13,7 @@ * @license GNU Lesser General Public License * @since 3.1 * - * @property DevtoolsProjectList $objectList + * @extends SortablePage */ class DevtoolsProjectListPage extends SortablePage { diff --git a/wcfsetup/install/files/lib/acp/page/EmailLogListPage.class.php b/wcfsetup/install/files/lib/acp/page/EmailLogListPage.class.php index ed2a149ad39..d0c3e9c4230 100644 --- a/wcfsetup/install/files/lib/acp/page/EmailLogListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/EmailLogListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\EmailLogGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property EmailLogGridView $gridView + * @extends AbstractGridViewPage */ class EmailLogListPage extends AbstractGridViewPage { @@ -28,7 +27,7 @@ class EmailLogListPage extends AbstractGridViewPage public $neededPermissions = ['admin.management.canViewLog']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): EmailLogGridView { return new EmailLogGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/ExceptionLogViewPage.class.php b/wcfsetup/install/files/lib/acp/page/ExceptionLogViewPage.class.php index 431f7c4b610..33e1fc1c675 100644 --- a/wcfsetup/install/files/lib/acp/page/ExceptionLogViewPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/ExceptionLogViewPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\ExceptionLogGridView; use wcf\system\registry\RegistryHandler; @@ -13,6 +12,8 @@ * @author Tim Duesterhus * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @extends AbstractGridViewPage */ class ExceptionLogViewPage extends AbstractGridViewPage { @@ -40,7 +41,7 @@ private function markNotificationsAsRead(): void } #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): ExceptionLogGridView { return new ExceptionLogGridView(true); } diff --git a/wcfsetup/install/files/lib/acp/page/LabelGroupListPage.class.php b/wcfsetup/install/files/lib/acp/page/LabelGroupListPage.class.php index 5e10f5d7314..d3639e8a1b8 100644 --- a/wcfsetup/install/files/lib/acp/page/LabelGroupListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/LabelGroupListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\LabelGroupGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property LabelGroupGridView $gridView + * @extends AbstractGridViewPage */ class LabelGroupListPage extends AbstractGridViewPage { @@ -23,7 +22,7 @@ class LabelGroupListPage extends AbstractGridViewPage public $activeMenuItem = 'wcf.acp.menu.link.label.group.list'; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): LabelGroupGridView { return new LabelGroupGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/LabelListPage.class.php b/wcfsetup/install/files/lib/acp/page/LabelListPage.class.php index 45e1d1e6029..80c4e0b50de 100644 --- a/wcfsetup/install/files/lib/acp/page/LabelListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/LabelListPage.class.php @@ -21,7 +21,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @property LabelList $objectList + * @extends SortablePage */ class LabelListPage extends SortablePage { diff --git a/wcfsetup/install/files/lib/acp/page/LanguageItemListPage.class.php b/wcfsetup/install/files/lib/acp/page/LanguageItemListPage.class.php index f75ab803f94..9149bca5306 100644 --- a/wcfsetup/install/files/lib/acp/page/LanguageItemListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/LanguageItemListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\LanguageItemGridView; use wcf\system\WCF; @@ -14,7 +13,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property LanguageItemGridView $gridView + * @extends AbstractGridViewPage */ class LanguageItemListPage extends AbstractGridViewPage { @@ -29,7 +28,7 @@ class LanguageItemListPage extends AbstractGridViewPage public $neededPermissions = ['admin.language.canManageLanguage']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): LanguageItemGridView { return new LanguageItemGridView(WCF::getLanguage()); } diff --git a/wcfsetup/install/files/lib/acp/page/LanguageListPage.class.php b/wcfsetup/install/files/lib/acp/page/LanguageListPage.class.php index 1aafad4fb46..a1ccea7be49 100644 --- a/wcfsetup/install/files/lib/acp/page/LanguageListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/LanguageListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\LanguageGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property LanguageGridView $gridView + * @extends AbstractGridViewPage */ class LanguageListPage extends AbstractGridViewPage { @@ -28,7 +27,7 @@ class LanguageListPage extends AbstractGridViewPage public $neededPermissions = ['admin.language.canManageLanguage']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): LanguageGridView { return new LanguageGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/LicensePage.class.php b/wcfsetup/install/files/lib/acp/page/LicensePage.class.php index fd2f754cf5c..2d40910b7db 100644 --- a/wcfsetup/install/files/lib/acp/page/LicensePage.class.php +++ b/wcfsetup/install/files/lib/acp/page/LicensePage.class.php @@ -35,18 +35,34 @@ final class LicensePage extends AbstractPage private LicenseData $licenseData; + /** + * @var array> + */ private array $availablePackages = []; + /** + * @var array + */ private array $installedPackages; + /** + * @var array + */ private array $installablePackages = []; + /** + * @var array + */ private array $packageUpdates = []; + /** + * @var array + */ private array $requiresLicenseExtension = []; private const CURRENT_MAJOR = '6.0'; + #[\Override] public function readData() { parent::readData(); @@ -143,6 +159,7 @@ function (string $package) { } } + #[\Override] public function assignVariables() { parent::assignVariables(); @@ -158,6 +175,7 @@ public function assignVariables() } /** + * @param string[] $identifiers * @return array */ private function getInstalledPackages(array $identifiers): array @@ -183,6 +201,10 @@ private function getInstalledPackages(array $identifiers): array return $packages; } + /** + * @param string[] $identifiers + * @return string[] + */ private function removeUnknownPackages(array $identifiers): array { if ($identifiers === []) { @@ -201,6 +223,7 @@ private function removeUnknownPackages(array $identifiers): array } /** + * @param string[] $packages * @return array */ private function getPackageUpdates(array $packages): array @@ -221,7 +244,12 @@ private function getPackageUpdates(array $packages): array return $packageUpdates; } - // Stolen from PackageUpdateAction::search() and slightly modified. + /** + * Stolen from PackageUpdateAction::search() and slightly modified. + * + * @param string[] $identifiers + * @return array + */ private function getInstallablePackages(array $identifiers): array { $availableUpdateServers = \array_filter( diff --git a/wcfsetup/install/files/lib/acp/page/MediaListPage.class.php b/wcfsetup/install/files/lib/acp/page/MediaListPage.class.php index 568d3c503ae..8e26e6505d2 100644 --- a/wcfsetup/install/files/lib/acp/page/MediaListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/MediaListPage.class.php @@ -2,6 +2,7 @@ namespace wcf\acp\page; +use wcf\data\category\CategoryNode; use wcf\data\category\CategoryNodeTree; use wcf\data\media\ViewableMediaList; use wcf\page\SortablePage; @@ -18,7 +19,7 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @property ViewableMediaList $objectList + * @extends SortablePage */ class MediaListPage extends SortablePage { @@ -35,7 +36,7 @@ class MediaListPage extends SortablePage /** * node tree with all available media categories - * @var \RecursiveIteratorIterator + * @var \RecursiveIteratorIterator */ public $categoryList; diff --git a/wcfsetup/install/files/lib/acp/page/MenuListPage.class.php b/wcfsetup/install/files/lib/acp/page/MenuListPage.class.php index fc0491cd621..44f330d43ba 100644 --- a/wcfsetup/install/files/lib/acp/page/MenuListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/MenuListPage.class.php @@ -2,9 +2,7 @@ namespace wcf\acp\page; -use wcf\data\menu\MenuList; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\MenuGridView; /** @@ -15,7 +13,7 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @property MenuList $objectList + * @extends AbstractGridViewPage */ class MenuListPage extends AbstractGridViewPage { @@ -30,7 +28,7 @@ class MenuListPage extends AbstractGridViewPage public $neededPermissions = ['admin.content.cms.canManageMenu']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): MenuGridView { return new MenuGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/ModificationLogListPage.class.php b/wcfsetup/install/files/lib/acp/page/ModificationLogListPage.class.php index 2eaba4ef54d..65a2e8a4c69 100644 --- a/wcfsetup/install/files/lib/acp/page/ModificationLogListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/ModificationLogListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\ModificationLogGridView; /** @@ -13,8 +12,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @property ModificationLogGridView $gridView * @since 5.2 + * @extends AbstractGridViewPage */ class ModificationLogListPage extends AbstractGridViewPage { @@ -29,7 +28,7 @@ class ModificationLogListPage extends AbstractGridViewPage public $neededPermissions = ['admin.management.canViewLog']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): ModificationLogGridView { return new ModificationLogGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/NoticeListPage.class.php b/wcfsetup/install/files/lib/acp/page/NoticeListPage.class.php index a9944435b4c..f61d91c45fd 100644 --- a/wcfsetup/install/files/lib/acp/page/NoticeListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/NoticeListPage.class.php @@ -12,7 +12,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @property NoticeList $objectList + * @extends SortablePage */ class NoticeListPage extends SortablePage { diff --git a/wcfsetup/install/files/lib/acp/page/PackageListPage.class.php b/wcfsetup/install/files/lib/acp/page/PackageListPage.class.php index c39498a2592..b543c5999a3 100644 --- a/wcfsetup/install/files/lib/acp/page/PackageListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/PackageListPage.class.php @@ -16,7 +16,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @property I18nPackageList $objectList + * @extends SortablePage */ class PackageListPage extends SortablePage { diff --git a/wcfsetup/install/files/lib/acp/page/PackagePage.class.php b/wcfsetup/install/files/lib/acp/page/PackagePage.class.php index 6b4aa753c45..56339e4d335 100755 --- a/wcfsetup/install/files/lib/acp/page/PackagePage.class.php +++ b/wcfsetup/install/files/lib/acp/page/PackagePage.class.php @@ -22,6 +22,7 @@ class PackagePage extends AbstractPage public $activeMenuItem = 'wcf.acp.menu.link.package.list'; /** + * @var array{} * @deprecated 5.5 This array is always empty. */ public $compatibleVersions = []; diff --git a/wcfsetup/install/files/lib/acp/page/PackageUpdatePage.class.php b/wcfsetup/install/files/lib/acp/page/PackageUpdatePage.class.php index cef2a762f90..c196d58e943 100644 --- a/wcfsetup/install/files/lib/acp/page/PackageUpdatePage.class.php +++ b/wcfsetup/install/files/lib/acp/page/PackageUpdatePage.class.php @@ -23,7 +23,7 @@ class PackageUpdatePage extends AbstractPage /** * list of available updates - * @var array + * @var mixed[] */ public $availableUpdates = []; diff --git a/wcfsetup/install/files/lib/acp/page/PackageUpdateServerListPage.class.php b/wcfsetup/install/files/lib/acp/page/PackageUpdateServerListPage.class.php index aea90eaf81e..8a1d3765bdd 100755 --- a/wcfsetup/install/files/lib/acp/page/PackageUpdateServerListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/PackageUpdateServerListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\PackageUpdateServerGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property PackageUpdateServerGridView $gridView + * @extends AbstractGridViewPage */ class PackageUpdateServerListPage extends AbstractGridViewPage { @@ -28,7 +27,7 @@ class PackageUpdateServerListPage extends AbstractGridViewPage public $neededPermissions = ['admin.configuration.package.canEditServer']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): PackageUpdateServerGridView { return new PackageUpdateServerGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/PageListPage.class.php b/wcfsetup/install/files/lib/acp/page/PageListPage.class.php index ef153809267..7b129a5fa14 100644 --- a/wcfsetup/install/files/lib/acp/page/PageListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/PageListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\PageGridView; use wcf\system\language\LanguageFactory; use wcf\system\WCF; @@ -16,7 +15,7 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @property PageGridView $gridView + * @extends AbstractGridViewPage */ class PageListPage extends AbstractGridViewPage { @@ -58,7 +57,7 @@ public function assignVariables() } #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): PageGridView { return new PageGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/PaidSubscriptionListPage.class.php b/wcfsetup/install/files/lib/acp/page/PaidSubscriptionListPage.class.php index 3d8b7ce5060..242e3994a0b 100644 --- a/wcfsetup/install/files/lib/acp/page/PaidSubscriptionListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/PaidSubscriptionListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\PaidSubscriptionGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property PaidSubscriptionGridView $gridView + * @extends AbstractGridViewPage */ class PaidSubscriptionListPage extends AbstractGridViewPage { @@ -33,7 +32,7 @@ class PaidSubscriptionListPage extends AbstractGridViewPage public $neededPermissions = ['admin.paidSubscription.canManageSubscription']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): PaidSubscriptionGridView { return new PaidSubscriptionGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/PaidSubscriptionTransactionLogListPage.class.php b/wcfsetup/install/files/lib/acp/page/PaidSubscriptionTransactionLogListPage.class.php index 0660032c323..371e8aae96e 100644 --- a/wcfsetup/install/files/lib/acp/page/PaidSubscriptionTransactionLogListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/PaidSubscriptionTransactionLogListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\PaidSubscriptionTransactionLogGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property PaidSubscriptionTransactionLogGridView $gridView + * @extends AbstractGridViewPage */ class PaidSubscriptionTransactionLogListPage extends AbstractGridViewPage { @@ -33,7 +32,7 @@ class PaidSubscriptionTransactionLogListPage extends AbstractGridViewPage public $neededPermissions = ['admin.paidSubscription.canManageSubscription']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): PaidSubscriptionTransactionLogGridView { return new PaidSubscriptionTransactionLogGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/PaidSubscriptionTransactionLogPage.class.php b/wcfsetup/install/files/lib/acp/page/PaidSubscriptionTransactionLogPage.class.php index 491577609b9..c694a9cbb5e 100644 --- a/wcfsetup/install/files/lib/acp/page/PaidSubscriptionTransactionLogPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/PaidSubscriptionTransactionLogPage.class.php @@ -39,7 +39,7 @@ class PaidSubscriptionTransactionLogPage extends AbstractPage /** * log entry object - * @var\wcf\data\paid\subscription\transaction\log\PaidSubscriptionTransactionLog + * @var PaidSubscriptionTransactionLog */ public $log; diff --git a/wcfsetup/install/files/lib/acp/page/PaidSubscriptionUserListPage.class.php b/wcfsetup/install/files/lib/acp/page/PaidSubscriptionUserListPage.class.php index 0ccd7d0affe..11c6b66491c 100644 --- a/wcfsetup/install/files/lib/acp/page/PaidSubscriptionUserListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/PaidSubscriptionUserListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\PaidSubscriptionUserGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property PaidSubscriptionUserGridView $gridView + * @extends AbstractGridViewPage */ class PaidSubscriptionUserListPage extends AbstractGridViewPage { @@ -33,7 +32,7 @@ class PaidSubscriptionUserListPage extends AbstractGridViewPage public $neededPermissions = ['admin.paidSubscription.canManageSubscription']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): PaidSubscriptionUserGridView { return new PaidSubscriptionUserGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/ReactionTypeListPage.class.php b/wcfsetup/install/files/lib/acp/page/ReactionTypeListPage.class.php index e7fd3017a91..5d1114bd05d 100644 --- a/wcfsetup/install/files/lib/acp/page/ReactionTypeListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/ReactionTypeListPage.class.php @@ -12,7 +12,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @property ReactionTypeList $objectList + * @extends MultipleLinkPage */ class ReactionTypeListPage extends MultipleLinkPage { diff --git a/wcfsetup/install/files/lib/acp/page/RebuildDataPage.class.php b/wcfsetup/install/files/lib/acp/page/RebuildDataPage.class.php index ae81802179f..8ac7cb77cca 100644 --- a/wcfsetup/install/files/lib/acp/page/RebuildDataPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/RebuildDataPage.class.php @@ -6,6 +6,7 @@ use wcf\page\AbstractPage; use wcf\system\event\EventHandler; use wcf\system\WCF; +use wcf\system\worker\RegisteredWorker; /** * Show the list of available rebuild data options. @@ -27,7 +28,7 @@ final class RebuildDataPage extends AbstractPage public $neededPermissions = ['admin.management.canRebuildData']; /** - * @var iterable + * @var iterable */ private iterable $workers; diff --git a/wcfsetup/install/files/lib/acp/page/SmileyListPage.class.php b/wcfsetup/install/files/lib/acp/page/SmileyListPage.class.php index 4e813538b15..9e0c5272902 100644 --- a/wcfsetup/install/files/lib/acp/page/SmileyListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/SmileyListPage.class.php @@ -17,7 +17,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @property SmileyList $objectList + * @extends MultipleLinkPage */ class SmileyListPage extends MultipleLinkPage { diff --git a/wcfsetup/install/files/lib/acp/page/StatPage.class.php b/wcfsetup/install/files/lib/acp/page/StatPage.class.php index e28685cd38f..d491b673a9a 100644 --- a/wcfsetup/install/files/lib/acp/page/StatPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/StatPage.class.php @@ -2,6 +2,7 @@ namespace wcf\acp\page; +use wcf\data\object\type\ObjectType; use wcf\data\object\type\ObjectTypeCache; use wcf\page\AbstractPage; use wcf\system\WCF; @@ -40,7 +41,7 @@ class StatPage extends AbstractPage /** * available object type - * @var array + * @var array> */ public $availableObjectTypes = []; diff --git a/wcfsetup/install/files/lib/acp/page/StyleListPage.class.php b/wcfsetup/install/files/lib/acp/page/StyleListPage.class.php index 56688f1afe2..427123357a4 100644 --- a/wcfsetup/install/files/lib/acp/page/StyleListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/StyleListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\StyleGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property StyleGridView $gridView + * @extends AbstractGridViewPage */ class StyleListPage extends AbstractGridViewPage { @@ -28,7 +27,7 @@ class StyleListPage extends AbstractGridViewPage public $neededPermissions = ['admin.style.canManageStyle']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): StyleGridView { return new StyleGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/SystemCheckPage.class.php b/wcfsetup/install/files/lib/acp/page/SystemCheckPage.class.php index fcaf91fbab6..891dd9a41bf 100644 --- a/wcfsetup/install/files/lib/acp/page/SystemCheckPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/SystemCheckPage.class.php @@ -33,7 +33,7 @@ class SystemCheckPage extends AbstractPage /** * A list of directories that need to be writable at all times, grouped by their application * identifier. Only the directory itself is checked, unless the path ends with `/*`. - * @var string[][] + * @var array> */ public $directories = [ 'wcf' => [ @@ -53,6 +53,12 @@ class SystemCheckPage extends AbstractPage ], ]; + /** + * @var array{ + * mysql: array, + * mariadb: array, + * } + */ public $mysqlVersions = [ 'mysql' => [ '8' => '8.0.30', @@ -62,6 +68,9 @@ class SystemCheckPage extends AbstractPage ], ]; + /** + * @var list> + */ public $phpExtensions = [ 'ctype', 'dom', @@ -76,8 +85,19 @@ class SystemCheckPage extends AbstractPage 'zlib', ]; + /** + * @var int + */ public $phpMemoryLimit = 128 * 1024 * 1024; + /** + * @var array{ + * minimum: string, + * deprecated: list, + * sufficient: list, + * recommended: list, + * } + */ public $phpVersions = [ 'minimum' => '8.1.2', 'deprecated' => [], @@ -85,6 +105,9 @@ class SystemCheckPage extends AbstractPage 'recommended' => ['8.2', '8.3'], ]; + /** + * @var array>> + */ public $foreignKeys = [ 'wcf1_user' => [ 'avatarFileID' => [ @@ -118,6 +141,9 @@ class SystemCheckPage extends AbstractPage ], ]; + /** + * @var mixed[] + */ public $results = [ 'directories' => [], 'mysql' => [ @@ -221,6 +247,9 @@ public function assignVariables() ]); } + /** + * @return void + */ protected function validateMysql() { // check sql version @@ -312,6 +341,9 @@ protected function validateMysql() } } + /** + * @return void + */ protected function validatePhpExtensions() { foreach ($this->phpExtensions as $phpExtension) { @@ -339,6 +371,9 @@ protected function validatePhpExtensions() && $this->results['php']['opcache'] !== false; } + /** + * @return void + */ protected function validatePhpMemoryLimit() { $this->results['php']['memoryLimit']['required'] = $this->phpMemoryLimit; @@ -357,6 +392,9 @@ protected function validatePhpMemoryLimit() $this->results['status']['php'] = $this->results['status']['php'] && $this->results['php']['memoryLimit']['result']; } + /** + * @return void + */ protected function validatePhpX64() { $this->results['php']['x64'] = \PHP_INT_SIZE == 8; @@ -364,6 +402,9 @@ protected function validatePhpX64() $this->results['status']['php'] = $this->results['status']['php'] && $this->results['php']['x64']; } + /** + * @return void + */ protected function validatePhpVersion() { $phpVersion = \PHP_VERSION; @@ -387,6 +428,9 @@ protected function validatePhpVersion() $this->results['status']['php'] = $this->results['status']['php'] && ($this->results['php']['version']['result'] !== 'unsupported'); } + /** + * @return void + */ protected function validatePhpGdSupport() { if (!\function_exists('\gd_info')) { @@ -407,6 +451,9 @@ protected function validatePhpGdSupport() $this->results['status']['php'] = $this->results['status']['php'] && $this->results['php']['gd']['result']; } + /** + * @return void + */ protected function validateWritableDirectories() { foreach ($this->directories as $abbreviation => $directories) { @@ -423,6 +470,10 @@ protected function validateWritableDirectories() $this->results['status']['directories'] = empty($this->results['directories']); } + /** + * @param string $path + * @return bool + */ protected function checkDirectory($path) { if (!$this->createDirectoryIfNotExists($path)) { @@ -434,6 +485,10 @@ protected function checkDirectory($path) return $this->makeDirectoryWritable($path); } + /** + * @param string $path + * @return bool + */ protected function createDirectoryIfNotExists($path) { if (!\file_exists($path) && !FileUtil::makePath($path)) { @@ -447,6 +502,10 @@ protected function createDirectoryIfNotExists($path) return true; } + /** + * @param string $path + * @return bool + */ protected function makeDirectoryWritable($path) { try { diff --git a/wcfsetup/install/files/lib/acp/page/TagListPage.class.php b/wcfsetup/install/files/lib/acp/page/TagListPage.class.php index 47e821d8e50..9401e9a2c5f 100644 --- a/wcfsetup/install/files/lib/acp/page/TagListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/TagListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\TagGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property TagGridView $gridView + * @extends AbstractGridViewPage */ class TagListPage extends AbstractGridViewPage { @@ -33,7 +32,7 @@ class TagListPage extends AbstractGridViewPage public $neededModules = ['MODULE_TAGGING']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): TagGridView { return new TagGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/TemplateDiffPage.class.php b/wcfsetup/install/files/lib/acp/page/TemplateDiffPage.class.php index 40995ac164d..1b2cd66edc9 100644 --- a/wcfsetup/install/files/lib/acp/page/TemplateDiffPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/TemplateDiffPage.class.php @@ -52,7 +52,7 @@ class TemplateDiffPage extends AbstractPage /** * differences between both templates - * @var array + * @var mixed[] */ public $diff; diff --git a/wcfsetup/install/files/lib/acp/page/TemplateGroupListPage.class.php b/wcfsetup/install/files/lib/acp/page/TemplateGroupListPage.class.php index f3b6b774687..058696cb196 100644 --- a/wcfsetup/install/files/lib/acp/page/TemplateGroupListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/TemplateGroupListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\TemplateGroupGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property TemplateGroupGridView $gridView + * @extends AbstractGridViewPage */ class TemplateGroupListPage extends AbstractGridViewPage { @@ -28,7 +27,7 @@ class TemplateGroupListPage extends AbstractGridViewPage public $neededPermissions = ['admin.template.canManageTemplate']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): TemplateGroupGridView { return new TemplateGroupGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/TemplateListPage.class.php b/wcfsetup/install/files/lib/acp/page/TemplateListPage.class.php index 8c02081d630..a3faaadf85f 100644 --- a/wcfsetup/install/files/lib/acp/page/TemplateListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/TemplateListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\TemplateGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property TemplateGridView $gridView + * @extends AbstractGridViewPage */ class TemplateListPage extends AbstractGridViewPage { @@ -28,7 +27,7 @@ class TemplateListPage extends AbstractGridViewPage public $neededPermissions = ['admin.template.canManageTemplate']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): TemplateGridView { return new TemplateGridView(TemplateGridView::DEFAULT_TEMPLATE_GROUP_ID); } diff --git a/wcfsetup/install/files/lib/acp/page/TrophyListPage.class.php b/wcfsetup/install/files/lib/acp/page/TrophyListPage.class.php index 8723f3b26c8..716a5fe5bdb 100644 --- a/wcfsetup/install/files/lib/acp/page/TrophyListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/TrophyListPage.class.php @@ -12,6 +12,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * @since 3.1 + * + * @extends MultipleLinkPage */ class TrophyListPage extends MultipleLinkPage { diff --git a/wcfsetup/install/files/lib/acp/page/UserAuthenticationFailureListPage.class.php b/wcfsetup/install/files/lib/acp/page/UserAuthenticationFailureListPage.class.php index ea9b1d61027..53c8f23f5b8 100644 --- a/wcfsetup/install/files/lib/acp/page/UserAuthenticationFailureListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/UserAuthenticationFailureListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\UserAuthenticationFailureGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property UserAuthenticationFailureGridView $gridView + * @extends AbstractGridViewPage */ class UserAuthenticationFailureListPage extends AbstractGridViewPage { @@ -33,7 +32,7 @@ class UserAuthenticationFailureListPage extends AbstractGridViewPage public $neededModules = ['ENABLE_USER_AUTHENTICATION_FAILURE']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): UserAuthenticationFailureGridView { return new UserAuthenticationFailureGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/UserGroupAssignmentListPage.class.php b/wcfsetup/install/files/lib/acp/page/UserGroupAssignmentListPage.class.php index 010adf14610..a1973a8c309 100644 --- a/wcfsetup/install/files/lib/acp/page/UserGroupAssignmentListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/UserGroupAssignmentListPage.class.php @@ -2,9 +2,7 @@ namespace wcf\acp\page; -use wcf\data\user\group\assignment\UserGroupAssignmentList; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\UserGroupAssignmentGridView; /** @@ -14,7 +12,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @property UserGroupAssignmentList $objectList + * @extends AbstractGridViewPage */ class UserGroupAssignmentListPage extends AbstractGridViewPage { @@ -29,7 +27,7 @@ class UserGroupAssignmentListPage extends AbstractGridViewPage public $neededPermissions = ['admin.user.canManageGroupAssignment']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): UserGroupAssignmentGridView { return new UserGroupAssignmentGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/UserGroupListPage.class.php b/wcfsetup/install/files/lib/acp/page/UserGroupListPage.class.php index cfb1bbc61f1..08ba8c6fd82 100755 --- a/wcfsetup/install/files/lib/acp/page/UserGroupListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/UserGroupListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\UserGroupGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2025 WoltLab GmbH * @license GNU Lesser General Public License * - * @property UserGroupGridView $gridView + * @extends AbstractGridViewPage */ class UserGroupListPage extends AbstractGridViewPage { @@ -28,7 +27,7 @@ class UserGroupListPage extends AbstractGridViewPage public $neededPermissions = ['admin.user.canEditGroup', 'admin.user.canDeleteGroup']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): UserGroupGridView { return new UserGroupGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/UserListPage.class.php b/wcfsetup/install/files/lib/acp/page/UserListPage.class.php index e87312076d8..f45b5c5ef20 100755 --- a/wcfsetup/install/files/lib/acp/page/UserListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/UserListPage.class.php @@ -2,7 +2,10 @@ namespace wcf\acp\page; +use wcf\data\DatabaseObject; +use wcf\data\DatabaseObjectList; use wcf\data\user\group\UserGroup; +use wcf\data\user\option\UserOption; use wcf\data\user\option\ViewableUserOption; use wcf\data\user\User; use wcf\data\user\UserProfile; @@ -25,6 +28,8 @@ * @author Marcel Werk * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @extends SortablePage> */ class UserListPage extends SortablePage { @@ -42,7 +47,7 @@ class UserListPage extends SortablePage /** * applies special CSS classes for selected columns - * @var array + * @var array */ public $columnStyling = [ 'registrationDate' => 'columnDate', @@ -87,7 +92,7 @@ class UserListPage extends SortablePage /** * list of available user option names - * @var array + * @var array */ public $options = []; @@ -253,6 +258,8 @@ public function countItems() /** * Fetches the list of results. + * + * @return void */ protected function readUsers() { @@ -367,6 +374,8 @@ protected function readUsers() /** * Fetches the result of the search with the given search id. + * + * @return void */ protected function readSearchResult() { @@ -396,19 +405,21 @@ protected function readSearchResult() /** * Fetches the user options from cache. + * + * @return void */ protected function readUserOptions() { - $this->options = UserOptionCacheBuilder::getInstance()->getData([], 'options'); - - foreach ($this->options as &$option) { - $option = new ViewableUserOption($option); - } - unset($option); + $this->options = \array_map( + static fn(UserOption $option) => new ViewableUserOption($option), + UserOptionCacheBuilder::getInstance()->getData([], 'options') + ); } /** * Reads the column heads. + * + * @return void */ protected function readColumnsHeads() { diff --git a/wcfsetup/install/files/lib/acp/page/UserOptionCategoryListPage.class.php b/wcfsetup/install/files/lib/acp/page/UserOptionCategoryListPage.class.php index 2841acf31fc..b60940d9ebf 100644 --- a/wcfsetup/install/files/lib/acp/page/UserOptionCategoryListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/UserOptionCategoryListPage.class.php @@ -12,7 +12,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @property UserOptionCategoryList $objectList + * @extends SortablePage */ class UserOptionCategoryListPage extends SortablePage { diff --git a/wcfsetup/install/files/lib/acp/page/UserOptionListPage.class.php b/wcfsetup/install/files/lib/acp/page/UserOptionListPage.class.php index eae6dbb669a..36c74b993b8 100644 --- a/wcfsetup/install/files/lib/acp/page/UserOptionListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/UserOptionListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\UserOptionGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2024 WoltLab GmbH * @license GNU Lesser General Public License * - * @property UserOptionGridView $gridView + * @extends AbstractGridViewPage */ class UserOptionListPage extends AbstractGridViewPage { @@ -28,7 +27,7 @@ class UserOptionListPage extends AbstractGridViewPage public $neededPermissions = ['admin.user.canManageUserOption']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): UserOptionGridView { return new UserOptionGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/UserRankListPage.class.php b/wcfsetup/install/files/lib/acp/page/UserRankListPage.class.php index 076ffb6487c..79a541125a3 100644 --- a/wcfsetup/install/files/lib/acp/page/UserRankListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/UserRankListPage.class.php @@ -3,7 +3,6 @@ namespace wcf\acp\page; use wcf\page\AbstractGridViewPage; -use wcf\system\gridView\AbstractGridView; use wcf\system\gridView\admin\UserRankGridView; /** @@ -13,7 +12,7 @@ * @copyright 2001-2024 WoltLab GmbH * @license GNU Lesser General Public License * - * @property UserRankGridView $gridView + * @extends AbstractGridViewPage */ class UserRankListPage extends AbstractGridViewPage { @@ -33,7 +32,7 @@ class UserRankListPage extends AbstractGridViewPage public $neededModules = ['MODULE_USER_RANK']; #[\Override] - protected function createGridView(): AbstractGridView + protected function createGridView(): UserRankGridView { return new UserRankGridView(); } diff --git a/wcfsetup/install/files/lib/acp/page/UserTrophyListPage.class.php b/wcfsetup/install/files/lib/acp/page/UserTrophyListPage.class.php index 00d6f30dace..40f596d42a3 100644 --- a/wcfsetup/install/files/lib/acp/page/UserTrophyListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/UserTrophyListPage.class.php @@ -16,6 +16,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * @since 3.1 + * + * @extends SortablePage */ class UserTrophyListPage extends SortablePage { diff --git a/wcfsetup/install/files/lib/acp/page/VersionTrackerListPage.class.php b/wcfsetup/install/files/lib/acp/page/VersionTrackerListPage.class.php index 7cae4b06d60..376dc3f394f 100644 --- a/wcfsetup/install/files/lib/acp/page/VersionTrackerListPage.class.php +++ b/wcfsetup/install/files/lib/acp/page/VersionTrackerListPage.class.php @@ -2,6 +2,7 @@ namespace wcf\acp\page; +use wcf\data\DatabaseObject; use wcf\data\IVersionTrackerObject; use wcf\data\language\Language; use wcf\page\AbstractPage; @@ -39,7 +40,7 @@ class VersionTrackerListPage extends AbstractPage public $objectType = ''; /** - * @var IVersionTrackerProvider + * @var IVersionTrackerProvider */ public $objectTypeProcessor; @@ -74,7 +75,7 @@ class VersionTrackerListPage extends AbstractPage /** * differences between both versions - * @var array + * @var mixed[] */ public $diffs = []; diff --git a/wcfsetup/install/files/lib/action/AJAXFileDeleteAction.class.php b/wcfsetup/install/files/lib/action/AJAXFileDeleteAction.class.php index a2fabe34967..eb62ecb3a48 100644 --- a/wcfsetup/install/files/lib/action/AJAXFileDeleteAction.class.php +++ b/wcfsetup/install/files/lib/action/AJAXFileDeleteAction.class.php @@ -92,7 +92,8 @@ public function execute() /** * Sends a JSON-encoded response. * - * @param array $data + * @param mixed[] $data + * @return never */ protected function sendJsonResponse(array $data) { diff --git a/wcfsetup/install/files/lib/action/AJAXFileUploadAction.class.php b/wcfsetup/install/files/lib/action/AJAXFileUploadAction.class.php index e8a4185cc22..41abe4c9f05 100644 --- a/wcfsetup/install/files/lib/action/AJAXFileUploadAction.class.php +++ b/wcfsetup/install/files/lib/action/AJAXFileUploadAction.class.php @@ -148,7 +148,8 @@ public function execute() /** * Sends a JSON-encoded response. * - * @param array $data + * @param mixed[] $data + * @return void */ protected function sendJsonResponse(array $data) { diff --git a/wcfsetup/install/files/lib/action/AJAXInvokeAction.class.php b/wcfsetup/install/files/lib/action/AJAXInvokeAction.class.php index 242940e4c8c..ea065c757c4 100644 --- a/wcfsetup/install/files/lib/action/AJAXInvokeAction.class.php +++ b/wcfsetup/install/files/lib/action/AJAXInvokeAction.class.php @@ -121,6 +121,8 @@ public function execute() /** * Invokes action method. + * + * @return void */ protected function invoke() { @@ -160,6 +162,8 @@ protected function invoke() /** * Sends JSON-Encoded response. + * + * @return mixed */ protected function sendResponse() { @@ -181,6 +185,8 @@ public function getResponse() /** * Enables debug mode. + * + * @return void */ public function enableDebugMode() { @@ -203,7 +209,7 @@ public function enableDebugMode() * ) * ) * - * @param array $data + * @param array $data * @return AJAXInvokeAction * @throws SystemException */ diff --git a/wcfsetup/install/files/lib/action/AJAXUploadAction.class.php b/wcfsetup/install/files/lib/action/AJAXUploadAction.class.php index 2a4a8bc6b57..e0e2d18c61a 100644 --- a/wcfsetup/install/files/lib/action/AJAXUploadAction.class.php +++ b/wcfsetup/install/files/lib/action/AJAXUploadAction.class.php @@ -4,7 +4,6 @@ use Laminas\Diactoros\Response\JsonResponse; use wcf\system\upload\UploadHandler; -use wcf\util\JSON; /** * Default implementation for file uploads using the AJAX-API. @@ -26,7 +25,7 @@ public function readParameters() } /** - * @inheritDoc + * @return mixed */ protected function sendResponse() { diff --git a/wcfsetup/install/files/lib/action/AbstractAction.class.php b/wcfsetup/install/files/lib/action/AbstractAction.class.php index 51ac1305553..e43f1fadf76 100644 --- a/wcfsetup/install/files/lib/action/AbstractAction.class.php +++ b/wcfsetup/install/files/lib/action/AbstractAction.class.php @@ -39,9 +39,7 @@ abstract class AbstractAction implements IAction /** * @inheritDoc */ - final public function __construct() - { - } + final public function __construct() {} /** * @inheritDoc @@ -121,6 +119,8 @@ public function execute() /** * Calls the 'executed' event after the successful execution of this action. * This functions won't called automatically. You must do this manually, if you inherit AbstractAction. + * + * @return void */ protected function executed() { diff --git a/wcfsetup/install/files/lib/action/AbstractAjaxAction.class.php b/wcfsetup/install/files/lib/action/AbstractAjaxAction.class.php index be5ecac70bf..4452a35525a 100644 --- a/wcfsetup/install/files/lib/action/AbstractAjaxAction.class.php +++ b/wcfsetup/install/files/lib/action/AbstractAjaxAction.class.php @@ -12,7 +12,8 @@ abstract class AbstractAjaxAction extends AbstractAction /** * Sends a JSON-encoded response. * - * @param array $data + * @param mixed[] $data + * @return never */ protected function sendJsonResponse(array $data) { diff --git a/wcfsetup/install/files/lib/action/AbstractDialogAction.class.php b/wcfsetup/install/files/lib/action/AbstractDialogAction.class.php index dc985bdde1a..0cc02bd85bd 100644 --- a/wcfsetup/install/files/lib/action/AbstractDialogAction.class.php +++ b/wcfsetup/install/files/lib/action/AbstractDialogAction.class.php @@ -3,6 +3,7 @@ namespace wcf\action; use Laminas\Diactoros\Response\JsonResponse; +use Psr\Http\Message\ResponseInterface; use wcf\system\exception\AJAXException; use wcf\system\exception\IllegalLinkException; use wcf\util\StringUtil; @@ -26,7 +27,7 @@ abstract class AbstractDialogAction extends AbstractSecureAction /** * response data - * @var array + * @var mixed[] */ public $data = []; @@ -54,7 +55,7 @@ public function readParameters() /** * @inheritDoc */ - final public function execute() + final public function execute(): ResponseInterface { parent::execute(); @@ -73,6 +74,8 @@ final public function execute() /** * Validates current dialog step. + * + * @return void */ abstract protected function validateStep(); } diff --git a/wcfsetup/install/files/lib/action/AbstractOauth2Action.class.php b/wcfsetup/install/files/lib/action/AbstractOauth2Action.class.php index 57e04b01e12..c06351cf95e 100644 --- a/wcfsetup/install/files/lib/action/AbstractOauth2Action.class.php +++ b/wcfsetup/install/files/lib/action/AbstractOauth2Action.class.php @@ -108,6 +108,8 @@ protected function usePkce(): bool /** * Turns the access token response into an oauth user. + * + * @param array $accessToken */ abstract protected function getUser(array $accessToken): OauthUser; @@ -118,6 +120,8 @@ abstract protected function processUser(OauthUser $oauthUser): ResponseInterface /** * Validates the state parameter. + * + * @return void */ protected function validateState() { @@ -138,6 +142,8 @@ protected function validateState() /** * Turns the 'code' into an access token. + * + * @return mixed[] */ protected function codeToAccessToken(string $code): array { diff --git a/wcfsetup/install/files/lib/action/AbstractOauth2AuthAction.class.php b/wcfsetup/install/files/lib/action/AbstractOauth2AuthAction.class.php index 91c9e7cf267..4cfb45c29fe 100644 --- a/wcfsetup/install/files/lib/action/AbstractOauth2AuthAction.class.php +++ b/wcfsetup/install/files/lib/action/AbstractOauth2AuthAction.class.php @@ -124,6 +124,8 @@ protected function mapParameters(ServerRequestInterface $request): OAuth2Success /** * Turns the 'code' into an access token. + * + * @return mixed[] */ protected function getAccessToken(OAuth2Success $auth2Success): array { @@ -247,6 +249,8 @@ protected function validateState(OAuth2Success $auth2Success): void /** * Turns the access token response into an oauth user. + * + * @param mixed[] $accessToken */ abstract protected function getUser(array $accessToken): OauthUser; diff --git a/wcfsetup/install/files/lib/action/AbstractSecureAction.class.php b/wcfsetup/install/files/lib/action/AbstractSecureAction.class.php index 7f350ed4867..938339c9855 100644 --- a/wcfsetup/install/files/lib/action/AbstractSecureAction.class.php +++ b/wcfsetup/install/files/lib/action/AbstractSecureAction.class.php @@ -27,6 +27,8 @@ public function readParameters() /** * Validates the security token. + * + * @return void */ protected function checkSecurityToken() { diff --git a/wcfsetup/install/files/lib/action/BackgroundQueuePerformAction.class.php b/wcfsetup/install/files/lib/action/BackgroundQueuePerformAction.class.php index 5754508f600..078d94f4c37 100644 --- a/wcfsetup/install/files/lib/action/BackgroundQueuePerformAction.class.php +++ b/wcfsetup/install/files/lib/action/BackgroundQueuePerformAction.class.php @@ -24,7 +24,7 @@ final class BackgroundQueuePerformAction extends AbstractAction /** * @inheritDoc */ - public function execute() + public function execute(): JsonResponse { parent::execute(); diff --git a/wcfsetup/install/files/lib/action/CoreRewriteTestAction.class.php b/wcfsetup/install/files/lib/action/CoreRewriteTestAction.class.php index cabcd15279a..1a7935b0992 100644 --- a/wcfsetup/install/files/lib/action/CoreRewriteTestAction.class.php +++ b/wcfsetup/install/files/lib/action/CoreRewriteTestAction.class.php @@ -3,6 +3,7 @@ namespace wcf\action; use Laminas\Diactoros\Response\JsonResponse; +use Psr\Http\Message\ResponseInterface; use wcf\util\HeaderUtil; /** @@ -20,7 +21,7 @@ final class CoreRewriteTestAction extends AbstractAction /** * @inheritDoc */ - public function execute() + public function execute(): ResponseInterface { parent::execute(); diff --git a/wcfsetup/install/files/lib/action/CronjobPerformAction.class.php b/wcfsetup/install/files/lib/action/CronjobPerformAction.class.php index a663813097c..058df950ded 100644 --- a/wcfsetup/install/files/lib/action/CronjobPerformAction.class.php +++ b/wcfsetup/install/files/lib/action/CronjobPerformAction.class.php @@ -3,7 +3,6 @@ namespace wcf\action; use Laminas\Diactoros\Response\EmptyResponse; -use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; use wcf\system\cronjob\CronjobScheduler; @@ -19,7 +18,7 @@ */ final class CronjobPerformAction implements RequestHandlerInterface { - public function handle(ServerRequestInterface $request): ResponseInterface + public function handle(ServerRequestInterface $request): EmptyResponse { CronjobScheduler::getInstance()->executeCronjobs(); diff --git a/wcfsetup/install/files/lib/action/FileDownloadAction.class.php b/wcfsetup/install/files/lib/action/FileDownloadAction.class.php index 52418b0f2bc..2d8696f40c0 100644 --- a/wcfsetup/install/files/lib/action/FileDownloadAction.class.php +++ b/wcfsetup/install/files/lib/action/FileDownloadAction.class.php @@ -159,6 +159,9 @@ public function handle(ServerRequestInterface $request): ResponseInterface ->withHeader('etag', $eTag); } + /** + * @return array{0: ?int, 1: ?int} + */ private function parseRangeHeader(ServerRequestInterface $request, int $fileSize): array { $startByte = 0; diff --git a/wcfsetup/install/files/lib/action/GoogleAuthAction.class.php b/wcfsetup/install/files/lib/action/GoogleAuthAction.class.php index ba8bd180dd0..e2b8de754d3 100644 --- a/wcfsetup/install/files/lib/action/GoogleAuthAction.class.php +++ b/wcfsetup/install/files/lib/action/GoogleAuthAction.class.php @@ -19,10 +19,15 @@ final class GoogleAuthAction extends AbstractOauth2AuthAction { const AVAILABLE_DURING_OFFLINE_MODE = true; + /** + * @var mixed[] + */ private array $configuration; /** * Returns Google's OpenID Connect configuration. + * + * @return mixed[] */ private function getConfiguration(): array { diff --git a/wcfsetup/install/files/lib/action/GridViewFilterAction.class.php b/wcfsetup/install/files/lib/action/GridViewFilterAction.class.php index 6140fee218f..e93d00a2cde 100644 --- a/wcfsetup/install/files/lib/action/GridViewFilterAction.class.php +++ b/wcfsetup/install/files/lib/action/GridViewFilterAction.class.php @@ -6,6 +6,8 @@ use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; +use wcf\data\DatabaseObject; +use wcf\data\DatabaseObjectList; use wcf\http\Helper; use wcf\system\exception\IllegalLinkException; use wcf\system\exception\PermissionDeniedException; @@ -42,7 +44,7 @@ public function handle(ServerRequestInterface $request): ResponseInterface throw new UserInputException('gridView', 'invalid'); } - /** @var AbstractGridView $view */ + /** @var AbstractGridView> $view */ $view = new $parameters['gridView'](...$parameters['gridViewParameters']); if (!$view->isAccessible()) { @@ -78,6 +80,10 @@ public function handle(ServerRequestInterface $request): ResponseInterface } } + /** + * @param AbstractGridView> $gridView + * @param array $values + */ private function getForm(AbstractGridView $gridView, array $values): Psr15DialogForm { $form = new Psr15DialogForm( diff --git a/wcfsetup/install/files/lib/action/IAction.class.php b/wcfsetup/install/files/lib/action/IAction.class.php index a1023e4c0df..42b839731be 100644 --- a/wcfsetup/install/files/lib/action/IAction.class.php +++ b/wcfsetup/install/files/lib/action/IAction.class.php @@ -2,6 +2,8 @@ namespace wcf\action; +use Psr\Http\Message\ResponseInterface; + /** * All action classes should implement this interface. * An action executes a user input without showing a result page or a form. @@ -14,26 +16,36 @@ interface IAction { /** * Initializes this action. + * + * @return void|ResponseInterface */ public function __run(); /** * Reads the given parameters. + * + * @return void|ResponseInterface */ public function readParameters(); /** * Checks the modules of this action. + * + * @return void */ public function checkModules(); /** * Checks the permissions of this action. + * + * @return void */ public function checkPermissions(); /** * Executes this action. + * + * @return void|ResponseInterface */ public function execute(); } diff --git a/wcfsetup/install/files/lib/action/ImageProxyAction.class.php b/wcfsetup/install/files/lib/action/ImageProxyAction.class.php index 0664460ddc9..8f86868f537 100644 --- a/wcfsetup/install/files/lib/action/ImageProxyAction.class.php +++ b/wcfsetup/install/files/lib/action/ImageProxyAction.class.php @@ -78,7 +78,7 @@ private function getHttpClient(): ClientInterface /** * @inheritDoc */ - public function execute() + public function execute(): RedirectResponse { parent::execute(); diff --git a/wcfsetup/install/files/lib/action/NotificationConfirmAction.class.php b/wcfsetup/install/files/lib/action/NotificationConfirmAction.class.php index 34758c5de61..648fee18249 100644 --- a/wcfsetup/install/files/lib/action/NotificationConfirmAction.class.php +++ b/wcfsetup/install/files/lib/action/NotificationConfirmAction.class.php @@ -64,7 +64,7 @@ public function readParameters() /** * @inheritDoc */ - public function execute() + public function execute(): RedirectResponse { parent::execute(); diff --git a/wcfsetup/install/files/lib/action/NotificationDisableAction.class.php b/wcfsetup/install/files/lib/action/NotificationDisableAction.class.php index ed84618ed22..438ef55bb95 100644 --- a/wcfsetup/install/files/lib/action/NotificationDisableAction.class.php +++ b/wcfsetup/install/files/lib/action/NotificationDisableAction.class.php @@ -38,7 +38,7 @@ final class NotificationDisableAction extends AbstractAction /** * @inheritDoc */ - public function readParameters() + public function readParameters(): RedirectResponse { parent::readParameters(); diff --git a/wcfsetup/install/files/lib/action/PaypalCallbackAction.class.php b/wcfsetup/install/files/lib/action/PaypalCallbackAction.class.php index f2a6c44cf4b..7adf6d39dde 100644 --- a/wcfsetup/install/files/lib/action/PaypalCallbackAction.class.php +++ b/wcfsetup/install/files/lib/action/PaypalCallbackAction.class.php @@ -5,6 +5,7 @@ use GuzzleHttp\Psr7\Request; use Laminas\Diactoros\Response\EmptyResponse; use Psr\Http\Client\ClientExceptionInterface; +use Psr\Http\Message\ResponseInterface; use wcf\data\object\type\ObjectTypeCache; use wcf\system\io\HttpFactory; use wcf\system\payment\type\IPaymentType; @@ -22,7 +23,7 @@ final class PaypalCallbackAction extends AbstractAction /** * @inheritDoc */ - public function execute() + public function execute(): ResponseInterface { parent::execute(); diff --git a/wcfsetup/install/files/lib/action/TAJAXException.class.php b/wcfsetup/install/files/lib/action/TAJAXException.class.php index beccd550445..f6ede078722 100644 --- a/wcfsetup/install/files/lib/action/TAJAXException.class.php +++ b/wcfsetup/install/files/lib/action/TAJAXException.class.php @@ -27,9 +27,10 @@ trait TAJAXException * Throws an previously caught exception while maintaining the propriate stacktrace. * * @param \Exception|\Throwable $e - * @throws AJAXException - * @throws \Exception - * @throws \Throwable + * @return never + * @throws AJAXException + * @throws \Exception + * @throws \Throwable */ protected function throwException($e) { diff --git a/wcfsetup/install/files/lib/action/TwitterAuthAction.class.php b/wcfsetup/install/files/lib/action/TwitterAuthAction.class.php index de9d676fcfa..7b6287e1dce 100644 --- a/wcfsetup/install/files/lib/action/TwitterAuthAction.class.php +++ b/wcfsetup/install/files/lib/action/TwitterAuthAction.class.php @@ -202,6 +202,8 @@ protected function getAccessToken(OAuth2Success $auth2Success): array /** * Requests an request_token to initiate the OAuth flow. + * + * @return mixed[] */ private function getRequestToken(): array { @@ -264,7 +266,7 @@ protected function initiate(): ResponseInterface /** * Builds the OAuth authorization header. * - * @param array $parameters + * @param array $parameters */ public function buildOAuthHeader(array $parameters): string { @@ -285,6 +287,8 @@ public function buildOAuthHeader(array $parameters): string /** * Creates an OAuth 1 signature. + * + * @param array $parameters */ public function createSignature( string $url, diff --git a/wcfsetup/install/files/lib/core.functions.php b/wcfsetup/install/files/lib/core.functions.php index b41e5d209a5..2f2ba6116e2 100644 --- a/wcfsetup/install/files/lib/core.functions.php +++ b/wcfsetup/install/files/lib/core.functions.php @@ -22,6 +22,8 @@ /** * Helper method to output debug data for all passed variables, * uses `print_r()` for arrays and objects, `var_dump()` otherwise. + * + * @return never */ function wcfDebug() { @@ -108,6 +110,8 @@ class SensitiveArgument {} /** * If the stacktrace contains a compiled template, the context of the relevant template line * is returned, otherwise an empty array is returned. + * + * @return string[] */ function getTemplateContextLines(\Throwable $e): array { @@ -251,7 +255,8 @@ function logThrowable(\Throwable $e, &$logFile = null): string * Pretty prints the given Throwable. It is recommended to `exit;` * the request after calling this function. * - * @throws \Exception + * @return void + * @throws \Exception */ function printThrowable(\Throwable $e) { @@ -902,6 +907,8 @@ function sanitizeStacktrace(\Throwable $e, bool $ignorePaths = false) * This has the downside that the middleware is less transparent but they simply * rendered stack traces, especially those pasted into messages, unreadable. * In particular wrapped exceptions could yield massive stack traces. + * + * @return mixed[] */ function getTraceWithoutIntermediateMiddleware(\Throwable $e): array { @@ -959,6 +966,9 @@ function formatPath(string $path, int $lineNumber): string ); } + /** + * @param mixed[] $segment + */ function isMiddlewareStart(array $segment): bool { if (!isset($segment['class'])) { @@ -968,6 +978,9 @@ function isMiddlewareStart(array $segment): bool return $segment['class'] === Pipeline::class && $segment['function'] === 'process'; } + /** + * @param mixed[] $segment + */ function isMiddlewareEnd(array $segment): bool { if (!isset($segment['class'])) { diff --git a/wcfsetup/install/files/lib/data/AbstractDatabaseObjectAction.class.php b/wcfsetup/install/files/lib/data/AbstractDatabaseObjectAction.class.php index ff45dafdfa4..723550d8e51 100644 --- a/wcfsetup/install/files/lib/data/AbstractDatabaseObjectAction.class.php +++ b/wcfsetup/install/files/lib/data/AbstractDatabaseObjectAction.class.php @@ -18,6 +18,9 @@ * @author Alexander Ebert * @copyright 2001-2020 WoltLab GmbH * @license GNU Lesser General Public License + * + * @template TDatabaseObject of DatabaseObject + * @template TDatabaseObjectEditor of DatabaseObjectEditor */ abstract class AbstractDatabaseObjectAction implements IDatabaseObjectAction, IDeleteAction { @@ -41,13 +44,13 @@ abstract class AbstractDatabaseObjectAction implements IDatabaseObjectAction, ID /** * list of object editors - * @var DatabaseObjectEditor[] + * @var TDatabaseObjectEditor[] */ protected $objects = []; /** * multi-dimensional array of parameters required by an action - * @var array + * @var mixed[] */ protected $parameters = []; @@ -83,7 +86,7 @@ abstract class AbstractDatabaseObjectAction implements IDatabaseObjectAction, ID /** * values returned by executed action - * @var mixed + * @var mixed|mixed[] */ protected $returnValues; @@ -111,8 +114,8 @@ abstract class AbstractDatabaseObjectAction implements IDatabaseObjectAction, ID * * @param mixed[] $objects * @param string $action - * @param array $parameters - * @throws SystemException + * @param mixed[] $parameters + * @throws SystemException */ public function __construct(array $objects, $action, array $parameters = []) { @@ -161,6 +164,7 @@ public function __construct(array $objects, $action, array $parameters = []) * * @param string $baseClass * @param string $indexName + * @return void */ protected function __init($baseClass, $indexName) { @@ -227,6 +231,8 @@ public function executeAction() /** * Resets cache of database object. + * + * @return void */ protected function resetCache() { @@ -254,7 +260,8 @@ public function getObjectIDs() /** * Sets the database objects. * - * @param DatabaseObjectEditor[] $objects + * @param TDatabaseObjectEditor[] $objects + * @return void */ public function setObjects(array $objects) { @@ -289,6 +296,8 @@ public function getReturnValues() /** * Validates permissions and parameters. + * + * @return void */ public function validateCreate() { @@ -324,6 +333,8 @@ public function validateDelete() /** * Validates permissions and parameters. + * + * @return void */ public function validateUpdate() { @@ -347,7 +358,7 @@ public function validateUpdate() /** * Creates new database object. * - * @return DatabaseObject + * @return TDatabaseObject */ public function create() { @@ -375,6 +386,8 @@ public function delete() /** * Updates data. + * + * @return void */ public function update() { @@ -397,6 +410,8 @@ public function update() /** * Reads data by data id. + * + * @return void */ protected function readObjects() { @@ -417,6 +432,7 @@ protected function readObjects() WHERE " . $indexName . " IN (" . \str_repeat('?,', \count($this->objectIDs) - 1) . "?)"; $statement = WCF::getDB()->prepare($sql); $statement->execute($this->objectIDs); + // @phpstan-ignore argument.templateType while ($object = $statement->fetchObject($baseClass)) { $this->objects[] = new $this->className($object); } @@ -425,8 +441,8 @@ protected function readObjects() /** * Returns a single object and throws a UserInputException if no or more than one object is given. * - * @return DatabaseObjectEditor - * @throws UserInputException + * @return TDatabaseObjectEditor + * @throws UserInputException */ protected function getSingleObject() { @@ -449,6 +465,7 @@ protected function getSingleObject() * @param string $variableName * @param bool $allowEmpty * @param string $arrayIndex + * @return void */ protected function readInteger($variableName, $allowEmpty = false, $arrayIndex = '') { @@ -461,7 +478,8 @@ protected function readInteger($variableName, $allowEmpty = false, $arrayIndex = * @param string $variableName * @param bool $allowEmpty * @param string $arrayIndex - * @since 3.0 + * @return void + * @since 3.0 */ protected function readIntegerArray($variableName, $allowEmpty = false, $arrayIndex = '') { @@ -474,6 +492,7 @@ protected function readIntegerArray($variableName, $allowEmpty = false, $arrayIn * @param string $variableName * @param bool $allowEmpty * @param string $arrayIndex + * @return void */ protected function readString($variableName, $allowEmpty = false, $arrayIndex = '') { @@ -486,7 +505,8 @@ protected function readString($variableName, $allowEmpty = false, $arrayIndex = * @param string $variableName * @param bool $allowEmpty * @param string $arrayIndex - * @since 3.0 + * @return void + * @since 3.0 */ protected function readStringArray($variableName, $allowEmpty = false, $arrayIndex = '') { @@ -499,6 +519,7 @@ protected function readStringArray($variableName, $allowEmpty = false, $arrayInd * @param string $variableName * @param bool $allowEmpty * @param string $arrayIndex + * @return void */ protected function readBoolean($variableName, $allowEmpty = false, $arrayIndex = '') { @@ -511,6 +532,7 @@ protected function readBoolean($variableName, $allowEmpty = false, $arrayIndex = * @param string $variableName * @param bool $allowEmpty * @param string $arrayIndex + * @return void */ protected function readJSON($variableName, $allowEmpty = false, $arrayIndex = '') { @@ -527,8 +549,9 @@ protected function readJSON($variableName, $allowEmpty = false, $arrayIndex = '' * @param string $arrayIndex * @param int $type * @param int $structure - * @throws SystemException - * @throws UserInputException + * @return void + * @throws SystemException + * @throws UserInputException */ protected function readValue($variableName, $allowEmpty, $arrayIndex, $type, $structure) { @@ -648,7 +671,7 @@ protected function readValue($variableName, $allowEmpty, $arrayIndex, $type, $st /** * Returns object class name. * - * @return string + * @return string */ public function getClassName() { @@ -658,7 +681,7 @@ public function getClassName() /** * Returns a list of currently loaded objects. * - * @return DatabaseObjectEditor[] + * @return TDatabaseObjectEditor[] */ public function getObjects() { diff --git a/wcfsetup/install/files/lib/data/DatabaseObject.class.php b/wcfsetup/install/files/lib/data/DatabaseObject.class.php index d680ab781bf..5bc2f040989 100644 --- a/wcfsetup/install/files/lib/data/DatabaseObject.class.php +++ b/wcfsetup/install/files/lib/data/DatabaseObject.class.php @@ -45,16 +45,16 @@ abstract class DatabaseObject implements IIDObject, IStorableObject /** * object data - * @var array + * @var mixed[] */ protected $data; /** * Creates a new instance of the DatabaseObject class. * - * @param mixed $id - * @param array $row - * @param DatabaseObject $object + * @param string|int|null $id + * @param mixed[]|null $row + * @param ?static $object */ public function __construct($id, ?array $row = null, ?self $object = null) { @@ -80,7 +80,8 @@ public function __construct($id, ?array $row = null, ?self $object = null) /** * Stores the data of a database row. * - * @param array $data + * @param mixed[] $data + * @return void */ protected function handleData($data) { @@ -222,6 +223,7 @@ public static function getDatabaseTableIndexName() * @param mixed $sortBy * @param string $sortOrder * @param bool $maintainIndexAssociation + * @return void */ public static function sort(&$objects, $sortBy, $sortOrder = 'ASC', $maintainIndexAssociation = true) { diff --git a/wcfsetup/install/files/lib/data/DatabaseObjectDecorator.class.php b/wcfsetup/install/files/lib/data/DatabaseObjectDecorator.class.php index d5c1eb64f65..e7a4e4bd832 100644 --- a/wcfsetup/install/files/lib/data/DatabaseObjectDecorator.class.php +++ b/wcfsetup/install/files/lib/data/DatabaseObjectDecorator.class.php @@ -10,6 +10,8 @@ * @author Marcel Werk * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @template TDatabaseObject of DatabaseObject */ abstract class DatabaseObjectDecorator extends DatabaseObject { @@ -21,17 +23,13 @@ abstract class DatabaseObjectDecorator extends DatabaseObject /** * decorated object - * @var DatabaseObject + * @var TDatabaseObject */ protected $object; - /** @noinspection PhpMissingParentConstructorInspection */ - /** - * Creates a new DatabaseObjectDecorator object. - * - * @param DatabaseObject $object - * @throws SystemException + * @param TDatabaseObject $object + * @throws SystemException */ public function __construct(DatabaseObject $object) { @@ -82,9 +80,9 @@ public function getData() * Delegates inaccessible methods calls to the decorated object. * * @param string $name - * @param array $arguments - * @return mixed - * @throws SystemException + * @param mixed[] $arguments + * @return mixed + * @throws SystemException */ public function __call($name, $arguments) { @@ -130,7 +128,7 @@ public static function getDatabaseTableIndexName() /** * Returns the name of the base class. * - * @return string + * @return string */ public static function getBaseClass() { @@ -140,7 +138,7 @@ public static function getBaseClass() /** * Returns the decorated object * - * @return DatabaseObject + * @return TDatabaseObject */ public function getDecoratedObject() { diff --git a/wcfsetup/install/files/lib/data/DatabaseObjectEditor.class.php b/wcfsetup/install/files/lib/data/DatabaseObjectEditor.class.php index cac3f74222b..768eb481887 100644 --- a/wcfsetup/install/files/lib/data/DatabaseObjectEditor.class.php +++ b/wcfsetup/install/files/lib/data/DatabaseObjectEditor.class.php @@ -12,6 +12,10 @@ * @author Marcel Werk * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @template TDatabaseObject of DatabaseObject + * @extends DatabaseObjectDecorator + * @implements IEditableObject */ abstract class DatabaseObjectEditor extends DatabaseObjectDecorator implements IEditableObject { @@ -116,9 +120,9 @@ public static function deleteAll(array $objectIDs = []) /** * Creates a new object, returns null if the row already exists. * - * @param array $parameters - * @return IStorableObject|null - * @since 5.3 + * @param array $parameters + * @return ?TDatabaseObject + * @since 5.3 */ public static function createOrIgnore(array $parameters = []) { @@ -136,6 +140,8 @@ public static function createOrIgnore(array $parameters = []) /** * Creates the object and returns the ID. + * + * @param array $parameters */ public static function fastCreate(array $parameters): int|string { diff --git a/wcfsetup/install/files/lib/data/DatabaseObjectList.class.php b/wcfsetup/install/files/lib/data/DatabaseObjectList.class.php index 73181ac403d..6231a84f1f5 100644 --- a/wcfsetup/install/files/lib/data/DatabaseObjectList.class.php +++ b/wcfsetup/install/files/lib/data/DatabaseObjectList.class.php @@ -13,6 +13,10 @@ * @author Marcel Werk * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @template-covariant TDatabaseObject of DatabaseObject|DatabaseObjectDecorator + * @implements ITraversableObject + * @phpstan-ignore generics.variance */ abstract class DatabaseObjectList implements \Countable, ITraversableObject { @@ -36,7 +40,8 @@ abstract class DatabaseObjectList implements \Countable, ITraversableObject /** * result objects - * @var DatabaseObject[] + * @var TDatabaseObject[] + * @phpstan-ignore generics.variance */ public $objects = []; @@ -106,9 +111,6 @@ abstract class DatabaseObjectList implements \Countable, ITraversableObject */ protected $indexToObject = []; - /** - * Creates a new DatabaseObjectList object. - */ public function __construct() { // set class name @@ -141,7 +143,7 @@ public function __construct() /** * Counts the number of objects. * - * @return int + * @return int */ public function countObjects() { @@ -157,6 +159,8 @@ public function countObjects() /** * Reads the object ids from database. + * + * @return void */ public function readObjectIDs() { @@ -173,6 +177,8 @@ public function readObjectIDs() /** * Reads the objects from database. + * + * @return void */ public function readObjects() { @@ -191,6 +197,7 @@ public function readObjects() " . (!empty($this->sqlOrderBy) ? "ORDER BY " . $this->sqlOrderBy : ''); $statement = WCF::getDB()->prepare($sql); $statement->execute($this->objectIDs); + // @phpstan-ignore argument.templateType $this->objects = $statement->fetchObjects(($this->objectClassName ?: $this->className)); } else { $sql = "SELECT " . (!empty($this->sqlSelects) ? $this->sqlSelects . ($this->useQualifiedShorthand ? ',' : '') : '') . " @@ -201,6 +208,7 @@ public function readObjects() " . (!empty($this->sqlOrderBy) ? "ORDER BY " . $this->sqlOrderBy : ''); $statement = WCF::getDB()->prepare($sql, $this->sqlLimit, $this->sqlOffset); $statement->execute($this->getConditionBuilder()->getParameters()); + // @phpstan-ignore argument.templateType $this->objects = $statement->fetchObjects(($this->objectClassName ?: $this->className)); } @@ -227,7 +235,7 @@ public function readObjects() /** * Returns the object ids of the list. * - * @return int[] + * @return int[] */ public function getObjectIDs() { @@ -238,6 +246,7 @@ public function getObjectIDs() * Sets the object ids. * * @param int[] $objectIDs + * @return void */ public function setObjectIDs(array $objectIDs) { @@ -247,7 +256,7 @@ public function setObjectIDs(array $objectIDs) /** * Returns the objects of the list. * - * @return DatabaseObject[] + * @return TDatabaseObject[] */ public function getObjects() { @@ -257,7 +266,7 @@ public function getObjects() /** * Returns the condition builder object. * - * @return PreparedStatementConditionBuilder + * @return PreparedStatementConditionBuilder */ public function getConditionBuilder() { @@ -267,8 +276,8 @@ public function getConditionBuilder() /** * Sets the condition builder dynamically. * - * @param PreparedStatementConditionBuilder $conditionBuilder - * @since 5.3 + * @return void + * @since 5.3 */ public function setConditionBuilder(PreparedStatementConditionBuilder $conditionBuilder) { @@ -278,7 +287,7 @@ public function setConditionBuilder(PreparedStatementConditionBuilder $condition /** * Returns the name of the database table. * - * @return string + * @return string */ public function getDatabaseTableName() { @@ -288,7 +297,7 @@ public function getDatabaseTableName() /** * Returns the name of the database table. * - * @return string + * @return string */ public function getDatabaseTableIndexName() { @@ -298,7 +307,7 @@ public function getDatabaseTableIndexName() /** * Returns the name of the database table alias. * - * @return string + * @return string */ public function getDatabaseTableAlias() { @@ -401,8 +410,8 @@ public function search($objectID) /** * Returns the only object in this list or `null` if the list is empty. * - * @return DatabaseObject|null - * @throws \BadMethodCallException if list contains more than one object + * @return ?TDatabaseObject + * @throws \BadMethodCallException if list contains more than one object */ public function getSingleObject() { diff --git a/wcfsetup/install/files/lib/data/I18nDatabaseObjectList.class.php b/wcfsetup/install/files/lib/data/I18nDatabaseObjectList.class.php index 191c2955a9c..6ade701f7fc 100644 --- a/wcfsetup/install/files/lib/data/I18nDatabaseObjectList.class.php +++ b/wcfsetup/install/files/lib/data/I18nDatabaseObjectList.class.php @@ -11,6 +11,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * @since 3.1 + * + * @template-covariant TDatabaseObject of DatabaseObject|DatabaseObjectDecorator + * @extends DatabaseObjectList */ abstract class I18nDatabaseObjectList extends DatabaseObjectList { @@ -29,7 +32,7 @@ abstract class I18nDatabaseObjectList extends DatabaseObjectList /** * @inheritDoc - * @param int $languageID id of the language that should be used + * @param ?int $languageID id of the language that should be used * @throws \DomainException */ public function __construct($languageID = null) diff --git a/wcfsetup/install/files/lib/data/IAttachmentMessageQuickReplyAction.class.php b/wcfsetup/install/files/lib/data/IAttachmentMessageQuickReplyAction.class.php index 30d337d6674..6f400e70f32 100644 --- a/wcfsetup/install/files/lib/data/IAttachmentMessageQuickReplyAction.class.php +++ b/wcfsetup/install/files/lib/data/IAttachmentMessageQuickReplyAction.class.php @@ -2,19 +2,27 @@ namespace wcf\data; +use wcf\system\attachment\AttachmentHandler; + /** * Default interface for actions implementing quick reply with attachment support. * * @author Alexander Ebert * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @template TContainer of DatabaseObject + * @template TMessage of DatabaseObject + * @template TMessageList of DatabaseObjectList + * @extends IMessageQuickReplyAction */ interface IAttachmentMessageQuickReplyAction extends IMessageQuickReplyAction { /** * Returns an attachment handler object. * - * @param DatabaseObject $container + * @param TContainer $container + * @return AttachmentHandler */ public function getAttachmentHandler(DatabaseObject $container); } diff --git a/wcfsetup/install/files/lib/data/IClipboardAction.class.php b/wcfsetup/install/files/lib/data/IClipboardAction.class.php index 6ef9c3ecadb..1334201033f 100644 --- a/wcfsetup/install/files/lib/data/IClipboardAction.class.php +++ b/wcfsetup/install/files/lib/data/IClipboardAction.class.php @@ -14,11 +14,15 @@ interface IClipboardAction { /** * Unmarks all marked objects. + * + * @return void */ public function unmarkAll(); /** * Validates the 'unmarkAll' action. + * + * @return void */ public function validateUnmarkAll(); } diff --git a/wcfsetup/install/files/lib/data/IDatabaseObjectAction.class.php b/wcfsetup/install/files/lib/data/IDatabaseObjectAction.class.php index f7f7d5f5494..ad77ac6dfc9 100644 --- a/wcfsetup/install/files/lib/data/IDatabaseObjectAction.class.php +++ b/wcfsetup/install/files/lib/data/IDatabaseObjectAction.class.php @@ -13,39 +13,47 @@ interface IDatabaseObjectAction { /** * Executes the previously chosen action. + * + * @return mixed|mixed[] */ public function executeAction(); /** * Validates action-related parameters. + * + * @return void */ public function validateAction(); /** * Returns active action name. * - * @return string + * @return string */ public function getActionName(); /** * Returns DatabaseObject-related object ids. * - * @return int[] + * @return int[] */ public function getObjectIDs(); /** * Returns action-related parameters. * - * @return mixed[] + * @return mixed[] */ public function getParameters(); /** * Returns results returned by active action. * - * @return mixed + * @return array{ + * actionName: string, + * objectIDs: int[], + * returnValues: mixed|mixed[] + * } */ public function getReturnValues(); } diff --git a/wcfsetup/install/files/lib/data/IDatabaseObjectProcessor.class.php b/wcfsetup/install/files/lib/data/IDatabaseObjectProcessor.class.php index 00d5f53d3b0..496b81e6060 100644 --- a/wcfsetup/install/files/lib/data/IDatabaseObjectProcessor.class.php +++ b/wcfsetup/install/files/lib/data/IDatabaseObjectProcessor.class.php @@ -11,18 +11,13 @@ */ interface IDatabaseObjectProcessor { - /** - * Creates a new instance of a database object processor. - * - * @param DatabaseObject $object - */ public function __construct(DatabaseObject $object); /** * Delegates accesses to inaccessible object properties the processed object. * * @param string $name - * @return mixed + * @return mixed */ public function __get($name); @@ -31,7 +26,7 @@ public function __get($name); * object. * * @param string $name - * @return bool + * @return bool */ public function __isset($name); @@ -39,8 +34,8 @@ public function __isset($name); * Delegates inaccessible method calls to the processed database object. * * @param string $name - * @param array $arguments - * @return mixed + * @param mixed[] $arguments + * @return mixed */ public function __call($name, $arguments); } diff --git a/wcfsetup/install/files/lib/data/IDeleteAction.class.php b/wcfsetup/install/files/lib/data/IDeleteAction.class.php index 24fd063193d..55d36a84c62 100644 --- a/wcfsetup/install/files/lib/data/IDeleteAction.class.php +++ b/wcfsetup/install/files/lib/data/IDeleteAction.class.php @@ -15,12 +15,14 @@ interface IDeleteAction /** * Deletes the relevant objects and returns the number of deleted objects. * - * @return int + * @return int */ public function delete(); /** * Validates the "delete" action. + * + * @return void */ public function validateDelete(); } diff --git a/wcfsetup/install/files/lib/data/IEditableCachedObject.class.php b/wcfsetup/install/files/lib/data/IEditableCachedObject.class.php index 98336219aed..5bd59fdce85 100644 --- a/wcfsetup/install/files/lib/data/IEditableCachedObject.class.php +++ b/wcfsetup/install/files/lib/data/IEditableCachedObject.class.php @@ -8,11 +8,16 @@ * @author Marcel Werk * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @template T of IStorableObject + * @extends IEditableObject */ interface IEditableCachedObject extends IEditableObject { /** * Resets the cache of this object type. + * + * @return void */ public static function resetCache(); } diff --git a/wcfsetup/install/files/lib/data/IEditableObject.class.php b/wcfsetup/install/files/lib/data/IEditableObject.class.php index 5b1d32a339d..12cac74b713 100644 --- a/wcfsetup/install/files/lib/data/IEditableObject.class.php +++ b/wcfsetup/install/files/lib/data/IEditableObject.class.php @@ -8,33 +8,39 @@ * @author Marcel Werk * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @template T of IStorableObject */ interface IEditableObject extends IStorableObject { /** * Creates a new object. * - * @param array $parameters - * @return IStorableObject + * @param array $parameters + * @return T */ public static function create(array $parameters = []); /** * Updates this object. * - * @param array $parameters + * @param array $parameters + * @return void */ public function update(array $parameters = []); /** * Updates the counters of this object. * - * @param array $counters + * @param array $counters + * @return void */ public function updateCounters(array $counters = []); /** * Deletes this object. + * + * @return void */ public function delete(); @@ -42,8 +48,8 @@ public function delete(); * Deletes all objects with the given ids and returns the number of deleted * objects. * - * @param array $objectIDs - * @return int + * @param (string|int)[] $objectIDs + * @return int */ public static function deleteAll(array $objectIDs = []); } diff --git a/wcfsetup/install/files/lib/data/IExtendedMessageQuickReplyAction.class.php b/wcfsetup/install/files/lib/data/IExtendedMessageQuickReplyAction.class.php index 8e7edb90d44..a90530472e5 100644 --- a/wcfsetup/install/files/lib/data/IExtendedMessageQuickReplyAction.class.php +++ b/wcfsetup/install/files/lib/data/IExtendedMessageQuickReplyAction.class.php @@ -3,6 +3,10 @@ namespace wcf\data; /** + * @template TContainer of DatabaseObject + * @template TMessage of DatabaseObject + * @template TMessageList of DatabaseObjectList + * @extends IMessageQuickReplyAction * @deprecated 5.5 The concept of starting a message in a simple editor and then migrating to an extended editor no longer exists. */ interface IExtendedMessageQuickReplyAction extends IMessageQuickReplyAction @@ -10,12 +14,14 @@ interface IExtendedMessageQuickReplyAction extends IMessageQuickReplyAction /** * Saves message and jumps to extended mode. * - * @return array + * @return mixed[] */ public function jumpToExtended(); /** * Validates parameters to jump to extended mode. + * + * @return void */ public function validateJumpToExtended(); } diff --git a/wcfsetup/install/files/lib/data/IFile.class.php b/wcfsetup/install/files/lib/data/IFile.class.php index 002c7033e41..62f694f782b 100644 --- a/wcfsetup/install/files/lib/data/IFile.class.php +++ b/wcfsetup/install/files/lib/data/IFile.class.php @@ -20,7 +20,7 @@ interface IFile extends IStorableObject /** * Returns the physical location of the file. * - * @return string + * @return string */ public function getLocation(); } diff --git a/wcfsetup/install/files/lib/data/IGroupedUserListAction.class.php b/wcfsetup/install/files/lib/data/IGroupedUserListAction.class.php index a71aa0162b5..cca3ccc58c2 100644 --- a/wcfsetup/install/files/lib/data/IGroupedUserListAction.class.php +++ b/wcfsetup/install/files/lib/data/IGroupedUserListAction.class.php @@ -13,13 +13,15 @@ interface IGroupedUserListAction { /** * Validates parameters to return a parsed list of users. + * + * @return void */ public function validateGetGroupedUserList(); /** * Returns a parsed list of users. * - * @return array + * @return array{pageCount: int, template: string} */ public function getGroupedUserList(); } diff --git a/wcfsetup/install/files/lib/data/IIDObject.class.php b/wcfsetup/install/files/lib/data/IIDObject.class.php index f3d9c366d0b..dd05fb97b03 100644 --- a/wcfsetup/install/files/lib/data/IIDObject.class.php +++ b/wcfsetup/install/files/lib/data/IIDObject.class.php @@ -15,7 +15,7 @@ interface IIDObject /** * Returns the unique id of the object. * - * @return int + * @return int */ public function getObjectID(); } diff --git a/wcfsetup/install/files/lib/data/IImageViewerAction.class.php b/wcfsetup/install/files/lib/data/IImageViewerAction.class.php index a2e0dae79d0..9de923577e6 100644 --- a/wcfsetup/install/files/lib/data/IImageViewerAction.class.php +++ b/wcfsetup/install/files/lib/data/IImageViewerAction.class.php @@ -15,6 +15,8 @@ interface IImageViewerAction { /** * Validates parameters to load the next images. + * + * @return void */ public function validateLoadNextImages(); @@ -64,7 +66,7 @@ public function validateLoadNextImages(); * [ 'items' => 123 ] * ) * - * @return array + * @return mixed[] */ public function loadNextImages(); } diff --git a/wcfsetup/install/files/lib/data/ILoadableContainerAction.class.php b/wcfsetup/install/files/lib/data/ILoadableContainerAction.class.php index 64373b1c664..6de9d85ab73 100644 --- a/wcfsetup/install/files/lib/data/ILoadableContainerAction.class.php +++ b/wcfsetup/install/files/lib/data/ILoadableContainerAction.class.php @@ -15,11 +15,15 @@ interface ILoadableContainerAction /** * Toggles the container state of the relevant objects and loads their * content if necessary. + * + * @return void */ public function loadContainer(); /** * Validates the 'loadContainer' action. + * + * @return void */ public function validateLoadContainer(); } diff --git a/wcfsetup/install/files/lib/data/IMessageInlineEditorAction.class.php b/wcfsetup/install/files/lib/data/IMessageInlineEditorAction.class.php index eda00e2634e..b26572b1842 100644 --- a/wcfsetup/install/files/lib/data/IMessageInlineEditorAction.class.php +++ b/wcfsetup/install/files/lib/data/IMessageInlineEditorAction.class.php @@ -14,24 +14,28 @@ interface IMessageInlineEditorAction /** * Provides WYSIWYG editor for message inline editing. * - * @return array + * @return array{actionName: 'beginEdit', template: string} */ public function beginEdit(); /** * Saves changes made to a message. * - * @return array + * @return array{actionName: 'save', message: string} */ public function save(); /** * Validates parameters to begin message inline editing. + * + * @return void */ public function validateBeginEdit(); /** * Validates parameters to save changes made to a message. + * + * @return void */ public function validateSave(); } diff --git a/wcfsetup/install/files/lib/data/IMessageQuickReplyAction.class.php b/wcfsetup/install/files/lib/data/IMessageQuickReplyAction.class.php index 804827b1d6d..e0f6a3c006b 100644 --- a/wcfsetup/install/files/lib/data/IMessageQuickReplyAction.class.php +++ b/wcfsetup/install/files/lib/data/IMessageQuickReplyAction.class.php @@ -10,74 +10,81 @@ * @author Alexander Ebert * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @template TContainer of DatabaseObject + * @template TMessage of DatabaseObject + * @template TMessageList of DatabaseObjectList */ interface IMessageQuickReplyAction { /** * Creates a new message object. * - * @return DatabaseObject + * @return TMessage */ public function create(); /** * Returns the current html input processor or a new one if `$message` is not null. * - * @param string|null $message source message - * @return HtmlInputProcessor + * @param ?string $message source message + * @return HtmlInputProcessor */ public function getHtmlInputProcessor($message = null); /** * Returns a message list object. * - * @param DatabaseObject $container + * @param TContainer $container * @param int $lastMessageTime - * @return DatabaseObjectList + * @return TMessageList */ public function getMessageList(DatabaseObject $container, $lastMessageTime); /** * Returns page no for given container object. * - * @param DatabaseObject $container - * @return array + * @param TContainer $container + * @return array{0: int, 1: int} */ public function getPageNo(DatabaseObject $container); /** * Returns the redirect url. * - * @param DatabaseObject $container - * @param DatabaseObject $message - * @return string + * @param TContainer $container + * @param TMessage $message + * @return string */ public function getRedirectUrl(DatabaseObject $container, DatabaseObject $message); /** * Validates the message. * - * @param DatabaseObject $container - * @param HtmlInputProcessor $htmlInputProcessor + * @param TContainer $container + * @return void */ public function validateMessage(DatabaseObject $container, HtmlInputProcessor $htmlInputProcessor); /** * Creates a new message and returns it. * - * @return array + * @return mixed[] */ public function quickReply(); /** * Validates the container object for quick reply. * - * @param DatabaseObject $container + * @param TContainer $container + * @return void */ public function validateContainer(DatabaseObject $container); /** * Validates parameters for quick reply. + * + * @return void */ public function validateQuickReply(); } diff --git a/wcfsetup/install/files/lib/data/IMessageQuickReplyParametersAction.class.php b/wcfsetup/install/files/lib/data/IMessageQuickReplyParametersAction.class.php index 6e109cad7c0..4fed97d1e4d 100644 --- a/wcfsetup/install/files/lib/data/IMessageQuickReplyParametersAction.class.php +++ b/wcfsetup/install/files/lib/data/IMessageQuickReplyParametersAction.class.php @@ -8,6 +8,11 @@ * @author Alexander Ebert * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @template TContainer of DatabaseObject + * @template TMessage of DatabaseObject + * @template TMessageList of DatabaseObjectList + * @extends IMessageQuickReplyAction */ interface IMessageQuickReplyParametersAction extends IMessageQuickReplyAction { diff --git a/wcfsetup/install/files/lib/data/IMessageQuoteAction.class.php b/wcfsetup/install/files/lib/data/IMessageQuoteAction.class.php index c711053b299..7e4c37150b2 100644 --- a/wcfsetup/install/files/lib/data/IMessageQuoteAction.class.php +++ b/wcfsetup/install/files/lib/data/IMessageQuoteAction.class.php @@ -15,37 +15,43 @@ interface IMessageQuoteAction { /** * Validates parameters to return a parsed template of all associated quotes. + * + * @return void */ public function validateGetRenderedQuotes(); /** * Returns the parsed template for all associated quotes. * - * @return array + * @return mixed[] */ public function getRenderedQuotes(); /** * Validates parameters to quote an entire message. + * + * @return void */ public function validateSaveFullQuote(); /** * Quotes an entire message. * - * @return array + * @return mixed[] */ public function saveFullQuote(); /** * Validates parameters to save a quote. + * + * @return void */ public function validateSaveQuote(); /** * Saves the quote message and returns the number of stored quotes. * - * @return array + * @return mixed[] */ public function saveQuote(); } diff --git a/wcfsetup/install/files/lib/data/IObjectTreeNode.class.php b/wcfsetup/install/files/lib/data/IObjectTreeNode.class.php index 7a08c1582eb..fba2b0eacfc 100644 --- a/wcfsetup/install/files/lib/data/IObjectTreeNode.class.php +++ b/wcfsetup/install/files/lib/data/IObjectTreeNode.class.php @@ -9,6 +9,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * @since 5.2 + * + * @extends \RecursiveIterator */ interface IObjectTreeNode extends \Countable, IIDObject, \RecursiveIterator { @@ -16,7 +18,8 @@ interface IObjectTreeNode extends \Countable, IIDObject, \RecursiveIterator * Adds the given node as child node and sets the child node's parent node to this node. * * @param IObjectTreeNode $child added child node - * @throws \InvalidArgumentException if given object is no (deocrated) instance of this class + * @return void + * @throws \InvalidArgumentException if given object is no (deocrated) instance of this class */ public function addChild(self $child); @@ -25,36 +28,36 @@ public function addChild(self $child); * * The minimum depth is `1`. * - * @return int + * @return int */ public function getDepth(); /** * Returns the number of open parent nodes. * - * @return int + * @return int */ public function getOpenParentNodes(); /** * Retruns the parent node of this node. * - * @return static parent node + * @return static parent node */ public function getParentNode(); /** * Returns `true` if this node is the last sibling and `false` otherwise. * - * @return bool + * @return bool */ public function isLastSibling(); /** * Sets the parent node of this node. * - * @param IObjectTreeNode $parentNode parent node - * @throws \InvalidArgumentException if given object is no (deocrated) instance of this class + * @return void + * @throws \InvalidArgumentException if given object is no (deocrated) instance of this class */ public function setParentNode(self $parentNode); } diff --git a/wcfsetup/install/files/lib/data/IPermissionObject.class.php b/wcfsetup/install/files/lib/data/IPermissionObject.class.php index 533245e2a01..d714e4013c2 100644 --- a/wcfsetup/install/files/lib/data/IPermissionObject.class.php +++ b/wcfsetup/install/files/lib/data/IPermissionObject.class.php @@ -17,7 +17,8 @@ interface IPermissionObject * Checks if the active user has the given permissions for this object. * * @param string[] $permissions - * @throws PermissionDeniedException if the active user does not have at least one of the given permissions. + * @return void + * @throws PermissionDeniedException if the active user does not have at least one of the given permissions. */ public function checkPermissions(array $permissions); @@ -26,7 +27,7 @@ public function checkPermissions(array $permissions); * and the active user. * * @param string $permission - * @return mixed + * @return mixed */ public function getPermission($permission); } diff --git a/wcfsetup/install/files/lib/data/IPopoverAction.class.php b/wcfsetup/install/files/lib/data/IPopoverAction.class.php index a8fba25457b..93dfb2f6978 100644 --- a/wcfsetup/install/files/lib/data/IPopoverAction.class.php +++ b/wcfsetup/install/files/lib/data/IPopoverAction.class.php @@ -14,18 +14,15 @@ interface IPopoverAction { /** * Validates the `getPopover` action. + * + * @return void */ public function validateGetPopover(); /** * Returns the requested popover for a specific object. * - * Return value: - * [ - * 'template' => '...' - * ] - * - * @return string[] + * @return array{template: string} */ public function getPopover(); } diff --git a/wcfsetup/install/files/lib/data/IPopoverObject.class.php b/wcfsetup/install/files/lib/data/IPopoverObject.class.php index 748d24f8830..49b2cbd95e2 100644 --- a/wcfsetup/install/files/lib/data/IPopoverObject.class.php +++ b/wcfsetup/install/files/lib/data/IPopoverObject.class.php @@ -18,7 +18,7 @@ interface IPopoverObject extends IIDObject, ITitledLinkObject /** * Returns the CSS class that objects of this type use for popover links. * - * @return string + * @return string */ public function getPopoverLinkClass(); } diff --git a/wcfsetup/install/files/lib/data/ISearchAction.class.php b/wcfsetup/install/files/lib/data/ISearchAction.class.php index 030262013fb..c776e0163d4 100644 --- a/wcfsetup/install/files/lib/data/ISearchAction.class.php +++ b/wcfsetup/install/files/lib/data/ISearchAction.class.php @@ -21,6 +21,8 @@ public function getSearchResultList(); /** * Validates the "getSearchResultList" action. + * + * @return void */ public function validateGetSearchResultList(); } diff --git a/wcfsetup/install/files/lib/data/ISortableAction.class.php b/wcfsetup/install/files/lib/data/ISortableAction.class.php index 8689072dc9f..bbdd811ba89 100644 --- a/wcfsetup/install/files/lib/data/ISortableAction.class.php +++ b/wcfsetup/install/files/lib/data/ISortableAction.class.php @@ -14,11 +14,15 @@ interface ISortableAction { /** * Validates the 'updatePosition' action. + * + * @return void */ public function validateUpdatePosition(); /** * Updates the position of given objects. + * + * @return void */ public function updatePosition(); } diff --git a/wcfsetup/install/files/lib/data/IStorableObject.class.php b/wcfsetup/install/files/lib/data/IStorableObject.class.php index ca6566c2117..a7fbb1f5e4f 100644 --- a/wcfsetup/install/files/lib/data/IStorableObject.class.php +++ b/wcfsetup/install/files/lib/data/IStorableObject.class.php @@ -16,7 +16,7 @@ interface IStorableObject * such data variable exists. * * @param string $name - * @return mixed + * @return mixed */ public function __get($name); @@ -25,42 +25,42 @@ public function __get($name); * is not NULL. * * @param string $name - * @return bool + * @return bool */ public function __isset($name); /** * Returns the value of all object data variables. * - * @return mixed[] + * @return mixed[] */ public function getData(); /** * Returns the name of the database table. * - * @return string + * @return string */ public static function getDatabaseTableName(); /** * Returns the alias of the database table. * - * @return string + * @return string */ public static function getDatabaseTableAlias(); /** * Returns true if database table index is an identity column. * - * @return bool + * @return bool */ public static function getDatabaseTableIndexIsIdentity(); /** * Returns the name of the database table index. * - * @return string + * @return string */ public static function getDatabaseTableIndexName(); } diff --git a/wcfsetup/install/files/lib/data/IThumbnailFile.class.php b/wcfsetup/install/files/lib/data/IThumbnailFile.class.php index 1a6b7f5a15e..e8b6e327756 100644 --- a/wcfsetup/install/files/lib/data/IThumbnailFile.class.php +++ b/wcfsetup/install/files/lib/data/IThumbnailFile.class.php @@ -17,7 +17,7 @@ interface IThumbnailFile extends IFile * Returns the link to the thumbnail file with the given size. * * @param string $size - * @return string + * @return string */ public function getThumbnailLink($size); @@ -25,14 +25,18 @@ public function getThumbnailLink($size); * Returns the physical location of the thumbnail file with the given size. * * @param string $size - * @return string + * @return string */ public function getThumbnailLocation($size); /** * Returns the available thumbnail sizes. * - * @return array + * @return array */ public static function getThumbnailSizes(); } diff --git a/wcfsetup/install/files/lib/data/IToggleAction.class.php b/wcfsetup/install/files/lib/data/IToggleAction.class.php index f16b0d0b434..4b988beaba5 100644 --- a/wcfsetup/install/files/lib/data/IToggleAction.class.php +++ b/wcfsetup/install/files/lib/data/IToggleAction.class.php @@ -14,11 +14,15 @@ interface IToggleAction { /** * Toggles the "isDisabled" status of the relevant objects. + * + * @return void */ public function toggle(); /** * Validates the "toggle" action. + * + * @return void */ public function validateToggle(); } diff --git a/wcfsetup/install/files/lib/data/IToggleContainerAction.class.php b/wcfsetup/install/files/lib/data/IToggleContainerAction.class.php index 2838dbaab82..a36028698d2 100644 --- a/wcfsetup/install/files/lib/data/IToggleContainerAction.class.php +++ b/wcfsetup/install/files/lib/data/IToggleContainerAction.class.php @@ -14,11 +14,15 @@ interface IToggleContainerAction { /** * Toggles the container state of the relevant objects. + * + * @return void */ public function toggleContainer(); /** * Validates the 'toggleContainer' action. + * + * @return void */ public function validateToggleContainer(); } diff --git a/wcfsetup/install/files/lib/data/ITraversableObject.class.php b/wcfsetup/install/files/lib/data/ITraversableObject.class.php index ea76e4f92a3..649ece197b1 100644 --- a/wcfsetup/install/files/lib/data/ITraversableObject.class.php +++ b/wcfsetup/install/files/lib/data/ITraversableObject.class.php @@ -8,6 +8,9 @@ * @author Alexander Ebert * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @template TDatabaseObject of DatabaseObject|DatabaseObjectDecorator + * @extends \SeekableIterator */ interface ITraversableObject extends \SeekableIterator { @@ -15,6 +18,7 @@ interface ITraversableObject extends \SeekableIterator * Sets internal iterator pointer based upon related object id. * * @param int $objectID + * @return void */ public function seekTo($objectID); @@ -23,7 +27,7 @@ public function seekTo($objectID); * pointer to found item. Returns `null` if object id is not found. * * @param int $objectID - * @return DatabaseObject|null + * @return ?TDatabaseObject */ public function search($objectID); } diff --git a/wcfsetup/install/files/lib/data/IUploadAction.class.php b/wcfsetup/install/files/lib/data/IUploadAction.class.php index 4c5a2bb9cd8..73011437749 100644 --- a/wcfsetup/install/files/lib/data/IUploadAction.class.php +++ b/wcfsetup/install/files/lib/data/IUploadAction.class.php @@ -14,13 +14,15 @@ interface IUploadAction { /** * Validates the 'upload' action. + * + * @return void */ public function validateUpload(); /** * Saves uploaded files and returns the data of the uploaded files. * - * @return array + * @return mixed[] */ public function upload(); } diff --git a/wcfsetup/install/files/lib/data/IUserContent.class.php b/wcfsetup/install/files/lib/data/IUserContent.class.php index c98a037808d..6eb387b9838 100644 --- a/wcfsetup/install/files/lib/data/IUserContent.class.php +++ b/wcfsetup/install/files/lib/data/IUserContent.class.php @@ -14,21 +14,21 @@ interface IUserContent extends ITitledLinkObject /** * Returns message creation timestamp. * - * @return int + * @return int */ public function getTime(); /** * Returns author's user id. * - * @return int + * @return int */ public function getUserID(); /** * Returns author's username. * - * @return string + * @return string */ public function getUsername(); } diff --git a/wcfsetup/install/files/lib/data/IVisitableObjectAction.class.php b/wcfsetup/install/files/lib/data/IVisitableObjectAction.class.php index a8bd913b5bc..6318eb165ff 100644 --- a/wcfsetup/install/files/lib/data/IVisitableObjectAction.class.php +++ b/wcfsetup/install/files/lib/data/IVisitableObjectAction.class.php @@ -13,11 +13,15 @@ interface IVisitableObjectAction { /** * Marks objects as read. + * + * @return void */ public function markAsRead(); /** * Validates parameters to mark objects as read. + * + * @return void */ public function validateMarkAsRead(); } diff --git a/wcfsetup/install/files/lib/data/TDatabaseObjectToggle.class.php b/wcfsetup/install/files/lib/data/TDatabaseObjectToggle.class.php index e5b5f113df3..89799a873f0 100644 --- a/wcfsetup/install/files/lib/data/TDatabaseObjectToggle.class.php +++ b/wcfsetup/install/files/lib/data/TDatabaseObjectToggle.class.php @@ -10,12 +10,14 @@ * @license GNU Lesser General Public License * @since 5.2 * - * @mixin AbstractDatabaseObjectAction + * @mixin AbstractDatabaseObjectAction> */ trait TDatabaseObjectToggle { /** * Validates the "toggle" action. + * + * @return void */ public function validateToggle() { @@ -24,6 +26,8 @@ public function validateToggle() /** * Toggles the "isDisabled" status of the relevant objects. + * + * @return void */ public function toggle() { diff --git a/wcfsetup/install/files/lib/data/TI18nDatabaseObjectAction.class.php b/wcfsetup/install/files/lib/data/TI18nDatabaseObjectAction.class.php index 8465a3945b7..4a07fb83e2d 100644 --- a/wcfsetup/install/files/lib/data/TI18nDatabaseObjectAction.class.php +++ b/wcfsetup/install/files/lib/data/TI18nDatabaseObjectAction.class.php @@ -15,7 +15,7 @@ * @license GNU Lesser General Public License * @since 6.0 * - * @mixin AbstractDatabaseObjectAction + * @mixin AbstractDatabaseObjectAction> */ trait TI18nDatabaseObjectAction { @@ -38,6 +38,8 @@ protected function deleteI18nValues(): void /** * Deletes language items and clears the language cache. + * + * @param string[] $languageItems */ private function deleteI18nItems(array $languageItems): void { diff --git a/wcfsetup/install/files/lib/data/acl/option/ACLOptionAction.class.php b/wcfsetup/install/files/lib/data/acl/option/ACLOptionAction.class.php index f64c6ebbf03..9aa431177b8 100644 --- a/wcfsetup/install/files/lib/data/acl/option/ACLOptionAction.class.php +++ b/wcfsetup/install/files/lib/data/acl/option/ACLOptionAction.class.php @@ -12,9 +12,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACLOption create() - * @method ACLOptionEditor[] getObjects() - * @method ACLOptionEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class ACLOptionAction extends AbstractDatabaseObjectAction { @@ -30,6 +28,8 @@ class ACLOptionAction extends AbstractDatabaseObjectAction /** * Validates parameters for ACL options. + * + * @return void */ public function validateLoadAll() { @@ -41,7 +41,7 @@ public function validateLoadAll() /** * Returns a set of permissions and their values if applicable. * - * @return array + * @return mixed[] */ public function loadAll() { diff --git a/wcfsetup/install/files/lib/data/acl/option/ACLOptionEditor.class.php b/wcfsetup/install/files/lib/data/acl/option/ACLOptionEditor.class.php index 4d08858e388..0be2818ea4f 100644 --- a/wcfsetup/install/files/lib/data/acl/option/ACLOptionEditor.class.php +++ b/wcfsetup/install/files/lib/data/acl/option/ACLOptionEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static ACLOption create(array $parameters = []) - * @method ACLOption getDecoratedObject() * @mixin ACLOption + * @extends DatabaseObjectEditor */ class ACLOptionEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/acl/option/ACLOptionList.class.php b/wcfsetup/install/files/lib/data/acl/option/ACLOptionList.class.php index 02f0526b40a..2cdc2775df6 100644 --- a/wcfsetup/install/files/lib/data/acl/option/ACLOptionList.class.php +++ b/wcfsetup/install/files/lib/data/acl/option/ACLOptionList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACLOption current() - * @method ACLOption[] getObjects() - * @method ACLOption|null getSingleObject() - * @method ACLOption|null search($objectID) - * @property ACLOption[] $objects + * @extends DatabaseObjectList */ class ACLOptionList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategory.class.php b/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategory.class.php index f2341558c2e..ab1a0afa3e0 100644 --- a/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategory.class.php +++ b/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategory.class.php @@ -16,6 +16,4 @@ * @property-read int $objectTypeID id of the `com.woltlab.wcf.acl` object type * @property-read string $categoryName name and textual identifier of the acl option category */ -class ACLOptionCategory extends DatabaseObject -{ -} +class ACLOptionCategory extends DatabaseObject {} diff --git a/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategoryAction.class.php b/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategoryAction.class.php index ddf2a7dcd6b..fccffb57323 100644 --- a/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategoryAction.class.php +++ b/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategoryAction.class.php @@ -11,9 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACLOptionCategory create() - * @method ACLOptionCategoryEditor[] getObjects() - * @method ACLOptionCategoryEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class ACLOptionCategoryAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategoryEditor.class.php b/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategoryEditor.class.php index 2e5ce337797..b4a5bef3dab 100644 --- a/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategoryEditor.class.php +++ b/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategoryEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static ACLOptionCategory create(array $parameters = []) - * @method ACLOptionCategory getDecoratedObject() * @mixin ACLOptionCategory + * @extends DatabaseObjectEditor */ class ACLOptionCategoryEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategoryList.class.php b/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategoryList.class.php index 7ca6acd46d9..06370430e75 100644 --- a/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategoryList.class.php +++ b/wcfsetup/install/files/lib/data/acl/option/category/ACLOptionCategoryList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACLOptionCategory current() - * @method ACLOptionCategory[] getObjects() - * @method ACLOptionCategory|null getSingleObject() - * @method ACLOptionCategory|null search($objectID) - * @property ACLOptionCategory[] $objects + * @extends DatabaseObjectList */ class ACLOptionCategoryList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItem.class.php b/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItem.class.php index 126d627f3fa..0270c8d2a0c 100644 --- a/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItem.class.php +++ b/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItem.class.php @@ -94,6 +94,8 @@ public function getController() /** * Parses controller name. + * + * @return void */ protected function parseController() { diff --git a/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItemAction.class.php b/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItemAction.class.php index 799a499e907..636e55df0ab 100644 --- a/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItemAction.class.php +++ b/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItemAction.class.php @@ -11,9 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACPMenuItem create() - * @method ACPMenuItemEditor[] getObjects() - * @method ACPMenuItemEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class ACPMenuItemAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItemEditor.class.php b/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItemEditor.class.php index c010985f993..10d83127573 100644 --- a/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItemEditor.class.php +++ b/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItemEditor.class.php @@ -13,9 +13,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static ACPMenuItem create(array $parameters = []) - * @method ACPMenuItem getDecoratedObject() * @mixin ACPMenuItem + * @extends DatabaseObjectEditor + * @implements IEditableCachedObject */ class ACPMenuItemEditor extends DatabaseObjectEditor implements IEditableCachedObject { diff --git a/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItemList.class.php b/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItemList.class.php index d6f96878085..de8df287c3c 100644 --- a/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItemList.class.php +++ b/wcfsetup/install/files/lib/data/acp/menu/item/ACPMenuItemList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACPMenuItem current() - * @method ACPMenuItem[] getObjects() - * @method ACPMenuItem|null getSingleObject() - * @method ACPMenuItem|null search($objectID) - * @property ACPMenuItem[] $objects + * @extends DatabaseObjectList */ class ACPMenuItemList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/acp/search/provider/ACPSearchProviderAction.class.php b/wcfsetup/install/files/lib/data/acp/search/provider/ACPSearchProviderAction.class.php index 732271fe05a..f900356fd3d 100644 --- a/wcfsetup/install/files/lib/data/acp/search/provider/ACPSearchProviderAction.class.php +++ b/wcfsetup/install/files/lib/data/acp/search/provider/ACPSearchProviderAction.class.php @@ -13,9 +13,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACPSearchProvider create() - * @method ACPSearchProviderEditor[] getObjects() - * @method ACPSearchProviderEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class ACPSearchProviderAction extends AbstractDatabaseObjectAction implements ISearchAction { diff --git a/wcfsetup/install/files/lib/data/acp/search/provider/ACPSearchProviderEditor.class.php b/wcfsetup/install/files/lib/data/acp/search/provider/ACPSearchProviderEditor.class.php index 5edf9a7b44c..b3bfc08d74e 100644 --- a/wcfsetup/install/files/lib/data/acp/search/provider/ACPSearchProviderEditor.class.php +++ b/wcfsetup/install/files/lib/data/acp/search/provider/ACPSearchProviderEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static ACPSearchProvider create(array $parameters = []) - * @method ACPSearchProvider getDecoratedObject() * @mixin ACPSearchProvider + * @extends DatabaseObjectEditor */ class ACPSearchProviderEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/acp/search/provider/ACPSearchProviderList.class.php b/wcfsetup/install/files/lib/data/acp/search/provider/ACPSearchProviderList.class.php index 839acad3c14..e72672cb6e3 100644 --- a/wcfsetup/install/files/lib/data/acp/search/provider/ACPSearchProviderList.class.php +++ b/wcfsetup/install/files/lib/data/acp/search/provider/ACPSearchProviderList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACPSearchProvider current() - * @method ACPSearchProvider[] getObjects() - * @method ACPSearchProvider|null getSingleObject() - * @method ACPSearchProvider|null search($objectID) - * @property ACPSearchProvider[] $objects + * @extends DatabaseObjectList */ class ACPSearchProviderList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/acp/session/ACPSession.class.php b/wcfsetup/install/files/lib/data/acp/session/ACPSession.class.php index 3437c9c847e..7eb44a012fc 100644 --- a/wcfsetup/install/files/lib/data/acp/session/ACPSession.class.php +++ b/wcfsetup/install/files/lib/data/acp/session/ACPSession.class.php @@ -32,7 +32,7 @@ class ACPSession extends DatabaseObject /** * Returns true if this session type supports persistent logins. * - * @return bool + * @return bool */ public static function supportsPersistentLogins() { diff --git a/wcfsetup/install/files/lib/data/acp/session/ACPSessionAction.class.php b/wcfsetup/install/files/lib/data/acp/session/ACPSessionAction.class.php index 9d61df79608..b326bfcb0bd 100644 --- a/wcfsetup/install/files/lib/data/acp/session/ACPSessionAction.class.php +++ b/wcfsetup/install/files/lib/data/acp/session/ACPSessionAction.class.php @@ -11,9 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACPSession create() - * @method ACPSessionEditor[] getObjects() - * @method ACPSessionEditor getSingleObject() + * @extends AbstractDatabaseObjectAction * @deprecated 5.4 Distinct ACP sessions have been removed. This class is preserved due to its use in legacy sessions. */ class ACPSessionAction extends AbstractDatabaseObjectAction diff --git a/wcfsetup/install/files/lib/data/acp/session/ACPSessionEditor.class.php b/wcfsetup/install/files/lib/data/acp/session/ACPSessionEditor.class.php index 6e33c89d3e2..0999773fd3e 100644 --- a/wcfsetup/install/files/lib/data/acp/session/ACPSessionEditor.class.php +++ b/wcfsetup/install/files/lib/data/acp/session/ACPSessionEditor.class.php @@ -14,9 +14,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACPSession getDecoratedObject() - * @mixin ACPSession - * @deprecated 5.4 Distinct ACP sessions have been removed. This class is preserved due to its use in legacy sessions. + * @mixin ACPSession + * @extends DatabaseObjectEditor + * @deprecated 5.4 Distinct ACP sessions have been removed. This class is preserved due to its use in legacy sessions. */ class ACPSessionEditor extends DatabaseObjectEditor { @@ -27,7 +27,6 @@ class ACPSessionEditor extends DatabaseObjectEditor /** * @inheritDoc - * @return ACPSession */ public static function create(array $parameters = []) { @@ -35,9 +34,7 @@ public static function create(array $parameters = []) $parameters['userID'] = null; } - $object = parent::create($parameters); - \assert($object instanceof ACPSession); - return $object; + return parent::create($parameters); } /** @@ -53,6 +50,8 @@ public function update(array $parameters = []) } /** + * @param int[] $userIDs + * @return void * @deprecated 5.4 - Sessions are managed via the SessionHandler. */ public static function deleteUserSessions(array $userIDs = []) @@ -69,6 +68,8 @@ public static function deleteUserSessions(array $userIDs = []) } /** + * @param int $timestamp + * @return void * @deprecated 5.4 - Sessions are managed via the SessionHandler. */ public static function deleteExpiredSessions($timestamp) diff --git a/wcfsetup/install/files/lib/data/acp/session/ACPSessionList.class.php b/wcfsetup/install/files/lib/data/acp/session/ACPSessionList.class.php index 8cda74c867a..1950dae7bd6 100644 --- a/wcfsetup/install/files/lib/data/acp/session/ACPSessionList.class.php +++ b/wcfsetup/install/files/lib/data/acp/session/ACPSessionList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACPSession current() - * @method ACPSession[] getObjects() - * @method ACPSession|null getSingleObject() - * @method ACPSession|null search($objectID) - * @property ACPSession[] $objects + * @extends DatabaseObjectList * @deprecated 5.4 Distinct ACP sessions have been removed. This class is preserved due to its use in legacy sessions. */ class ACPSessionList extends DatabaseObjectList diff --git a/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLog.class.php b/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLog.class.php index 8ec0e2165af..0d53db7191c 100644 --- a/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLog.class.php +++ b/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLog.class.php @@ -28,6 +28,7 @@ class ACPSessionAccessLog extends DatabaseObject protected static $databaseTableIndexName = 'sessionAccessLogID'; /** + * @return true * @deprecated 5.5 This method is long broken. */ public function hasProtectedURI() diff --git a/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLogAction.class.php b/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLogAction.class.php index e1a21b88bbe..1e5be7f263d 100644 --- a/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLogAction.class.php +++ b/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLogAction.class.php @@ -11,9 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACPSessionAccessLog create() - * @method ACPSessionAccessLogEditor[] getObjects() - * @method ACPSessionAccessLogEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class ACPSessionAccessLogAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLogEditor.class.php b/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLogEditor.class.php index 68d5610ecc9..93091d129ec 100644 --- a/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLogEditor.class.php +++ b/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLogEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static ACPSessionAccessLog create(array $parameters = []) - * @method ACPSessionAccessLog getDecoratedObject() * @mixin ACPSessionAccessLog + * @extends DatabaseObjectEditor */ class ACPSessionAccessLogEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLogList.class.php b/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLogList.class.php index 3730ac6c891..fdfa8f138b6 100644 --- a/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLogList.class.php +++ b/wcfsetup/install/files/lib/data/acp/session/access/log/ACPSessionAccessLogList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACPSessionAccessLog current() - * @method ACPSessionAccessLog[] getObjects() - * @method ACPSessionAccessLog|null getSingleObject() - * @method ACPSessionAccessLog|null search($objectID) - * @property ACPSessionAccessLog[] $objects + * @extends DatabaseObjectList */ class ACPSessionAccessLogList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLog.class.php b/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLog.class.php index 1ce711238fc..5dc9a79cf47 100644 --- a/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLog.class.php +++ b/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLog.class.php @@ -54,6 +54,7 @@ public function __construct($id, ?array $row = null, ?DatabaseObject $object = n } /** + * @return false * @deprecated 5.4 - This method always returns false. */ public function isActive() @@ -62,6 +63,7 @@ public function isActive() } /** + * @return false * @deprecated 5.4 - This method always returns false. */ public function isActiveUserSession() diff --git a/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLogAction.class.php b/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLogAction.class.php index 947c8bb4bfb..aa3d7e4d41d 100644 --- a/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLogAction.class.php +++ b/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLogAction.class.php @@ -11,9 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACPSessionLog create() - * @method ACPSessionLogEditor[] getObjects() - * @method ACPSessionLogEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class ACPSessionLogAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLogEditor.class.php b/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLogEditor.class.php index 649fb8260f6..75f62d8eda1 100644 --- a/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLogEditor.class.php +++ b/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLogEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static ACPSessionLog create(array $parameters = []) - * @method ACPSessionLog getDecoratedObject() * @mixin ACPSessionLog + * @extends DatabaseObjectEditor */ class ACPSessionLogEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLogList.class.php b/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLogList.class.php index 29b769a88c0..5ac237705a3 100644 --- a/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLogList.class.php +++ b/wcfsetup/install/files/lib/data/acp/session/log/ACPSessionLogList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACPSessionLog current() - * @method ACPSessionLog[] getObjects() - * @method ACPSessionLog|null getSingleObject() - * @method ACPSessionLog|null search($objectID) - * @property ACPSessionLog[] $objects + * @extends DatabaseObjectList */ class ACPSessionLogList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/acp/template/ACPTemplateAction.class.php b/wcfsetup/install/files/lib/data/acp/template/ACPTemplateAction.class.php index a70123a47c4..c2fc066748c 100644 --- a/wcfsetup/install/files/lib/data/acp/template/ACPTemplateAction.class.php +++ b/wcfsetup/install/files/lib/data/acp/template/ACPTemplateAction.class.php @@ -11,9 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACPTemplate create() - * @method ACPTemplateEditor[] getObjects() - * @method ACPTemplateEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class ACPTemplateAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/acp/template/ACPTemplateEditor.class.php b/wcfsetup/install/files/lib/data/acp/template/ACPTemplateEditor.class.php index ad02a244e12..9ab6baffc30 100644 --- a/wcfsetup/install/files/lib/data/acp/template/ACPTemplateEditor.class.php +++ b/wcfsetup/install/files/lib/data/acp/template/ACPTemplateEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static ACPTemplate create(array $parameters = []) - * @method ACPTemplate getDecoratedObject() * @mixin ACPTemplate + * @extends DatabaseObjectEditor */ class ACPTemplateEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/acp/template/ACPTemplateList.class.php b/wcfsetup/install/files/lib/data/acp/template/ACPTemplateList.class.php index 2728b66134a..e65fd0423b4 100644 --- a/wcfsetup/install/files/lib/data/acp/template/ACPTemplateList.class.php +++ b/wcfsetup/install/files/lib/data/acp/template/ACPTemplateList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ACPTemplate current() - * @method ACPTemplate[] getObjects() - * @method ACPTemplate|null getSingleObject() - * @method ACPTemplate|null search($objectID) - * @property ACPTemplate[] $objects + * @extends DatabaseObjectList */ class ACPTemplateList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/ad/AdAction.class.php b/wcfsetup/install/files/lib/data/ad/AdAction.class.php index 92a7c3ecc5f..bc273548244 100644 --- a/wcfsetup/install/files/lib/data/ad/AdAction.class.php +++ b/wcfsetup/install/files/lib/data/ad/AdAction.class.php @@ -17,9 +17,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method AdEditor[] getObjects() - * @method AdEditor getSingleObject() - * @property-read AdEditor[] $objects + * @extends AbstractDatabaseObjectAction */ class AdAction extends AbstractDatabaseObjectAction implements ISortableAction, IToggleAction { diff --git a/wcfsetup/install/files/lib/data/ad/AdEditor.class.php b/wcfsetup/install/files/lib/data/ad/AdEditor.class.php index 1fdbccc7705..8c07c5d4ee7 100644 --- a/wcfsetup/install/files/lib/data/ad/AdEditor.class.php +++ b/wcfsetup/install/files/lib/data/ad/AdEditor.class.php @@ -16,9 +16,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static Ad create(array $parameters = []) - * @method Ad getDecoratedObject() * @mixin Ad + * @extends DatabaseObjectEditor + * @implements IEditableCachedObject */ class AdEditor extends DatabaseObjectEditor implements IEditableCachedObject { @@ -31,6 +31,7 @@ class AdEditor extends DatabaseObjectEditor implements IEditableCachedObject * Sets the show order of the ad. * * @param int $showOrder + * @return void */ public function setShowOrder($showOrder = 0) { diff --git a/wcfsetup/install/files/lib/data/ad/AdList.class.php b/wcfsetup/install/files/lib/data/ad/AdList.class.php index f3d48a1fc40..c3f81224b8f 100644 --- a/wcfsetup/install/files/lib/data/ad/AdList.class.php +++ b/wcfsetup/install/files/lib/data/ad/AdList.class.php @@ -11,12 +11,6 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Ad current() - * @method Ad[] getObjects() - * @method Ad|null getSingleObject() - * @method Ad|null search($objectID) - * @property Ad[] $objects + * @extends DatabaseObjectList */ -class AdList extends DatabaseObjectList -{ -} +class AdList extends DatabaseObjectList {} diff --git a/wcfsetup/install/files/lib/data/application/ApplicationAction.class.php b/wcfsetup/install/files/lib/data/application/ApplicationAction.class.php index c91c4436180..ba2e1636105 100644 --- a/wcfsetup/install/files/lib/data/application/ApplicationAction.class.php +++ b/wcfsetup/install/files/lib/data/application/ApplicationAction.class.php @@ -15,9 +15,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Application create() - * @method ApplicationEditor[] getObjects() - * @method ApplicationEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class ApplicationAction extends AbstractDatabaseObjectAction { @@ -34,6 +32,8 @@ class ApplicationAction extends AbstractDatabaseObjectAction /** * Assigns a list of applications to a group and computes cookie domain. + * + * @return void */ public function rebuild() { @@ -71,6 +71,8 @@ public function rebuild() /** * Marks an application as tainted, prevents loading it during uninstallation. + * + * @return void */ public function markAsTainted() { diff --git a/wcfsetup/install/files/lib/data/application/ApplicationEditor.class.php b/wcfsetup/install/files/lib/data/application/ApplicationEditor.class.php index 2ab4a5d99d9..034faea2ee2 100644 --- a/wcfsetup/install/files/lib/data/application/ApplicationEditor.class.php +++ b/wcfsetup/install/files/lib/data/application/ApplicationEditor.class.php @@ -13,9 +13,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static Application create(array $parameters = []) - * @method Application getDecoratedObject() * @mixin Application + * @extends DatabaseObjectEditor + * @implements IEditableCachedObject */ class ApplicationEditor extends DatabaseObjectEditor implements IEditableCachedObject { diff --git a/wcfsetup/install/files/lib/data/application/ApplicationList.class.php b/wcfsetup/install/files/lib/data/application/ApplicationList.class.php index 1f0f0908756..81bcea8b847 100644 --- a/wcfsetup/install/files/lib/data/application/ApplicationList.class.php +++ b/wcfsetup/install/files/lib/data/application/ApplicationList.class.php @@ -2,6 +2,7 @@ namespace wcf\data\application; +use wcf\data\DatabaseObjectDecorator; use wcf\data\DatabaseObjectList; /** @@ -11,11 +12,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Application current() - * @method Application[] getObjects() - * @method Application|null getSingleObject() - * @method Application|null search($objectID) - * @property Application[] $objects + * @template TDatabaseObject of Application|DatabaseObjectDecorator = Application + * @extends DatabaseObjectList */ class ApplicationList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/application/ViewableApplication.class.php b/wcfsetup/install/files/lib/data/application/ViewableApplication.class.php index 55743144a77..28e211d35a0 100644 --- a/wcfsetup/install/files/lib/data/application/ViewableApplication.class.php +++ b/wcfsetup/install/files/lib/data/application/ViewableApplication.class.php @@ -13,8 +13,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Application getDecoratedObject() * @mixin Application + * @extends DatabaseObjectDecorator */ class ViewableApplication extends DatabaseObjectDecorator { diff --git a/wcfsetup/install/files/lib/data/application/ViewableApplicationList.class.php b/wcfsetup/install/files/lib/data/application/ViewableApplicationList.class.php index 76154fc4633..04d11fd5e8a 100644 --- a/wcfsetup/install/files/lib/data/application/ViewableApplicationList.class.php +++ b/wcfsetup/install/files/lib/data/application/ViewableApplicationList.class.php @@ -9,11 +9,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ViewableApplication current() - * @method ViewableApplication[] getObjects() - * @method ViewableApplication|null getSingleObject() - * @method ViewableApplication|null search($objectID) - * @property ViewableApplication[] $objects + * @extends ApplicationList */ class ViewableApplicationList extends ApplicationList { diff --git a/wcfsetup/install/files/lib/data/article/Article.class.php b/wcfsetup/install/files/lib/data/article/Article.class.php index eb64d346bcd..47f179dbbde 100644 --- a/wcfsetup/install/files/lib/data/article/Article.class.php +++ b/wcfsetup/install/files/lib/data/article/Article.class.php @@ -337,7 +337,7 @@ public function getCategory() /** * Sets the discussion provider for this article. * - * @param IArticleDiscussionProvider $discussionProvider + * @return void * @since 5.2 */ public function setDiscussionProvider(IArticleDiscussionProvider $discussionProvider) diff --git a/wcfsetup/install/files/lib/data/article/ArticleAction.class.php b/wcfsetup/install/files/lib/data/article/ArticleAction.class.php index 19f019bb7c7..b8101d7291c 100644 --- a/wcfsetup/install/files/lib/data/article/ArticleAction.class.php +++ b/wcfsetup/install/files/lib/data/article/ArticleAction.class.php @@ -36,9 +36,7 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method ArticleEditor[] getObjects() - * @method ArticleEditor getSingleObject() - * @property-read ArticleEditor[] $objects + * @extends AbstractDatabaseObjectAction */ class ArticleAction extends AbstractDatabaseObjectAction { @@ -86,7 +84,6 @@ class ArticleAction extends AbstractDatabaseObjectAction /** * @inheritDoc - * @return Article */ public function create() { @@ -94,7 +91,6 @@ public function create() $this->parameters['data']['attachments'] = \count($this->parameters['attachmentHandler']); } - /** @var Article $article */ $article = parent::create(); // save article content @@ -381,6 +377,7 @@ public function update() /** * Validates parameters to delete articles. * + * @return void * @throws PermissionDeniedException * @throws UserInputException */ @@ -479,6 +476,8 @@ public function delete() /** * Validates parameters to move articles to the trash bin. * + * + * @return void * @throws PermissionDeniedException * @throws UserInputException */ @@ -505,6 +504,8 @@ public function validateTrash() /** * Moves articles to the trash bin. + * + * @return array{objectIDs: int[]} */ public function trash() { @@ -525,6 +526,7 @@ public function trash() /** * Validates parameters to restore articles. * + * @return void * @throws UserInputException */ public function validateRestore() @@ -534,6 +536,8 @@ public function validateRestore() /** * Restores articles. + * + * @return array{objectIDs: int[]} */ public function restore() { @@ -554,6 +558,7 @@ public function restore() /** * Validates parameters to toggle between i18n and monolingual mode. * + * @return void * @throws UserInputException */ public function validateToggleI18n() @@ -578,6 +583,8 @@ public function validateToggleI18n() /** * Toggles between i18n and monolingual mode. + * + * @return void */ public function toggleI18n() { @@ -632,6 +639,8 @@ public function toggleI18n() /** * Marks articles as read. + * + * @return void */ public function markAsRead() { @@ -673,6 +682,8 @@ public function markAsRead() /** * Marks all articles as read. + * + * @return void */ public function markAllAsRead() { @@ -688,6 +699,8 @@ public function markAllAsRead() /** * Validates the mark all as read action. + * + * @return void */ public function validateMarkAllAsRead() { @@ -697,6 +710,7 @@ public function validateMarkAllAsRead() /** * Validates the `setCategory` action. * + * @return void * @throws UserInputException */ public function validateSetCategory() @@ -730,6 +744,8 @@ public function validateSetCategory() /** * Sets the category of articles. + * + * @return void */ public function setCategory() { @@ -743,6 +759,7 @@ public function setCategory() /** * Validates the `publish` action. * + * @return void * @throws PermissionDeniedException * @throws UserInputException */ @@ -769,6 +786,8 @@ public function validatePublish() /** * Publishes articles. + * + * @return void */ public function publish() { @@ -816,6 +835,7 @@ public function publish() /** * Validates the `unpublish` action. * + * @return void * @throws PermissionDeniedException * @throws UserInputException */ @@ -842,6 +862,8 @@ public function validateUnpublish() /** * Unpublishes articles. + * + * @return void */ public function unpublish() { @@ -877,6 +899,8 @@ public function unpublish() /** * Validates parameters to search for an article by its localized title. + * + * @return void */ public function validateSearch() { @@ -886,7 +910,11 @@ public function validateSearch() /** * Searches for an article by its localized title. * - * @return array list of matching articles + * @return list list of matching articles */ public function search() { @@ -929,6 +957,7 @@ public function search() * Unmarks articles. * * @param int[] $articleIDs + * @return void */ protected function unmarkItems(array $articleIDs = []) { diff --git a/wcfsetup/install/files/lib/data/article/ArticleEditor.class.php b/wcfsetup/install/files/lib/data/article/ArticleEditor.class.php index 1dd11f4b382..8a08971b9d0 100644 --- a/wcfsetup/install/files/lib/data/article/ArticleEditor.class.php +++ b/wcfsetup/install/files/lib/data/article/ArticleEditor.class.php @@ -13,9 +13,8 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method static Article create(array $parameters = []) - * @method Article getDecoratedObject() * @mixin Article + * @extends DatabaseObjectEditor
*/ class ArticleEditor extends DatabaseObjectEditor { @@ -27,8 +26,9 @@ class ArticleEditor extends DatabaseObjectEditor /** * Updates the article counter of the given user ids. * - * @param int[] $users user id => article counter increase/decrease - * @since 5.2 + * @param array $users user id => article counter increase/decrease + * @return void + * @since 5.2 */ public static function updateArticleCounter(array $users) { diff --git a/wcfsetup/install/files/lib/data/article/ArticleList.class.php b/wcfsetup/install/files/lib/data/article/ArticleList.class.php index b3890e67538..88de4e9dcb8 100644 --- a/wcfsetup/install/files/lib/data/article/ArticleList.class.php +++ b/wcfsetup/install/files/lib/data/article/ArticleList.class.php @@ -2,6 +2,8 @@ namespace wcf\data\article; +use wcf\data\DatabaseObject; +use wcf\data\DatabaseObjectDecorator; use wcf\data\DatabaseObjectList; /** @@ -12,11 +14,8 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method Article current() - * @method Article[] getObjects() - * @method Article|null getSingleObject() - * @method Article|null search($objectID) - * @property Article[] $objects + * @template-covariant TDatabaseObject of Article|DatabaseObjectDecorator = Article + * @extends DatabaseObjectList */ class ArticleList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/article/ArticleVersionTracker.class.php b/wcfsetup/install/files/lib/data/article/ArticleVersionTracker.class.php index 090f7c55202..33af55af36b 100644 --- a/wcfsetup/install/files/lib/data/article/ArticleVersionTracker.class.php +++ b/wcfsetup/install/files/lib/data/article/ArticleVersionTracker.class.php @@ -15,8 +15,8 @@ * @license GNU Lesser General Public License * @since 3.1 * - * @method Article getDecoratedObject() * @mixin Article + * @extends DatabaseObjectDecorator
*/ class ArticleVersionTracker extends DatabaseObjectDecorator implements IVersionTrackerObject { @@ -43,6 +43,7 @@ public function getObjectID() * Adds an article content object as child. * * @param ArticleContent $content article content object + * @return void */ public function addContent(ArticleContent $content) { @@ -53,6 +54,7 @@ public function addContent(ArticleContent $content) * Sets the list of article content objects. * * @param ArticleContent[] $content article content objects + * @return void */ public function setContent(array $content) { diff --git a/wcfsetup/install/files/lib/data/article/LikeableArticle.class.php b/wcfsetup/install/files/lib/data/article/LikeableArticle.class.php index fa4aa49110c..0044605aa30 100644 --- a/wcfsetup/install/files/lib/data/article/LikeableArticle.class.php +++ b/wcfsetup/install/files/lib/data/article/LikeableArticle.class.php @@ -17,8 +17,8 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method Article getDecoratedObject() * @mixin Article + * @extends AbstractLikeObject
*/ class LikeableArticle extends AbstractLikeObject implements IReactionObject { diff --git a/wcfsetup/install/files/lib/data/article/LikeableArticleProvider.class.php b/wcfsetup/install/files/lib/data/article/LikeableArticleProvider.class.php index 2d4180b09d0..9a2985b7209 100644 --- a/wcfsetup/install/files/lib/data/article/LikeableArticleProvider.class.php +++ b/wcfsetup/install/files/lib/data/article/LikeableArticleProvider.class.php @@ -16,8 +16,8 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method LikeableArticle getObjectByID($objectID) - * @method LikeableArticle[] getObjectsByIDs(array $objectIDs) + * @extends AbstractObjectTypeProvider + * @implements ILikeObjectTypeProvider */ class LikeableArticleProvider extends AbstractObjectTypeProvider implements ILikeObjectTypeProvider, diff --git a/wcfsetup/install/files/lib/data/article/ViewableArticle.class.php b/wcfsetup/install/files/lib/data/article/ViewableArticle.class.php index 6ca75f8b05e..5b0e10ee102 100644 --- a/wcfsetup/install/files/lib/data/article/ViewableArticle.class.php +++ b/wcfsetup/install/files/lib/data/article/ViewableArticle.class.php @@ -24,10 +24,10 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method Article getDecoratedObject() * @method ArticleContent|ViewableArticleContent|null getArticleContent() * @mixin Article * @property-read int|null $visitTime last time the active user has visited the time or `null` if object has not been fetched via `ViewableArticleList` or if the active user is a guest + * @extends DatabaseObjectDecorator
*/ class ViewableArticle extends DatabaseObjectDecorator { @@ -114,7 +114,7 @@ public function getUserProfile() /** * Sets the article's content. * - * @param ViewableArticleContent $articleContent + * @return void */ public function setArticleContent(ViewableArticleContent $articleContent) { @@ -193,7 +193,7 @@ public function isNew() /** * Adds a label. * - * @param Label $label + * @return void */ public function addLabel(Label $label) { diff --git a/wcfsetup/install/files/lib/data/article/ViewableArticleList.class.php b/wcfsetup/install/files/lib/data/article/ViewableArticleList.class.php index f7c27db127b..030f9baa529 100644 --- a/wcfsetup/install/files/lib/data/article/ViewableArticleList.class.php +++ b/wcfsetup/install/files/lib/data/article/ViewableArticleList.class.php @@ -17,11 +17,7 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method ViewableArticle current() - * @method ViewableArticle[] getObjects() - * @method ViewableArticle|null getSingleObject() - * @method ViewableArticle|null search($objectID) - * @property ViewableArticle[] $objects + * @extends ArticleList */ class ViewableArticleList extends ArticleList { @@ -130,6 +126,7 @@ public function readObjects() * Enables/disables the loading of article content objects. * * @param bool $enable + * @return void */ public function enableContentLoading($enable = true) { diff --git a/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php b/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php index 386136c8f94..bc37bb761bf 100644 --- a/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php +++ b/wcfsetup/install/files/lib/data/article/category/ArticleCategory.class.php @@ -44,7 +44,7 @@ class ArticleCategory extends AbstractDecoratedCategory implements IAccessibleOb /** * acl permissions of this category grouped by the id of the user they * belong to - * @var array + * @var array> */ protected $userPermissions = []; @@ -72,7 +72,8 @@ public function isAccessible(?User $user = null) } /** - * @inheritDoc + * @param string $permission + * @return mixed */ public function getPermission($permission, ?User $user = null) { diff --git a/wcfsetup/install/files/lib/data/article/category/ArticleCategoryCache.class.php b/wcfsetup/install/files/lib/data/article/category/ArticleCategoryCache.class.php index 1472b26c789..5ba8bc2e026 100644 --- a/wcfsetup/install/files/lib/data/article/category/ArticleCategoryCache.class.php +++ b/wcfsetup/install/files/lib/data/article/category/ArticleCategoryCache.class.php @@ -21,12 +21,14 @@ class ArticleCategoryCache extends SingletonFactory { /** * number of total articles - * @var int[] + * @var array */ protected $articles; /** * Calculates the number of articles. + * + * @return void */ protected function initArticles() { diff --git a/wcfsetup/install/files/lib/data/article/content/ArticleContentAction.class.php b/wcfsetup/install/files/lib/data/article/content/ArticleContentAction.class.php index 557d44a5838..cfc90b8875b 100644 --- a/wcfsetup/install/files/lib/data/article/content/ArticleContentAction.class.php +++ b/wcfsetup/install/files/lib/data/article/content/ArticleContentAction.class.php @@ -15,8 +15,7 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method ArticleContentEditor[] getObjects() - * @method ArticleContentEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class ArticleContentAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/article/content/ArticleContentEditor.class.php b/wcfsetup/install/files/lib/data/article/content/ArticleContentEditor.class.php index 71dd5cd3447..7b226cc884e 100644 --- a/wcfsetup/install/files/lib/data/article/content/ArticleContentEditor.class.php +++ b/wcfsetup/install/files/lib/data/article/content/ArticleContentEditor.class.php @@ -12,9 +12,8 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method static ArticleContent create(array $parameters = []) - * @method ArticleContent getDecoratedObject() * @mixin ArticleContent + * @extends DatabaseObjectEditor */ class ArticleContentEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/article/content/ArticleContentList.class.php b/wcfsetup/install/files/lib/data/article/content/ArticleContentList.class.php index 2d34bfafa51..6e02250b3af 100644 --- a/wcfsetup/install/files/lib/data/article/content/ArticleContentList.class.php +++ b/wcfsetup/install/files/lib/data/article/content/ArticleContentList.class.php @@ -2,6 +2,7 @@ namespace wcf\data\article\content; +use wcf\data\DatabaseObjectDecorator; use wcf\data\DatabaseObjectList; /** @@ -12,11 +13,8 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method ArticleContent current() - * @method ArticleContent[] getObjects() - * @method ArticleContent|null getSingleObject() - * @method ArticleContent|null search($objectID) - * @property ArticleContent[] $objects + * @template TDatabaseObject of ArticleContent|DatabaseObjectDecorator = ArticleContent + * @extends DatabaseObjectList */ class ArticleContentList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/article/content/ViewableArticleContent.class.php b/wcfsetup/install/files/lib/data/article/content/ViewableArticleContent.class.php index 8d580147009..5719bd21578 100644 --- a/wcfsetup/install/files/lib/data/article/content/ViewableArticleContent.class.php +++ b/wcfsetup/install/files/lib/data/article/content/ViewableArticleContent.class.php @@ -14,8 +14,8 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method ArticleContent getDecoratedObject() * @mixin ArticleContent + * @extends DatabaseObjectDecorator */ class ViewableArticleContent extends DatabaseObjectDecorator { @@ -59,7 +59,7 @@ public function getArticle() /** * Sets the article objects. * - * @param ViewableArticle $article + * @return void */ public function setArticle(ViewableArticle $article) { @@ -89,7 +89,7 @@ public function getImage() /** * Sets the article's image. * - * @param ViewableMedia $image + * @return void */ public function setImage(ViewableMedia $image) { @@ -121,7 +121,7 @@ public function getTeaserImage() /** * Sets the article's teaser image. * - * @param ViewableMedia $image + * @return void */ public function setTeaserImage(ViewableMedia $image) { diff --git a/wcfsetup/install/files/lib/data/article/content/ViewableArticleContentList.class.php b/wcfsetup/install/files/lib/data/article/content/ViewableArticleContentList.class.php index 42119d1a276..40b1bdef07c 100644 --- a/wcfsetup/install/files/lib/data/article/content/ViewableArticleContentList.class.php +++ b/wcfsetup/install/files/lib/data/article/content/ViewableArticleContentList.class.php @@ -14,11 +14,7 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method ViewableArticleContent current() - * @method ViewableArticleContent[] getObjects() - * @method ViewableArticleContent|null getSingleObject() - * @method ViewableArticleContent|null search($objectID) - * @property ViewableArticleContent[] $objects + * @extends ArticleContentList */ class ViewableArticleContentList extends ArticleContentList { diff --git a/wcfsetup/install/files/lib/data/attachment/AdministrativeAttachment.class.php b/wcfsetup/install/files/lib/data/attachment/AdministrativeAttachment.class.php index dede3d7d55a..871c6bf16a9 100644 --- a/wcfsetup/install/files/lib/data/attachment/AdministrativeAttachment.class.php +++ b/wcfsetup/install/files/lib/data/attachment/AdministrativeAttachment.class.php @@ -14,9 +14,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Attachment getDecoratedObject() * @mixin Attachment * @property-read string $username + * @extends DatabaseObjectDecorator */ class AdministrativeAttachment extends DatabaseObjectDecorator { diff --git a/wcfsetup/install/files/lib/data/attachment/AdministrativeAttachmentList.class.php b/wcfsetup/install/files/lib/data/attachment/AdministrativeAttachmentList.class.php index 8ea4c893b2b..47162945b61 100644 --- a/wcfsetup/install/files/lib/data/attachment/AdministrativeAttachmentList.class.php +++ b/wcfsetup/install/files/lib/data/attachment/AdministrativeAttachmentList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method AdministrativeAttachment current() - * @method AdministrativeAttachment[] getObjects() - * @method AdministrativeAttachment|null getSingleObject() - * @method AdministrativeAttachment|null search($objectID) - * @property AdministrativeAttachment[] $objects + * @extends AttachmentList */ class AdministrativeAttachmentList extends AttachmentList { diff --git a/wcfsetup/install/files/lib/data/attachment/Attachment.class.php b/wcfsetup/install/files/lib/data/attachment/Attachment.class.php index c0add7d758d..232bd40cf95 100644 --- a/wcfsetup/install/files/lib/data/attachment/Attachment.class.php +++ b/wcfsetup/install/files/lib/data/attachment/Attachment.class.php @@ -61,7 +61,7 @@ class Attachment extends DatabaseObject implements ILinkableObject, IRouteContro /** * user permissions for attachment access - * @var bool[] + * @var array */ protected $permissions = []; @@ -151,7 +151,8 @@ protected function getPermission($permission) /** * Sets the permissions for attachment access. * - * @param bool[] $permissions + * @param array $permissions + * @return void */ public function setPermissions(array $permissions) { @@ -210,6 +211,7 @@ public function getThumbnailLocation($size = '') * include the `.bin` suffix. * * @since 5.2 + * @return void * @deprecated 6.1 This will no longer be required once the attachments have been migrated. */ public function migrateStorage() @@ -282,6 +284,8 @@ public function getTitle(): string /** * Marks this attachment as embedded. + * + * @return void */ public function markAsEmbedded() { diff --git a/wcfsetup/install/files/lib/data/attachment/AttachmentAction.class.php b/wcfsetup/install/files/lib/data/attachment/AttachmentAction.class.php index d913269c8f1..11bc81370fd 100644 --- a/wcfsetup/install/files/lib/data/attachment/AttachmentAction.class.php +++ b/wcfsetup/install/files/lib/data/attachment/AttachmentAction.class.php @@ -17,9 +17,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Attachment create() - * @method AttachmentEditor[] getObjects() - * @method AttachmentEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class AttachmentAction extends AbstractDatabaseObjectAction { @@ -36,7 +34,7 @@ class AttachmentAction extends AbstractDatabaseObjectAction /** * current data, used to communicate with event listeners. - * @var array + * @var mixed[] */ public $eventData = []; @@ -65,6 +63,7 @@ public function validateDelete() /** * Generates thumbnails. * + * @return void * @deprecated 6.1 */ public function generateThumbnails() @@ -74,6 +73,8 @@ public function generateThumbnails() /** * Copies attachments from one object id to another. + * + * @return array{attachmentIDs: array} */ public function copy() { diff --git a/wcfsetup/install/files/lib/data/attachment/AttachmentEditor.class.php b/wcfsetup/install/files/lib/data/attachment/AttachmentEditor.class.php index be58fdddb7d..69946645af5 100644 --- a/wcfsetup/install/files/lib/data/attachment/AttachmentEditor.class.php +++ b/wcfsetup/install/files/lib/data/attachment/AttachmentEditor.class.php @@ -15,9 +15,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static Attachment create(array $parameters = []) - * @method Attachment getDecoratedObject() * @mixin Attachment + * @extends DatabaseObjectEditor */ class AttachmentEditor extends DatabaseObjectEditor { @@ -53,7 +52,9 @@ public static function deleteAll(array $objectIDs = []) " . $conditionBuilder; $statement = WCF::getDB()->prepare($sql); $statement->execute($conditionBuilder->getParameters()); + // @phpstan-ignore argument.templateType while ($attachment = $statement->fetchObject(static::$baseClass)) { + /** @var Attachment $attachment */ $editor = new self($attachment); $editor->deleteFiles(); } @@ -63,6 +64,8 @@ public static function deleteAll(array $objectIDs = []) /** * Deletes attachment files. + * + * @return void */ public function deleteFiles() { diff --git a/wcfsetup/install/files/lib/data/attachment/AttachmentList.class.php b/wcfsetup/install/files/lib/data/attachment/AttachmentList.class.php index 77636895d63..9e5650610c3 100644 --- a/wcfsetup/install/files/lib/data/attachment/AttachmentList.class.php +++ b/wcfsetup/install/files/lib/data/attachment/AttachmentList.class.php @@ -2,6 +2,8 @@ namespace wcf\data\attachment; +use wcf\data\DatabaseObject; +use wcf\data\DatabaseObjectDecorator; use wcf\data\DatabaseObjectList; use wcf\system\cache\runtime\FileRuntimeCache; @@ -12,11 +14,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Attachment current() - * @method Attachment[] getObjects() - * @method Attachment|null getSingleObject() - * @method Attachment|null search($objectID) - * @property Attachment[] $objects + * @template-covariant TDatabaseObject of Attachment|DatabaseObjectDecorator = Attachment + * @extends DatabaseObjectList */ class AttachmentList extends DatabaseObjectList { @@ -25,6 +24,9 @@ class AttachmentList extends DatabaseObjectList */ public $className = Attachment::class; + /** + * @var bool + */ public $enableFileLoading = true; #[\Override] diff --git a/wcfsetup/install/files/lib/data/attachment/GroupedAttachmentList.class.php b/wcfsetup/install/files/lib/data/attachment/GroupedAttachmentList.class.php index ff36fcabfde..0b6add691d5 100644 --- a/wcfsetup/install/files/lib/data/attachment/GroupedAttachmentList.class.php +++ b/wcfsetup/install/files/lib/data/attachment/GroupedAttachmentList.class.php @@ -2,6 +2,7 @@ namespace wcf\data\attachment; +use wcf\data\object\type\ObjectType; use wcf\data\object\type\ObjectTypeCache; /** @@ -15,13 +16,13 @@ class GroupedAttachmentList extends AttachmentList { /** * grouped objects - * @var array + * @var array> */ public $groupedObjects = []; /** * object type - * @var \wcf\data\object\type\ObjectType + * @var ObjectType */ protected $objectType; @@ -89,7 +90,8 @@ public function readObjects() /** * Sets the permissions for attachment access. * - * @param bool[] $permissions + * @param array $permissions + * @return void */ public function setPermissions(array $permissions) { diff --git a/wcfsetup/install/files/lib/data/bbcode/BBCode.class.php b/wcfsetup/install/files/lib/data/bbcode/BBCode.class.php index fe8f50bfdea..80e08b55a93 100644 --- a/wcfsetup/install/files/lib/data/bbcode/BBCode.class.php +++ b/wcfsetup/install/files/lib/data/bbcode/BBCode.class.php @@ -32,7 +32,7 @@ class BBCode extends ProcessibleDatabaseObject implements IRouteController { /** * list of attributes - * @var BBCodeAttribute[] + * @var list */ protected $attributes; @@ -54,7 +54,7 @@ class BBCode extends ProcessibleDatabaseObject implements IRouteController /** * Returns the attributes of this bbcode. * - * @return BBCodeAttribute[] + * @return list */ public function getAttributes() { @@ -68,7 +68,8 @@ public function getAttributes() /** * Sets the attributes of this bbcode. * - * @param BBCodeAttribute[] $attributes list of attributes + * @param list $attributes list of attributes + * @return void */ public function setAttributes(array $attributes) { @@ -86,8 +87,8 @@ public function getTitle(): string /** * Returns the button label in the active user's language. * - * @return string - * @since 5.2 + * @return string + * @since 5.2 */ public function getButtonLabel() { @@ -98,7 +99,7 @@ public function getButtonLabel() * Returns BBCode object with the given tag. * * @param string $tag - * @return BBCode + * @return BBCode */ public static function getBBCodeByTag($tag) { @@ -122,7 +123,7 @@ public static function getBBCodeByTag($tag) * * @param string $bbcodeTag * @param string[] $allowedBBCodeTags - * @return bool + * @return bool */ public static function isAllowedBBCode($bbcodeTag, array $allowedBBCodeTags) { @@ -147,7 +148,7 @@ public static function isAllowedBBCode($bbcodeTag, array $allowedBBCodeTags) /** * Returns true if this BBCode can be deleted. * - * @return bool + * @return bool */ public function canDelete() { diff --git a/wcfsetup/install/files/lib/data/bbcode/BBCodeAction.class.php b/wcfsetup/install/files/lib/data/bbcode/BBCodeAction.class.php index e53369159ff..e5b120d2978 100644 --- a/wcfsetup/install/files/lib/data/bbcode/BBCodeAction.class.php +++ b/wcfsetup/install/files/lib/data/bbcode/BBCodeAction.class.php @@ -16,8 +16,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method BBCodeEditor[] getObjects() - * @method BBCodeEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class BBCodeAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/bbcode/BBCodeCache.class.php b/wcfsetup/install/files/lib/data/bbcode/BBCodeCache.class.php index ca6a8c0a1c9..64558b05b06 100644 --- a/wcfsetup/install/files/lib/data/bbcode/BBCodeCache.class.php +++ b/wcfsetup/install/files/lib/data/bbcode/BBCodeCache.class.php @@ -17,7 +17,7 @@ class BBCodeCache extends SingletonFactory { /** * cached bbcodes - * @var BBCode[] + * @var array */ protected $cachedBBCodes = []; @@ -26,14 +26,13 @@ class BBCodeCache extends SingletonFactory */ protected function init() { - // get bbcode cache $this->cachedBBCodes = BBCodeCacheBuilder::getInstance()->getData([], 'bbcodes'); } /** * Returns all bbcodes. * - * @return BBCode[] + * @return array */ public function getBBCodes() { @@ -44,7 +43,7 @@ public function getBBCodes() * Returns the BBCode with the given tag or `null` if no such BBCode exists. * * @param string $tag - * @return BBCode|null + * @return ?BBCode */ public function getBBCodeByTag($tag) { @@ -55,7 +54,7 @@ public function getBBCodeByTag($tag) * Returns all attributes of a bbcode. * * @param string $tag - * @return BBCodeAttribute[] + * @return list */ public function getBBCodeAttributes($tag) { diff --git a/wcfsetup/install/files/lib/data/bbcode/BBCodeEditor.class.php b/wcfsetup/install/files/lib/data/bbcode/BBCodeEditor.class.php index 48760a7721c..cdf5bd0386d 100644 --- a/wcfsetup/install/files/lib/data/bbcode/BBCodeEditor.class.php +++ b/wcfsetup/install/files/lib/data/bbcode/BBCodeEditor.class.php @@ -13,9 +13,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static BBCode create(array $parameters = []) - * @method BBCode getDecoratedObject() * @mixin BBCode + * @extends DatabaseObjectEditor + * @implements IEditableCachedObject */ class BBCodeEditor extends DatabaseObjectEditor implements IEditableCachedObject { diff --git a/wcfsetup/install/files/lib/data/bbcode/BBCodeList.class.php b/wcfsetup/install/files/lib/data/bbcode/BBCodeList.class.php index 60d57885183..0f94adffc7b 100644 --- a/wcfsetup/install/files/lib/data/bbcode/BBCodeList.class.php +++ b/wcfsetup/install/files/lib/data/bbcode/BBCodeList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method BBCode current() - * @method BBCode[] getObjects() - * @method BBCode|null getSingleObject() - * @method BBCode|null search($objectID) - * @property BBCode[] $objects + * @extends DatabaseObjectList */ class BBCodeList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/bbcode/MessagePreviewAction.class.php b/wcfsetup/install/files/lib/data/bbcode/MessagePreviewAction.class.php index ea86aa36b37..290118881e5 100644 --- a/wcfsetup/install/files/lib/data/bbcode/MessagePreviewAction.class.php +++ b/wcfsetup/install/files/lib/data/bbcode/MessagePreviewAction.class.php @@ -27,6 +27,8 @@ class MessagePreviewAction extends BBCodeAction /** * Validates parameters for message preview. + * + * @return void */ public function validateGetMessagePreview() { @@ -46,8 +48,8 @@ public function validateGetMessagePreview() /** * Returns a rendered message preview. * - * @return array - * @throws UserInputException + * @return array{message: string, raw: string} + * @throws UserInputException */ public function getMessagePreview() { diff --git a/wcfsetup/install/files/lib/data/bbcode/attribute/BBCodeAttributeAction.class.php b/wcfsetup/install/files/lib/data/bbcode/attribute/BBCodeAttributeAction.class.php index 925aca6e093..cf049c30c26 100644 --- a/wcfsetup/install/files/lib/data/bbcode/attribute/BBCodeAttributeAction.class.php +++ b/wcfsetup/install/files/lib/data/bbcode/attribute/BBCodeAttributeAction.class.php @@ -11,9 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method BBCodeAttribute create() - * @method BBCodeAttributeEditor[] getObjects() - * @method BBCodeAttributeEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class BBCodeAttributeAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/bbcode/attribute/BBCodeAttributeEditor.class.php b/wcfsetup/install/files/lib/data/bbcode/attribute/BBCodeAttributeEditor.class.php index 9c9b72d8483..4fc68529146 100644 --- a/wcfsetup/install/files/lib/data/bbcode/attribute/BBCodeAttributeEditor.class.php +++ b/wcfsetup/install/files/lib/data/bbcode/attribute/BBCodeAttributeEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static BBCodeAttribute create(array $parameters = []) - * @method BBCodeAttribute getDecoratedObject() * @mixin BBCodeAttribute + * @extends DatabaseObjectEditor */ class BBCodeAttributeEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/bbcode/attribute/BBCodeAttributeList.class.php b/wcfsetup/install/files/lib/data/bbcode/attribute/BBCodeAttributeList.class.php index abe48e7a196..5214d177019 100644 --- a/wcfsetup/install/files/lib/data/bbcode/attribute/BBCodeAttributeList.class.php +++ b/wcfsetup/install/files/lib/data/bbcode/attribute/BBCodeAttributeList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method BBCodeAttribute current() - * @method BBCodeAttribute[] getObjects() - * @method BBCodeAttribute|null getSingleObject() - * @method BBCodeAttribute|null search($objectID) - * @property BBCodeAttribute[] $objects + * @extends DatabaseObjectList */ class BBCodeAttributeList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/bbcode/media/provider/BBCodeMediaProviderAction.class.php b/wcfsetup/install/files/lib/data/bbcode/media/provider/BBCodeMediaProviderAction.class.php index 1a0b2886e24..3e79c11cea1 100644 --- a/wcfsetup/install/files/lib/data/bbcode/media/provider/BBCodeMediaProviderAction.class.php +++ b/wcfsetup/install/files/lib/data/bbcode/media/provider/BBCodeMediaProviderAction.class.php @@ -13,9 +13,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method BBCodeMediaProvider create() - * @method BBCodeMediaProviderEditor[] getObjects() - * @method BBCodeMediaProviderEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class BBCodeMediaProviderAction extends AbstractDatabaseObjectAction implements IToggleAction { diff --git a/wcfsetup/install/files/lib/data/bbcode/media/provider/BBCodeMediaProviderEditor.class.php b/wcfsetup/install/files/lib/data/bbcode/media/provider/BBCodeMediaProviderEditor.class.php index 20d88687801..1d928649ed7 100644 --- a/wcfsetup/install/files/lib/data/bbcode/media/provider/BBCodeMediaProviderEditor.class.php +++ b/wcfsetup/install/files/lib/data/bbcode/media/provider/BBCodeMediaProviderEditor.class.php @@ -13,9 +13,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static BBCodeMediaProvider create(array $parameters = []) - * @method BBCodeMediaProvider getDecoratedObject() * @mixin BBCodeMediaProvider + * @extends DatabaseObjectEditor + * @implements IEditableCachedObject */ class BBCodeMediaProviderEditor extends DatabaseObjectEditor implements IEditableCachedObject { diff --git a/wcfsetup/install/files/lib/data/bbcode/media/provider/BBCodeMediaProviderList.class.php b/wcfsetup/install/files/lib/data/bbcode/media/provider/BBCodeMediaProviderList.class.php index ca8d05c65cc..bccb323dc6f 100644 --- a/wcfsetup/install/files/lib/data/bbcode/media/provider/BBCodeMediaProviderList.class.php +++ b/wcfsetup/install/files/lib/data/bbcode/media/provider/BBCodeMediaProviderList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method BBCodeMediaProvider current() - * @method BBCodeMediaProvider[] getObjects() - * @method BBCodeMediaProvider|null getSingleObject() - * @method BBCodeMediaProvider|null search($objectID) - * @property BBCodeMediaProvider[] $objects + * @extends DatabaseObjectList */ class BBCodeMediaProviderList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntry.class.php b/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntry.class.php index da254f4614c..730611ff954 100644 --- a/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntry.class.php +++ b/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntry.class.php @@ -75,11 +75,20 @@ public static function getMatches($username, $email, $ipAddress) return $matches; } + /** + * @param string $string + * @return string + */ protected static function getHash($string) { return \hash('sha256', $string, true); } + /** + * @param string $type + * @param int $occurrences + * @return bool + */ protected static function isMatch($type, $occurrences) { $setting = [ @@ -107,6 +116,10 @@ protected static function isMatch($type, $occurrences) return false; } + /** + * @param string $type + * @return int + */ protected static function get90Percentile($type) { static $percentile = []; diff --git a/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntryAction.class.php b/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntryAction.class.php index 71b28c7c53f..8d8817df4cd 100644 --- a/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntryAction.class.php +++ b/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntryAction.class.php @@ -18,8 +18,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method BlacklistEntryEditor[] getObjects() - * @method BlacklistEntryEditor getSingleObject() + * @extends AbstractDatabaseObjectAction * @since 5.2 */ class BlacklistEntryAction extends AbstractDatabaseObjectAction @@ -29,6 +28,9 @@ class BlacklistEntryAction extends AbstractDatabaseObjectAction */ protected $className = BlacklistEntryEditor::class; + /** + * @return void + */ public function import() { $client = HttpFactory::makeClientWithTimeout(5); diff --git a/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntryEditor.class.php b/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntryEditor.class.php index 7939bbbda4f..06c607d1293 100644 --- a/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntryEditor.class.php +++ b/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntryEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static BlacklistEntry create(array $parameters = []) - * @method BlacklistEntry getDecoratedObject() * @mixin BlacklistEntry + * @extends DatabaseObjectEditor * @since 5.2 */ class BlacklistEntryEditor extends DatabaseObjectEditor diff --git a/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntryList.class.php b/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntryList.class.php index e452236bd29..4ddd5a1d23f 100644 --- a/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntryList.class.php +++ b/wcfsetup/install/files/lib/data/blacklist/entry/BlacklistEntryList.class.php @@ -11,10 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method BlacklistEntry current() - * @method BlacklistEntry[] getObjects() - * @method BlacklistEntry|null search($objectID) - * @property BlacklistEntry[] $objects + * @extends DatabaseObjectList * @since 5.2 */ class BlacklistEntryList extends DatabaseObjectList diff --git a/wcfsetup/install/files/lib/data/blacklist/status/BlacklistStatusAction.class.php b/wcfsetup/install/files/lib/data/blacklist/status/BlacklistStatusAction.class.php index 76fe6a2aa2a..a217eceff62 100644 --- a/wcfsetup/install/files/lib/data/blacklist/status/BlacklistStatusAction.class.php +++ b/wcfsetup/install/files/lib/data/blacklist/status/BlacklistStatusAction.class.php @@ -11,8 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method BlacklistStatusEditor[] getObjects() - * @method BlacklistStatusEditor getSingleObject() + * @extends AbstractDatabaseObjectAction * @since 5.2 */ class BlacklistStatusAction extends AbstractDatabaseObjectAction diff --git a/wcfsetup/install/files/lib/data/blacklist/status/BlacklistStatusEditor.class.php b/wcfsetup/install/files/lib/data/blacklist/status/BlacklistStatusEditor.class.php index aff99754b3b..6f9c7373ec0 100644 --- a/wcfsetup/install/files/lib/data/blacklist/status/BlacklistStatusEditor.class.php +++ b/wcfsetup/install/files/lib/data/blacklist/status/BlacklistStatusEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static BlacklistStatus create(array $parameters = []) - * @method BlacklistStatus getDecoratedObject() * @mixin BlacklistStatus + * @extends DatabaseObjectEditor * @since 5.2 */ class BlacklistStatusEditor extends DatabaseObjectEditor diff --git a/wcfsetup/install/files/lib/data/blacklist/status/BlacklistStatusList.class.php b/wcfsetup/install/files/lib/data/blacklist/status/BlacklistStatusList.class.php index a827b74f8bd..b1f6af62194 100644 --- a/wcfsetup/install/files/lib/data/blacklist/status/BlacklistStatusList.class.php +++ b/wcfsetup/install/files/lib/data/blacklist/status/BlacklistStatusList.class.php @@ -11,10 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method BlacklistStatus current() - * @method BlacklistStatus[] getObjects() - * @method BlacklistStatus|null search($objectID) - * @property BlacklistStatus[] $objects + * @extends DatabaseObjectList * @since 5.2 */ class BlacklistStatusList extends DatabaseObjectList diff --git a/wcfsetup/install/files/lib/data/box/Box.class.php b/wcfsetup/install/files/lib/data/box/Box.class.php index f4a997eb3ad..5f6c417251b 100644 --- a/wcfsetup/install/files/lib/data/box/Box.class.php +++ b/wcfsetup/install/files/lib/data/box/Box.class.php @@ -46,7 +46,7 @@ * @property-read int|null $linkPageID id of the (internal) page the box image and box title are linking to or `null` if no internal page is linked * @property-read int $linkPageObjectID id of the object the (internal) page links refers to or `0` if no internal link is used or no specific object is linked * @property-read string $externalURL external link used to for the box image and box title or empty if no external link is set - * @property-read array $additionalData array with additional data of the box + * @property-read mixed[] $additionalData array with additional data of the box * @property-read int|null $limit number of objects shown in the box for `AbstractDatabaseObjectListBoxController` controllers or `null` otherwise * @property-read string|null $sortField sort field of the objects shown in the box for `AbstractDatabaseObjectListBoxController` controllers or `null` otherwise * @property-read string|null $sortOrder sort order of the objects shown in the box for `AbstractDatabaseObjectListBoxController` controllers or `null` otherwise @@ -224,6 +224,7 @@ public function getBoxContents() * Sets the box's content. * * @param BoxContent[] $boxContents + * @return void */ public function setBoxContents($boxContents) { @@ -608,6 +609,7 @@ public function isAccessible() * Sets the virtual show order of this box. * * @param int $virtualShowOrder + * @return void */ public function setVirtualShowOrder($virtualShowOrder) { diff --git a/wcfsetup/install/files/lib/data/box/BoxAction.class.php b/wcfsetup/install/files/lib/data/box/BoxAction.class.php index 4d3a6f10b2d..a3a46ee01d2 100644 --- a/wcfsetup/install/files/lib/data/box/BoxAction.class.php +++ b/wcfsetup/install/files/lib/data/box/BoxAction.class.php @@ -25,8 +25,7 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method BoxEditor[] getObjects() - * @method BoxEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class BoxAction extends AbstractDatabaseObjectAction implements IToggleAction { @@ -295,6 +294,8 @@ public function delete() /** * Validates the 'getBoxConditionsTemplate' action. + * + * @return void */ public function validateGetBoxConditionsTemplate() { diff --git a/wcfsetup/install/files/lib/data/box/BoxEditor.class.php b/wcfsetup/install/files/lib/data/box/BoxEditor.class.php index f31fdbf2fe0..6a7ddec57bc 100644 --- a/wcfsetup/install/files/lib/data/box/BoxEditor.class.php +++ b/wcfsetup/install/files/lib/data/box/BoxEditor.class.php @@ -12,9 +12,8 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method static Box create(array $parameters = []) - * @method Box getDecoratedObject() * @mixin Box + * @extends DatabaseObjectEditor */ class BoxEditor extends DatabaseObjectEditor { @@ -28,6 +27,7 @@ class BoxEditor extends DatabaseObjectEditor * * @param int $languageID * @param string $content + * @return void */ public function writeTemplate($languageID, $content) { diff --git a/wcfsetup/install/files/lib/data/box/BoxList.class.php b/wcfsetup/install/files/lib/data/box/BoxList.class.php index a7bf86f2c54..dc92e80a365 100644 --- a/wcfsetup/install/files/lib/data/box/BoxList.class.php +++ b/wcfsetup/install/files/lib/data/box/BoxList.class.php @@ -14,11 +14,7 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method Box current() - * @method Box[] getObjects() - * @method Box|null getSingleObject() - * @method Box|null search($objectID) - * @property Box[] $objects + * @extends DatabaseObjectList */ class BoxList extends DatabaseObjectList { @@ -63,6 +59,7 @@ public function readObjects() * Enables/disables the loading of box content objects. * * @param bool $enable + * @return void */ public function enableContentLoading($enable = true) { diff --git a/wcfsetup/install/files/lib/data/box/BoxVersionTracker.class.php b/wcfsetup/install/files/lib/data/box/BoxVersionTracker.class.php index bd936184ac7..4fcadc16cb1 100644 --- a/wcfsetup/install/files/lib/data/box/BoxVersionTracker.class.php +++ b/wcfsetup/install/files/lib/data/box/BoxVersionTracker.class.php @@ -15,8 +15,8 @@ * @license GNU Lesser General Public License * @since 3.1 * - * @method Box getDecoratedObject() * @mixin Box + * @extends DatabaseObjectDecorator */ class BoxVersionTracker extends DatabaseObjectDecorator implements IVersionTrackerObject { @@ -43,6 +43,7 @@ public function getObjectID() * Adds an box content object as child. * * @param BoxContent $content box content object + * @return void */ public function addContent(BoxContent $content) { @@ -53,6 +54,7 @@ public function addContent(BoxContent $content) * Sets the list of box content objects. * * @param BoxContent[] $content box content objects + * @return void */ public function setContent(array $content) { diff --git a/wcfsetup/install/files/lib/data/box/content/BoxContent.class.php b/wcfsetup/install/files/lib/data/box/content/BoxContent.class.php index 9391ca361cd..0bbae521666 100644 --- a/wcfsetup/install/files/lib/data/box/content/BoxContent.class.php +++ b/wcfsetup/install/files/lib/data/box/content/BoxContent.class.php @@ -93,7 +93,7 @@ public function getImage() /** * Sets the image of this box content. * - * @param ViewableMedia $image + * @return void */ public function setImage(ViewableMedia $image) { diff --git a/wcfsetup/install/files/lib/data/box/content/BoxContentAction.class.php b/wcfsetup/install/files/lib/data/box/content/BoxContentAction.class.php index e531e6e0a25..19ff9a91b32 100644 --- a/wcfsetup/install/files/lib/data/box/content/BoxContentAction.class.php +++ b/wcfsetup/install/files/lib/data/box/content/BoxContentAction.class.php @@ -12,8 +12,7 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method BoxContentEditor[] getObjects() - * @method BoxContentEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class BoxContentAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/box/content/BoxContentEditor.class.php b/wcfsetup/install/files/lib/data/box/content/BoxContentEditor.class.php index 12e79f6681c..09d753207ec 100644 --- a/wcfsetup/install/files/lib/data/box/content/BoxContentEditor.class.php +++ b/wcfsetup/install/files/lib/data/box/content/BoxContentEditor.class.php @@ -12,9 +12,8 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method static BoxContent create(array $parameters = []) - * @method BoxContent getDecoratedObject() * @mixin BoxContent + * @extends DatabaseObjectEditor */ class BoxContentEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/box/content/BoxContentList.class.php b/wcfsetup/install/files/lib/data/box/content/BoxContentList.class.php index d59e724614c..3162cd04639 100644 --- a/wcfsetup/install/files/lib/data/box/content/BoxContentList.class.php +++ b/wcfsetup/install/files/lib/data/box/content/BoxContentList.class.php @@ -14,11 +14,7 @@ * @license GNU Lesser General Public License * @since 3.0 * - * @method BoxContent current() - * @method BoxContent[] getObjects() - * @method BoxContent|null getSingleObject() - * @method BoxContent|null search($objectID) - * @property BoxContent[] $objects + * @extends DatabaseObjectList */ class BoxContentList extends DatabaseObjectList { @@ -86,6 +82,7 @@ public function readObjects() * Enables/disables the loading of box content images. * * @param bool $enable + * @return void */ public function enableImageLoading($enable = true) { @@ -96,6 +93,7 @@ public function enableImageLoading($enable = true) * Enables/disables the loading of embedded objects. * * @param bool $enable + * @return void */ public function enableEmbeddedObjectLoading($enable = true) { diff --git a/wcfsetup/install/files/lib/data/captcha/question/CaptchaQuestionAction.class.php b/wcfsetup/install/files/lib/data/captcha/question/CaptchaQuestionAction.class.php index abb4fcd1c40..52651d3201c 100644 --- a/wcfsetup/install/files/lib/data/captcha/question/CaptchaQuestionAction.class.php +++ b/wcfsetup/install/files/lib/data/captcha/question/CaptchaQuestionAction.class.php @@ -14,9 +14,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method CaptchaQuestionEditor[] getObjects() - * @method CaptchaQuestionEditor getSingleObject() - * @property CaptchaQuestionEditor[] $objects + * @extends AbstractDatabaseObjectAction */ class CaptchaQuestionAction extends AbstractDatabaseObjectAction implements IToggleAction { @@ -33,6 +31,9 @@ class CaptchaQuestionAction extends AbstractDatabaseObjectAction implements ITog */ protected $permissionsUpdate = ['admin.captcha.canManageCaptchaQuestion']; + /** + * @return array + */ #[\Override] public function getI18nSaveTypes(): array { diff --git a/wcfsetup/install/files/lib/data/captcha/question/CaptchaQuestionEditor.class.php b/wcfsetup/install/files/lib/data/captcha/question/CaptchaQuestionEditor.class.php index ca8ca6919c8..839dea59661 100644 --- a/wcfsetup/install/files/lib/data/captcha/question/CaptchaQuestionEditor.class.php +++ b/wcfsetup/install/files/lib/data/captcha/question/CaptchaQuestionEditor.class.php @@ -13,9 +13,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static CaptchaQuestion create(array $parameters = []) - * @method CaptchaQuestion getDecoratedObject() * @mixin CaptchaQuestion + * @extends DatabaseObjectEditor + * @implements IEditableCachedObject */ class CaptchaQuestionEditor extends DatabaseObjectEditor implements IEditableCachedObject { diff --git a/wcfsetup/install/files/lib/data/captcha/question/CaptchaQuestionList.class.php b/wcfsetup/install/files/lib/data/captcha/question/CaptchaQuestionList.class.php index 2500ce87a71..5cfaa578011 100644 --- a/wcfsetup/install/files/lib/data/captcha/question/CaptchaQuestionList.class.php +++ b/wcfsetup/install/files/lib/data/captcha/question/CaptchaQuestionList.class.php @@ -11,12 +11,6 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method CaptchaQuestion current() - * @method CaptchaQuestion[] getObjects() - * @method CaptchaQuestion|null getSingleObject() - * @method CaptchaQuestion|null search($objectID) - * @property CaptchaQuestion[] $objects + * @extends DatabaseObjectList */ -class CaptchaQuestionList extends DatabaseObjectList -{ -} +class CaptchaQuestionList extends DatabaseObjectList {} diff --git a/wcfsetup/install/files/lib/data/captcha/question/I18nCaptchaQuestionList.class.php b/wcfsetup/install/files/lib/data/captcha/question/I18nCaptchaQuestionList.class.php index 439517ac366..4784e731df5 100644 --- a/wcfsetup/install/files/lib/data/captcha/question/I18nCaptchaQuestionList.class.php +++ b/wcfsetup/install/files/lib/data/captcha/question/I18nCaptchaQuestionList.class.php @@ -12,11 +12,7 @@ * @license GNU Lesser General Public License * @since 6.2 * - * @method CaptchaQuestion current() - * @method CaptchaQuestion[] getObjects() - * @method CaptchaQuestion|null getSingleObject() - * @method CaptchaQuestion|null search($objectID) - * @property CaptchaQuestion[] $objects + * @extends I18nDatabaseObjectList */ class I18nCaptchaQuestionList extends I18nDatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/category/AbstractDecoratedCategory.class.php b/wcfsetup/install/files/lib/data/category/AbstractDecoratedCategory.class.php index 7ddf9fa6c07..a8881f2fbb5 100644 --- a/wcfsetup/install/files/lib/data/category/AbstractDecoratedCategory.class.php +++ b/wcfsetup/install/files/lib/data/category/AbstractDecoratedCategory.class.php @@ -13,32 +13,35 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Category getDecoratedObject() - * @mixin Category + * @mixin Category + * @template TCategory of Category = Category + * @extends DatabaseObjectDecorator */ abstract class AbstractDecoratedCategory extends DatabaseObjectDecorator { /** * list of child categories of this category - * @var Category[] + * + * @var static[] */ protected $childCategories; /** * list of all child categories of this category - * @var Category[] + * + * @var static[] */ protected $allChildCategories; /** * list of all parent category generations of this category - * @var AbstractDecoratedCategory[] + * @var static[] */ protected $parentCategories; /** * parent category of this category - * @var ?AbstractDecoratedCategory + * @var ?static */ protected $parentCategory; @@ -48,7 +51,8 @@ abstract class AbstractDecoratedCategory extends DatabaseObjectDecorator protected static $baseClass = Category::class; /** - * @inheritDoc + * @param string[] $permissions + * @return void */ public function checkPermissions(array $permissions) { @@ -60,7 +64,7 @@ public function checkPermissions(array $permissions) } /** - * @inheritDoc + * @return array */ public function getChildCategories() { @@ -75,7 +79,7 @@ public function getChildCategories() } /** - * @inheritDoc + * @return array */ public function getAllChildCategories() { @@ -90,7 +94,7 @@ public function getAllChildCategories() } /** - * @inheritDoc + * @return array */ public function getParentCategories() { @@ -105,7 +109,7 @@ public function getParentCategories() } /** - * @inheritDoc + * @return static */ public function getParentCategory() { @@ -117,7 +121,7 @@ public function getParentCategory() } /** - * @inheritDoc + * @return bool */ public function isParentCategory(self $category) { @@ -129,7 +133,7 @@ public function isParentCategory(self $category) * category exists. * * @param int $categoryID - * @return AbstractDecoratedCategory|null + * @return ?static */ public static function getCategory($categoryID) { diff --git a/wcfsetup/install/files/lib/data/category/Category.class.php b/wcfsetup/install/files/lib/data/category/Category.class.php index 5f8e15566d5..d6d602174aa 100644 --- a/wcfsetup/install/files/lib/data/category/Category.class.php +++ b/wcfsetup/install/files/lib/data/category/Category.class.php @@ -29,7 +29,7 @@ * @property-read int $showOrder position of the category in relation to its siblings * @property-read int $time timestamp at which the comment has been created * @property-read int $isDisabled is `1` if the category is disabled and thus neither accessible nor selectable, otherwise `0` - * @property-read array $additionalData array with additional data of the category + * @property-read mixed[] $additionalData array with additional data of the category */ class Category extends ProcessibleDatabaseObject implements IPermissionObject, IRouteController { @@ -60,7 +60,7 @@ class Category extends ProcessibleDatabaseObject implements IPermissionObject, I /** * acl permissions of this category grouped by the id of the user they * belong to - * @var array + * @var array> */ protected $userPermissions = []; diff --git a/wcfsetup/install/files/lib/data/category/CategoryAction.class.php b/wcfsetup/install/files/lib/data/category/CategoryAction.class.php index 312e6b5c63e..be8b9e11bb1 100644 --- a/wcfsetup/install/files/lib/data/category/CategoryAction.class.php +++ b/wcfsetup/install/files/lib/data/category/CategoryAction.class.php @@ -24,10 +24,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Category create() - * @method CategoryEditor[] getObjects() - * @method CategoryEditor getSingleObject() - * @property-read CategoryEditor[] $objects + * @extends AbstractDatabaseObjectAction */ class CategoryAction extends AbstractDatabaseObjectAction implements ISortableAction, diff --git a/wcfsetup/install/files/lib/data/category/CategoryEditor.class.php b/wcfsetup/install/files/lib/data/category/CategoryEditor.class.php index 88509e396e1..3e673017b53 100644 --- a/wcfsetup/install/files/lib/data/category/CategoryEditor.class.php +++ b/wcfsetup/install/files/lib/data/category/CategoryEditor.class.php @@ -15,8 +15,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Category getDecoratedObject() * @mixin Category + * @extends DatabaseObjectEditor + * @implements IEditableCachedObject */ class CategoryEditor extends DatabaseObjectEditor implements IEditableCachedObject { @@ -31,7 +32,7 @@ class CategoryEditor extends DatabaseObjectEditor implements IEditableCachedObje * * @param int $parentCategoryID * @param ?int $showOrder - * @return int + * @return int */ public function updateShowOrder($parentCategoryID, $showOrder) { @@ -108,7 +109,6 @@ public function updateShowOrder($parentCategoryID, $showOrder) /** * @inheritDoc - * @return Category */ public static function create(array $parameters = []) { @@ -129,9 +129,7 @@ public static function create(array $parameters = []) $parameters['additionalData'] = \serialize([]); } - $object = parent::create($parameters); - \assert($object instanceof Category); - return $object; + return parent::create($parameters); } /** @@ -160,7 +158,7 @@ public static function deleteAll(array $objectIDs = []) * @param int $objectTypeID * @param int $parentCategoryID * @param ?int $showOrder - * @return int + * @return int */ protected static function getShowOrder($objectTypeID, $parentCategoryID, $showOrder) { diff --git a/wcfsetup/install/files/lib/data/category/CategoryList.class.php b/wcfsetup/install/files/lib/data/category/CategoryList.class.php index e9151aeeb00..4c1ba4386dd 100644 --- a/wcfsetup/install/files/lib/data/category/CategoryList.class.php +++ b/wcfsetup/install/files/lib/data/category/CategoryList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Category current() - * @method Category[] getObjects() - * @method Category|null getSingleObject() - * @method Category|null search($objectID) - * @property Category[] $objects + * @extends DatabaseObjectList */ class CategoryList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/category/CategoryNode.class.php b/wcfsetup/install/files/lib/data/category/CategoryNode.class.php index aa6eb22ff9a..c11b600427e 100644 --- a/wcfsetup/install/files/lib/data/category/CategoryNode.class.php +++ b/wcfsetup/install/files/lib/data/category/CategoryNode.class.php @@ -14,8 +14,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Category getDecoratedObject() * @mixin Category + * @extends DatabaseObjectDecorator */ class CategoryNode extends DatabaseObjectDecorator implements IObjectTreeNode { diff --git a/wcfsetup/install/files/lib/data/category/CategoryNodeTree.class.php b/wcfsetup/install/files/lib/data/category/CategoryNodeTree.class.php index 864dfe6b777..ffa8a6d92f0 100644 --- a/wcfsetup/install/files/lib/data/category/CategoryNodeTree.class.php +++ b/wcfsetup/install/files/lib/data/category/CategoryNodeTree.class.php @@ -11,6 +11,8 @@ * @author Matthias Schmidt * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License + * + * @implements \IteratorAggregate */ class CategoryNodeTree implements \IteratorAggregate { @@ -82,6 +84,8 @@ public function __construct( /** * Sets the maximum depth considered when building the node tree, defaults * to -1 which equals infinite. + * + * @return void */ public function setMaxDepth(int $maxDepth) { @@ -90,6 +94,8 @@ public function setMaxDepth(int $maxDepth) /** * Builds the category node tree. + * + * @return void */ protected function buildTree() { @@ -99,6 +105,8 @@ protected function buildTree() /** * Builds a certain level of the tree. + * + * @return void */ protected function buildTreeLevel(CategoryNode $parentNode, int $depth = 0) { diff --git a/wcfsetup/install/files/lib/data/category/UncachedCategoryNodeTree.class.php b/wcfsetup/install/files/lib/data/category/UncachedCategoryNodeTree.class.php index 6efc9765557..14a81ed484d 100644 --- a/wcfsetup/install/files/lib/data/category/UncachedCategoryNodeTree.class.php +++ b/wcfsetup/install/files/lib/data/category/UncachedCategoryNodeTree.class.php @@ -15,13 +15,13 @@ class UncachedCategoryNodeTree extends CategoryNodeTree { /** * locally cached categories - * @var Category[] + * @var array */ protected $categoryCache = []; /** * locally cached category ids grouped by the id of their parent category - * @var array + * @var array> */ protected $categoryStructureCache = []; @@ -52,7 +52,7 @@ protected function buildTree() /** * @inheritDoc */ - protected function getCategory($categoryID) + protected function getCategory(int $categoryID) { return $this->categoryCache[$categoryID]; } diff --git a/wcfsetup/install/files/lib/data/clipboard/action/ClipboardActionAction.class.php b/wcfsetup/install/files/lib/data/clipboard/action/ClipboardActionAction.class.php index 20ab65d770a..03bd30c5d61 100644 --- a/wcfsetup/install/files/lib/data/clipboard/action/ClipboardActionAction.class.php +++ b/wcfsetup/install/files/lib/data/clipboard/action/ClipboardActionAction.class.php @@ -11,9 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ClipboardAction create() - * @method ClipboardActionEditor[] getObjects() - * @method ClipboardActionEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class ClipboardActionAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/clipboard/action/ClipboardActionEditor.class.php b/wcfsetup/install/files/lib/data/clipboard/action/ClipboardActionEditor.class.php index 48c1ba9befc..828d5bcc028 100644 --- a/wcfsetup/install/files/lib/data/clipboard/action/ClipboardActionEditor.class.php +++ b/wcfsetup/install/files/lib/data/clipboard/action/ClipboardActionEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static ClipboardAction create(array $parameters = []) - * @method ClipboardAction getDecoratedObject() * @mixin ClipboardAction + * @extends DatabaseObjectEditor */ class ClipboardActionEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/clipboard/action/ClipboardActionList.class.php b/wcfsetup/install/files/lib/data/clipboard/action/ClipboardActionList.class.php index b33e177b173..0e9e3d96ac3 100644 --- a/wcfsetup/install/files/lib/data/clipboard/action/ClipboardActionList.class.php +++ b/wcfsetup/install/files/lib/data/clipboard/action/ClipboardActionList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method ClipboardAction current() - * @method ClipboardAction[] getObjects() - * @method ClipboardAction|null getSingleObject() - * @method ClipboardAction|null search($objectID) - * @property ClipboardAction[] $objects + * @extends DatabaseObjectList */ class ClipboardActionList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/clipboard/item/ClipboardItemAction.class.php b/wcfsetup/install/files/lib/data/clipboard/item/ClipboardItemAction.class.php index 1cad937b179..33d58ab2645 100644 --- a/wcfsetup/install/files/lib/data/clipboard/item/ClipboardItemAction.class.php +++ b/wcfsetup/install/files/lib/data/clipboard/item/ClipboardItemAction.class.php @@ -3,6 +3,8 @@ namespace wcf\data\clipboard\item; use wcf\data\AbstractDatabaseObjectAction; +use wcf\data\DatabaseObject; +use wcf\data\DatabaseObjectEditor; use wcf\system\clipboard\ClipboardEditorItem; use wcf\system\clipboard\ClipboardHandler; use wcf\system\event\EventHandler; @@ -16,6 +18,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * @since 3.0 + * + * @extends AbstractDatabaseObjectAction> */ class ClipboardItemAction extends AbstractDatabaseObjectAction { @@ -31,7 +35,8 @@ class ClipboardItemAction extends AbstractDatabaseObjectAction * This is a heavily modified constructor which behaves differently from other DBOActions, * primarily because this class just masquerades as a regular DBOAction. * - * @inheritDoc + * @param object[] $objects + * @param mixed[] $parameters */ public function __construct(array $objects, $action, array $parameters = []) { @@ -44,6 +49,8 @@ public function __construct(array $objects, $action, array $parameters = []) /** * Validates parameters to set an item as marked. + * + * @return void */ public function validateMark() { @@ -68,6 +75,8 @@ public function mark() /** * Validates parameters to unset an item as marked. + * + * @return void */ public function validateUnmark() { @@ -88,6 +97,8 @@ public function unmark() /** * Validates parameters to fetch the list of marked items. + * + * @return void */ public function validateGetMarkedItems() { @@ -106,6 +117,8 @@ public function getMarkedItems() /** * Validates parameters to unmark all items of a type. + * + * @return void */ public function validateUnmarkAll() { @@ -126,6 +139,8 @@ public function unmarkAll() /** * Validates generic parameters used for most clipboard actions. + * + * @return void */ protected function validateDefaultParameters() { @@ -136,6 +151,8 @@ protected function validateDefaultParameters() /** * Reads the object type and sets the internal object type id. + * + * @return void */ protected function readObjectType() { diff --git a/wcfsetup/install/files/lib/data/comment/CommentAction.class.php b/wcfsetup/install/files/lib/data/comment/CommentAction.class.php index e33ecf1de82..885343f9f5b 100644 --- a/wcfsetup/install/files/lib/data/comment/CommentAction.class.php +++ b/wcfsetup/install/files/lib/data/comment/CommentAction.class.php @@ -45,10 +45,7 @@ * @copyright 2001-2020 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Comment create() - * @method CommentEditor[] getObjects() - * @method CommentEditor getSingleObject() - * @property-read CommentEditor[] $objects + * @extends AbstractDatabaseObjectAction */ class CommentAction extends AbstractDatabaseObjectAction implements IMessageInlineEditorAction { @@ -118,7 +115,7 @@ class CommentAction extends AbstractDatabaseObjectAction implements IMessageInli /** * errors occurring through the validation of addComment or addResponse - * @var array + * @var array * @deprecated 6.1 */ public $validationErrors = []; @@ -126,6 +123,7 @@ class CommentAction extends AbstractDatabaseObjectAction implements IMessageInli /** * Validates parameters to load comments. * + * @return void * @throws PermissionDeniedException * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ @@ -144,7 +142,7 @@ public function validateLoadComments() /** * Returns parsed comments. * - * @return array + * @return array{lastCommentTime: int, template: string} * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ public function loadComments() @@ -176,6 +174,7 @@ public function loadComments() /** * Validates the `loadComment` action. * + * @return void * @throws PermissionDeniedException * @since 3.1 * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend @@ -243,6 +242,7 @@ public function loadComment() /** * Validates the `loadResponse` action. * + * @return void * @since 3.1 * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ @@ -284,6 +284,7 @@ public function loadResponse() /** * Validates parameters to add a comment. * + * @return void * @throws PermissionDeniedException * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ @@ -392,6 +393,7 @@ public function addComment() } /** + * @return void * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ public function triggerPublication() @@ -458,6 +460,7 @@ public function triggerPublication() /** * Validates parameters to add a response. * + * @return void * @throws PermissionDeniedException * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ @@ -497,7 +500,7 @@ public function validateAddResponse() /** * Adds a response. * - * @return array + * @return mixed[] * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ public function addResponse() @@ -595,6 +598,8 @@ public function addResponse() /** * Publishes a response. + * + * @return void * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ public function triggerPublicationResponse() @@ -705,6 +710,7 @@ public function triggerPublicationResponse() /** * Validates the `enable` action. * + * @return void * @throws PermissionDeniedException * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ @@ -752,6 +758,8 @@ public function enable() /** * Validates the `enableResponse` action. * + * + * @return void * @throws PermissionDeniedException * @throws UserInputException * @deprecated 6.0 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend @@ -898,6 +906,7 @@ public function save() /** * Validates parameters to remove a comment or response. * + * @return void * @throws PermissionDeniedException * @throws UserInputException * @deprecated 6.0 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend @@ -953,6 +962,7 @@ public function remove() } /** + * @return void * @since 6.0 * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ @@ -970,6 +980,7 @@ private function validateGetGuestDialog(): void * Returns the dialog for guests when they try to write a comment letting * them enter a username and solving a captcha. * + * @return ?string * @throws SystemException * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ @@ -1139,6 +1150,7 @@ protected function renderResponse(CommentResponse $response) /** * Validates message parameters. * + * @return void * @throws UserInputException * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ @@ -1228,6 +1240,7 @@ protected function validateObjectType($objectTypeID = null) /** * Validates comment id parameter. * + * @return void * @throws UserInputException * @deprecated 6.0 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ @@ -1244,6 +1257,7 @@ protected function validateCommentID() /** * Validates response id parameter. * + * @return void * @throws UserInputException * @deprecated 6.0 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ @@ -1259,6 +1273,8 @@ protected function validateResponseID() /** * Validates the username parameter. + * + * @return void * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ protected function validateUsername() @@ -1284,6 +1300,7 @@ protected function validateUsername() /** * Validates the captcha challenge. * + * @return void * @throws SystemException * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ @@ -1318,6 +1335,8 @@ protected function validateCaptcha() /** * Sets the list of disallowed bbcodes for comments. + * + * @return void * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ protected function setDisallowedBBCodes() diff --git a/wcfsetup/install/files/lib/data/comment/CommentEditor.class.php b/wcfsetup/install/files/lib/data/comment/CommentEditor.class.php index 0559bb032da..80bada834c0 100644 --- a/wcfsetup/install/files/lib/data/comment/CommentEditor.class.php +++ b/wcfsetup/install/files/lib/data/comment/CommentEditor.class.php @@ -12,9 +12,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static Comment create(array $parameters = []) - * @method Comment getDecoratedObject() * @mixin Comment + * @extends DatabaseObjectEditor */ class CommentEditor extends DatabaseObjectEditor { @@ -25,6 +24,8 @@ class CommentEditor extends DatabaseObjectEditor /** * Updates response ids. + * + * @return void */ public function updateResponseIDs() { @@ -42,6 +43,8 @@ public function updateResponseIDs() /** * Updates response ids, including disabled ones. + * + * @return void */ public function updateUnfilteredResponseIDs() { diff --git a/wcfsetup/install/files/lib/data/comment/CommentList.class.php b/wcfsetup/install/files/lib/data/comment/CommentList.class.php index 1e53085b6f4..efc183db486 100644 --- a/wcfsetup/install/files/lib/data/comment/CommentList.class.php +++ b/wcfsetup/install/files/lib/data/comment/CommentList.class.php @@ -2,6 +2,7 @@ namespace wcf\data\comment; +use wcf\data\DatabaseObjectDecorator; use wcf\data\DatabaseObjectList; /** @@ -11,11 +12,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Comment current() - * @method Comment[] getObjects() - * @method Comment|null getSingleObject() - * @method Comment|null search($objectID) - * @property Comment[] $objects + * @template-covariant TDatabaseObject of Comment|DatabaseObjectDecorator = Comment + * @extends DatabaseObjectList */ class CommentList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/comment/LikeableComment.class.php b/wcfsetup/install/files/lib/data/comment/LikeableComment.class.php index c02aa23865f..8308ca0aa25 100644 --- a/wcfsetup/install/files/lib/data/comment/LikeableComment.class.php +++ b/wcfsetup/install/files/lib/data/comment/LikeableComment.class.php @@ -17,8 +17,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Comment getDecoratedObject() * @mixin Comment + * @extends AbstractLikeObject */ class LikeableComment extends AbstractLikeObject implements IReactionObject { diff --git a/wcfsetup/install/files/lib/data/comment/LikeableCommentProvider.class.php b/wcfsetup/install/files/lib/data/comment/LikeableCommentProvider.class.php index 956b9ff1e83..ea729f29c4a 100644 --- a/wcfsetup/install/files/lib/data/comment/LikeableCommentProvider.class.php +++ b/wcfsetup/install/files/lib/data/comment/LikeableCommentProvider.class.php @@ -16,8 +16,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method LikeableComment getObjectByID($objectID) - * @method LikeableComment[] getObjectsByIDs(array $objectIDs) + * @extends AbstractObjectTypeProvider + * @implements ILikeObjectTypeProvider */ class LikeableCommentProvider extends AbstractObjectTypeProvider implements ILikeObjectTypeProvider, @@ -80,9 +80,9 @@ public function prepare(array $likes) foreach ($likeData as $objectTypeID => $likes) { $objectType = CommentHandler::getInstance()->getObjectType($objectTypeID); - if (CommentHandler::getInstance()->getCommentManager($objectType->objectType) instanceof IViewableLikeProvider) { - /** @noinspection PhpUndefinedMethodInspection */ - CommentHandler::getInstance()->getCommentManager($objectType->objectType)->prepare($likes); + $commentManager = CommentHandler::getInstance()->getCommentManager($objectType->objectType); + if ($commentManager instanceof IViewableLikeProvider) { + $commentManager->prepare($likes); } } } diff --git a/wcfsetup/install/files/lib/data/comment/StructuredComment.class.php b/wcfsetup/install/files/lib/data/comment/StructuredComment.class.php index 27210acd4c0..fcbc35ffc9d 100644 --- a/wcfsetup/install/files/lib/data/comment/StructuredComment.class.php +++ b/wcfsetup/install/files/lib/data/comment/StructuredComment.class.php @@ -14,8 +14,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Comment getDecoratedObject() * @mixin Comment + * @extends DatabaseObjectDecorator + * @implements \Iterator */ class StructuredComment extends DatabaseObjectDecorator implements \Countable, \Iterator { @@ -110,6 +111,7 @@ public function getLastResponseID(): int /** * Sets the user's profile. * + * @return void * @deprecated 3.0 */ public function setUserProfile(UserProfile $userProfile) diff --git a/wcfsetup/install/files/lib/data/comment/StructuredCommentList.class.php b/wcfsetup/install/files/lib/data/comment/StructuredCommentList.class.php index 635f4f2fce2..214449ca548 100644 --- a/wcfsetup/install/files/lib/data/comment/StructuredCommentList.class.php +++ b/wcfsetup/install/files/lib/data/comment/StructuredCommentList.class.php @@ -17,11 +17,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method StructuredComment current() - * @method StructuredComment[] getObjects() - * @method StructuredComment|null getSingleObject() - * @method StructuredComment|null search($objectID) - * @property StructuredComment[] $objects + * @extends CommentList */ class StructuredCommentList extends CommentList { @@ -190,7 +186,7 @@ public function readObjects() /** * Fetches the like data. * - * @return LikeObject[][] + * @return array{comment: LikeObject[], response?: LikeObject[]}|array{} */ public function getLikeData() { diff --git a/wcfsetup/install/files/lib/data/comment/ViewableComment.class.php b/wcfsetup/install/files/lib/data/comment/ViewableComment.class.php index d91f8a2cd20..239b802d39a 100644 --- a/wcfsetup/install/files/lib/data/comment/ViewableComment.class.php +++ b/wcfsetup/install/files/lib/data/comment/ViewableComment.class.php @@ -13,8 +13,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Comment getDecoratedObject() * @mixin Comment + * @extends DatabaseObjectDecorator */ class ViewableComment extends DatabaseObjectDecorator { diff --git a/wcfsetup/install/files/lib/data/comment/response/CommentResponse.class.php b/wcfsetup/install/files/lib/data/comment/response/CommentResponse.class.php index a9d64d1fd62..d53e9d29fdd 100644 --- a/wcfsetup/install/files/lib/data/comment/response/CommentResponse.class.php +++ b/wcfsetup/install/files/lib/data/comment/response/CommentResponse.class.php @@ -134,7 +134,7 @@ public function getComment() /** * Sets related comment object. * - * @param Comment $comment + * @return void */ public function setComment(Comment $comment) { diff --git a/wcfsetup/install/files/lib/data/comment/response/CommentResponseAction.class.php b/wcfsetup/install/files/lib/data/comment/response/CommentResponseAction.class.php index e5f0365dcda..627e8d684b0 100644 --- a/wcfsetup/install/files/lib/data/comment/response/CommentResponseAction.class.php +++ b/wcfsetup/install/files/lib/data/comment/response/CommentResponseAction.class.php @@ -26,9 +26,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method CommentResponse create() - * @method CommentResponseEditor[] getObjects() - * @method CommentResponseEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class CommentResponseAction extends AbstractDatabaseObjectAction { @@ -71,13 +69,15 @@ class CommentResponseAction extends AbstractDatabaseObjectAction /** * response object - * @var CommentResponse + * @var CommentResponseEditor * @deprecated 6.1 */ protected $response; /** * Validates parameters to load responses for a given comment id. + * + * @return void * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ public function validateLoadResponses() @@ -100,7 +100,12 @@ public function validateLoadResponses() /** * Returns parsed responses for given comment id. * - * @return array + * @return array{ + * commentID: int, + * lastResponseTime: int, + * lastResponseID: int, + * template: string, + * } * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ public function loadResponses() @@ -165,7 +170,7 @@ public function loadResponses() } /** - * @inheritDoc + * @return void * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ public function validateBeginEdit() @@ -182,7 +187,7 @@ public function validateBeginEdit() } /** - * @inheritDoc + * @return array{actionName: 'beginEdit', template: string} * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ public function beginEdit() @@ -201,7 +206,7 @@ public function beginEdit() } /** - * @inheritDoc + * @return void * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ public function validateSave() @@ -212,7 +217,7 @@ public function validateSave() } /** - * @inheritDoc + * @return array{actionName: 'save', message: string} * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ public function save() @@ -252,6 +257,7 @@ public function save() /** * Validates message parameter. * + * @return void * @throws UserInputException * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ @@ -316,6 +322,8 @@ protected function validateObjectType($objectTypeID = null) /** * Sets the list of disallowed bbcodes for comments. + * + * @return void * @deprecated 6.1 see https://docs.woltlab.com/6.1/migration/wsc60/php/#comment-backend */ protected function setDisallowedBBCodes() diff --git a/wcfsetup/install/files/lib/data/comment/response/CommentResponseEditor.class.php b/wcfsetup/install/files/lib/data/comment/response/CommentResponseEditor.class.php index 2753895b89c..db2abfb4378 100644 --- a/wcfsetup/install/files/lib/data/comment/response/CommentResponseEditor.class.php +++ b/wcfsetup/install/files/lib/data/comment/response/CommentResponseEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static CommentResponse create(array $parameters = []) - * @method CommentResponse getDecoratedObject() * @mixin CommentResponse + * @extends DatabaseObjectEditor */ class CommentResponseEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/comment/response/CommentResponseList.class.php b/wcfsetup/install/files/lib/data/comment/response/CommentResponseList.class.php index cc691830c23..b8735144abe 100644 --- a/wcfsetup/install/files/lib/data/comment/response/CommentResponseList.class.php +++ b/wcfsetup/install/files/lib/data/comment/response/CommentResponseList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method CommentResponse current() - * @method CommentResponse[] getObjects() - * @method CommentResponse|null getSingleObject() - * @method CommentResponse|null search($objectID) - * @property CommentResponse[] $objects + * @extends DatabaseObjectList */ class CommentResponseList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/comment/response/LikeableCommentResponse.class.php b/wcfsetup/install/files/lib/data/comment/response/LikeableCommentResponse.class.php index 186bb2ff05c..9e9598dfa1f 100644 --- a/wcfsetup/install/files/lib/data/comment/response/LikeableCommentResponse.class.php +++ b/wcfsetup/install/files/lib/data/comment/response/LikeableCommentResponse.class.php @@ -18,8 +18,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method CommentResponse getDecoratedObject() * @mixin CommentResponse + * @extends AbstractLikeObject */ class LikeableCommentResponse extends AbstractLikeObject implements IReactionObject { diff --git a/wcfsetup/install/files/lib/data/comment/response/LikeableCommentResponseProvider.class.php b/wcfsetup/install/files/lib/data/comment/response/LikeableCommentResponseProvider.class.php index 42b7ccd4df4..972d78b8a09 100644 --- a/wcfsetup/install/files/lib/data/comment/response/LikeableCommentResponseProvider.class.php +++ b/wcfsetup/install/files/lib/data/comment/response/LikeableCommentResponseProvider.class.php @@ -18,8 +18,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method LikeableCommentResponse getObjectByID($objectID) - * @method LikeableCommentResponse[] getObjectsByIDs(array $objectIDs) + * @extends AbstractObjectTypeProvider + * @implements ILikeObjectTypeProvider */ class LikeableCommentResponseProvider extends AbstractObjectTypeProvider implements ILikeObjectTypeProvider, diff --git a/wcfsetup/install/files/lib/data/comment/response/StructuredCommentResponse.class.php b/wcfsetup/install/files/lib/data/comment/response/StructuredCommentResponse.class.php index 433cb41efd0..4f82add199b 100644 --- a/wcfsetup/install/files/lib/data/comment/response/StructuredCommentResponse.class.php +++ b/wcfsetup/install/files/lib/data/comment/response/StructuredCommentResponse.class.php @@ -13,8 +13,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method CommentResponse getDecoratedObject() * @mixin CommentResponse + * @extends DatabaseObjectDecorator */ class StructuredCommentResponse extends DatabaseObjectDecorator { @@ -44,7 +44,7 @@ class StructuredCommentResponse extends DatabaseObjectDecorator /** * Sets the user's profile. * - * @param UserProfile $userProfile + * @return void * @deprecated 3.0 */ public function setUserProfile(UserProfile $userProfile) @@ -98,6 +98,7 @@ public static function getResponse($responseID) * Sets deletable state. * * @param bool $deletable + * @return void */ public function setIsDeletable($deletable) { @@ -108,6 +109,7 @@ public function setIsDeletable($deletable) * Sets editable state. * * @param bool $editable + * @return void */ public function setIsEditable($editable) { diff --git a/wcfsetup/install/files/lib/data/comment/response/ViewableCommentResponse.class.php b/wcfsetup/install/files/lib/data/comment/response/ViewableCommentResponse.class.php index be1e5b2733f..678739de976 100644 --- a/wcfsetup/install/files/lib/data/comment/response/ViewableCommentResponse.class.php +++ b/wcfsetup/install/files/lib/data/comment/response/ViewableCommentResponse.class.php @@ -13,8 +13,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method CommentResponse getDecoratedObject() * @mixin CommentResponse + * @extends DatabaseObjectDecorator */ class ViewableCommentResponse extends DatabaseObjectDecorator { diff --git a/wcfsetup/install/files/lib/data/condition/Condition.class.php b/wcfsetup/install/files/lib/data/condition/Condition.class.php index 6bca7549b64..ee07a33bdec 100644 --- a/wcfsetup/install/files/lib/data/condition/Condition.class.php +++ b/wcfsetup/install/files/lib/data/condition/Condition.class.php @@ -15,7 +15,7 @@ * @property-read int $conditionID unique id of the condition * @property-read int $objectTypeID id of the condition object type (of different condition object type definitions) * @property-read int $objectID id of the conditioned object of the object type represented by `$objectTypeID` - * @property-read array $conditionData array with the condition data with is processed by the condition object type's processor + * @property-read mixed[] $conditionData array with the condition data with is processed by the condition object type's processor */ class Condition extends DatabaseObject { diff --git a/wcfsetup/install/files/lib/data/condition/ConditionAction.class.php b/wcfsetup/install/files/lib/data/condition/ConditionAction.class.php index 79bf2ca7bcf..2657569d056 100644 --- a/wcfsetup/install/files/lib/data/condition/ConditionAction.class.php +++ b/wcfsetup/install/files/lib/data/condition/ConditionAction.class.php @@ -11,10 +11,6 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Condition create() - * @method ConditionEditor[] getObjects() - * @method ConditionEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ -class ConditionAction extends AbstractDatabaseObjectAction -{ -} +class ConditionAction extends AbstractDatabaseObjectAction {} diff --git a/wcfsetup/install/files/lib/data/condition/ConditionEditor.class.php b/wcfsetup/install/files/lib/data/condition/ConditionEditor.class.php index ce7ca9b1b66..e48bfa35d36 100644 --- a/wcfsetup/install/files/lib/data/condition/ConditionEditor.class.php +++ b/wcfsetup/install/files/lib/data/condition/ConditionEditor.class.php @@ -13,9 +13,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static Condition create(array $parameters = []) - * @method Condition getDecoratedObject() * @mixin Condition + * @extends DatabaseObjectEditor + * @implements IEditableCachedObject */ class ConditionEditor extends DatabaseObjectEditor implements IEditableCachedObject { diff --git a/wcfsetup/install/files/lib/data/condition/ConditionList.class.php b/wcfsetup/install/files/lib/data/condition/ConditionList.class.php index 4d08b0ffab0..ba7f1c71cf4 100644 --- a/wcfsetup/install/files/lib/data/condition/ConditionList.class.php +++ b/wcfsetup/install/files/lib/data/condition/ConditionList.class.php @@ -11,12 +11,6 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Condition current() - * @method Condition[] getObjects() - * @method Condition|null getSingleObject() - * @method Condition|null search($objectID) - * @property Condition[] $objects + * @extends DatabaseObjectList */ -class ConditionList extends DatabaseObjectList -{ -} +class ConditionList extends DatabaseObjectList {} diff --git a/wcfsetup/install/files/lib/data/contact/attachment/ContactAttachmentAction.class.php b/wcfsetup/install/files/lib/data/contact/attachment/ContactAttachmentAction.class.php index ecb7f3921f9..e566df2a534 100644 --- a/wcfsetup/install/files/lib/data/contact/attachment/ContactAttachmentAction.class.php +++ b/wcfsetup/install/files/lib/data/contact/attachment/ContactAttachmentAction.class.php @@ -12,8 +12,7 @@ * @license GNU Lesser General Public License * @since 5.2 * - * @method ContactAttachmentEditor[] getObjects() - * @method ContactAttachmentEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class ContactAttachmentAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/contact/attachment/ContactAttachmentEditor.class.php b/wcfsetup/install/files/lib/data/contact/attachment/ContactAttachmentEditor.class.php index 19ac12fa3d7..d84f0e43c93 100644 --- a/wcfsetup/install/files/lib/data/contact/attachment/ContactAttachmentEditor.class.php +++ b/wcfsetup/install/files/lib/data/contact/attachment/ContactAttachmentEditor.class.php @@ -12,9 +12,8 @@ * @license GNU Lesser General Public License * @since 5.2 * - * @method static ContactAttachment create(array $parameters = []) - * @method ContactAttachment getDecoratedObject() * @mixin ContactAttachment + * @extends DatabaseObjectEditor */ class ContactAttachmentEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/contact/attachment/ContactAttachmentList.class.php b/wcfsetup/install/files/lib/data/contact/attachment/ContactAttachmentList.class.php index cf21486d003..6d2c36963fa 100644 --- a/wcfsetup/install/files/lib/data/contact/attachment/ContactAttachmentList.class.php +++ b/wcfsetup/install/files/lib/data/contact/attachment/ContactAttachmentList.class.php @@ -12,10 +12,7 @@ * @license GNU Lesser General Public License * @since 5.2 * - * @method ContactAttachment current() - * @method ContactAttachment[] getObjects() - * @method ContactAttachment|null search($objectID) - * @property ContactAttachment[] $objects + * @extends DatabaseObjectList */ class ContactAttachmentList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/contact/option/ContactOptionAction.class.php b/wcfsetup/install/files/lib/data/contact/option/ContactOptionAction.class.php index cf46e0114c0..af03147be92 100644 --- a/wcfsetup/install/files/lib/data/contact/option/ContactOptionAction.class.php +++ b/wcfsetup/install/files/lib/data/contact/option/ContactOptionAction.class.php @@ -25,9 +25,6 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * @since 3.1 - * - * @method ContactOptionEditor[] getObjects() - * @method ContactOptionEditor getSingleObject() */ class ContactOptionAction extends CustomOptionAction implements ISortableAction { @@ -58,6 +55,8 @@ class ContactOptionAction extends CustomOptionAction implements ISortableAction /** * Sends an email to the selected recipient. + * + * @return void */ public function send() { diff --git a/wcfsetup/install/files/lib/data/contact/option/ContactOptionEditor.class.php b/wcfsetup/install/files/lib/data/contact/option/ContactOptionEditor.class.php index c4d0ffc36d2..c7a4b70aa2d 100644 --- a/wcfsetup/install/files/lib/data/contact/option/ContactOptionEditor.class.php +++ b/wcfsetup/install/files/lib/data/contact/option/ContactOptionEditor.class.php @@ -14,9 +14,9 @@ * @license GNU Lesser General Public License * @since 3.1 * - * @method static ContactOption create(array $parameters = []) - * @method ContactOption getDecoratedObject() * @mixin ContactOption + * @extends CustomOptionEditor + * @implements IEditableCachedObject */ class ContactOptionEditor extends CustomOptionEditor implements IEditableCachedObject { diff --git a/wcfsetup/install/files/lib/data/contact/recipient/ContactRecipientAction.class.php b/wcfsetup/install/files/lib/data/contact/recipient/ContactRecipientAction.class.php index 1142fa67ff0..9e6d7220c47 100644 --- a/wcfsetup/install/files/lib/data/contact/recipient/ContactRecipientAction.class.php +++ b/wcfsetup/install/files/lib/data/contact/recipient/ContactRecipientAction.class.php @@ -18,8 +18,7 @@ * @license GNU Lesser General Public License * @since 3.1 * - * @method ContactRecipientEditor[] getObjects() - * @method ContactRecipientEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class ContactRecipientAction extends AbstractDatabaseObjectAction implements ISortableAction, IToggleAction { diff --git a/wcfsetup/install/files/lib/data/contact/recipient/ContactRecipientEditor.class.php b/wcfsetup/install/files/lib/data/contact/recipient/ContactRecipientEditor.class.php index 5603c3a03d7..67924d103c4 100644 --- a/wcfsetup/install/files/lib/data/contact/recipient/ContactRecipientEditor.class.php +++ b/wcfsetup/install/files/lib/data/contact/recipient/ContactRecipientEditor.class.php @@ -12,9 +12,8 @@ * @license GNU Lesser General Public License * @since 3.1 * - * @method static ContactRecipient create(array $parameters = []) - * @method ContactRecipient getDecoratedObject() * @mixin ContactRecipient + * @extends DatabaseObjectEditor */ class ContactRecipientEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/contact/recipient/ContactRecipientList.class.php b/wcfsetup/install/files/lib/data/contact/recipient/ContactRecipientList.class.php index cacdef44330..1cf17398e1a 100644 --- a/wcfsetup/install/files/lib/data/contact/recipient/ContactRecipientList.class.php +++ b/wcfsetup/install/files/lib/data/contact/recipient/ContactRecipientList.class.php @@ -12,11 +12,7 @@ * @license GNU Lesser General Public License * @since 3.1 * - * @method ContactRecipient current() - * @method ContactRecipient[] getObjects() - * @method ContactRecipient|null getSingleObject() - * @method ContactRecipient|null search($objectID) - * @property ContactRecipient[] $objects + * @extends DatabaseObjectList */ class ContactRecipientList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/core/object/CoreObjectAction.class.php b/wcfsetup/install/files/lib/data/core/object/CoreObjectAction.class.php index b8c7d136456..561c27587b7 100644 --- a/wcfsetup/install/files/lib/data/core/object/CoreObjectAction.class.php +++ b/wcfsetup/install/files/lib/data/core/object/CoreObjectAction.class.php @@ -11,9 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method CoreObject create() - * @method CoreObjectEditor[] getObjects() - * @method CoreObjectEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class CoreObjectAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/core/object/CoreObjectEditor.class.php b/wcfsetup/install/files/lib/data/core/object/CoreObjectEditor.class.php index 47341dbe44b..6b7d0dc17ad 100644 --- a/wcfsetup/install/files/lib/data/core/object/CoreObjectEditor.class.php +++ b/wcfsetup/install/files/lib/data/core/object/CoreObjectEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static CoreObject create(array $parameters = []) - * @method CoreObject getDecoratedObject() * @mixin CoreObject + * @extends DatabaseObjectEditor */ class CoreObjectEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/core/object/CoreObjectList.class.php b/wcfsetup/install/files/lib/data/core/object/CoreObjectList.class.php index 28b5b50b1a3..6cf653ff2f9 100644 --- a/wcfsetup/install/files/lib/data/core/object/CoreObjectList.class.php +++ b/wcfsetup/install/files/lib/data/core/object/CoreObjectList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method CoreObject current() - * @method CoreObject[] getObjects() - * @method CoreObject|null getSingleObject() - * @method CoreObject|null search($objectID) - * @property CoreObject[] $objects + * @extends DatabaseObjectList */ class CoreObjectList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/cronjob/CronjobAction.class.php b/wcfsetup/install/files/lib/data/cronjob/CronjobAction.class.php index 493b91b4e88..0e110e422a6 100644 --- a/wcfsetup/install/files/lib/data/cronjob/CronjobAction.class.php +++ b/wcfsetup/install/files/lib/data/cronjob/CronjobAction.class.php @@ -20,9 +20,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Cronjob create() - * @method CronjobEditor[] getObjects() - * @method CronjobEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class CronjobAction extends AbstractDatabaseObjectAction implements IToggleAction { @@ -102,6 +100,8 @@ public function validateToggle() /** * Validates the 'execute' action. + * + * @return void */ public function validateExecute() { @@ -110,6 +110,11 @@ public function validateExecute() /** * Executes cronjobs. + * + * @return array */ public function execute() { @@ -217,6 +222,7 @@ public function execute() } /** + * @return void * @deprecated 6.0 Either use CronjobScheduler::executeCronjobs() directly, or query CronjobPerformAction. */ public function validateExecuteCronjobs() @@ -225,6 +231,7 @@ public function validateExecuteCronjobs() } /** + * @return void * @deprecated 6.0 Either use CronjobScheduler::executeCronjobs() directly, or query CronjobPerformAction. */ public function executeCronjobs() diff --git a/wcfsetup/install/files/lib/data/cronjob/CronjobEditor.class.php b/wcfsetup/install/files/lib/data/cronjob/CronjobEditor.class.php index e672e0df676..9d17111d049 100644 --- a/wcfsetup/install/files/lib/data/cronjob/CronjobEditor.class.php +++ b/wcfsetup/install/files/lib/data/cronjob/CronjobEditor.class.php @@ -17,8 +17,9 @@ * @copyright 2001-2020 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Cronjob getDecoratedObject() * @mixin Cronjob + * @extends DatabaseObjectEditor + * @implements IEditableCachedObject */ class CronjobEditor extends DatabaseObjectEditor implements IEditableCachedObject { @@ -29,7 +30,6 @@ class CronjobEditor extends DatabaseObjectEditor implements IEditableCachedObjec /** * @inheritDoc - * @return Cronjob */ public static function create(array $parameters = []) { @@ -44,7 +44,6 @@ public static function create(array $parameters = []) } $cronjob = parent::create($parameters); - \assert($cronjob instanceof Cronjob); // save cronjob description if (!empty($descriptions)) { @@ -59,6 +58,7 @@ public static function create(array $parameters = []) * Saves the descriptions of the cronjob in language items. * * @param string[] $descriptions + * @return void * @since 3.0 */ protected function saveDescriptions(array $descriptions) diff --git a/wcfsetup/install/files/lib/data/cronjob/CronjobList.class.php b/wcfsetup/install/files/lib/data/cronjob/CronjobList.class.php index 11de1f27089..13d396e7d8e 100644 --- a/wcfsetup/install/files/lib/data/cronjob/CronjobList.class.php +++ b/wcfsetup/install/files/lib/data/cronjob/CronjobList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method Cronjob current() - * @method Cronjob[] getObjects() - * @method Cronjob|null getSingleObject() - * @method Cronjob|null search($objectID) - * @property Cronjob[] $objects + * @extends DatabaseObjectList */ class CronjobList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/cronjob/I18nCronjobList.class.php b/wcfsetup/install/files/lib/data/cronjob/I18nCronjobList.class.php index 56e2ca4d7f8..5c349c1e23c 100644 --- a/wcfsetup/install/files/lib/data/cronjob/I18nCronjobList.class.php +++ b/wcfsetup/install/files/lib/data/cronjob/I18nCronjobList.class.php @@ -12,11 +12,7 @@ * @license GNU Lesser General Public License * @since 5.3 * - * @method Cronjob current() - * @method Cronjob[] getObjects() - * @method Cronjob|null getSingleObject() - * @method Cronjob|null search($objectID) - * @property Cronjob[] $objects + * @extends I18nDatabaseObjectList */ class I18nCronjobList extends I18nDatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/cronjob/log/CronjobLogAction.class.php b/wcfsetup/install/files/lib/data/cronjob/log/CronjobLogAction.class.php index b3da9bfe79f..d96c5634a7a 100644 --- a/wcfsetup/install/files/lib/data/cronjob/log/CronjobLogAction.class.php +++ b/wcfsetup/install/files/lib/data/cronjob/log/CronjobLogAction.class.php @@ -11,9 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method CronjobLog create() - * @method CronjobLogEditor[] getObjects() - * @method CronjobLogEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class CronjobLogAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/cronjob/log/CronjobLogEditor.class.php b/wcfsetup/install/files/lib/data/cronjob/log/CronjobLogEditor.class.php index a415abf7295..c60a5677d24 100644 --- a/wcfsetup/install/files/lib/data/cronjob/log/CronjobLogEditor.class.php +++ b/wcfsetup/install/files/lib/data/cronjob/log/CronjobLogEditor.class.php @@ -12,9 +12,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static CronjobLog create(array $parameters = []) - * @method CronjobLog getDecoratedObject() * @mixin CronjobLog + * @extends DatabaseObjectEditor */ class CronjobLogEditor extends DatabaseObjectEditor { @@ -25,6 +24,8 @@ class CronjobLogEditor extends DatabaseObjectEditor /** * Deletes all cronjob logs. + * + * @return void */ public static function clearLogs() { diff --git a/wcfsetup/install/files/lib/data/cronjob/log/CronjobLogList.class.php b/wcfsetup/install/files/lib/data/cronjob/log/CronjobLogList.class.php index fc82e184f5b..126387278a6 100644 --- a/wcfsetup/install/files/lib/data/cronjob/log/CronjobLogList.class.php +++ b/wcfsetup/install/files/lib/data/cronjob/log/CronjobLogList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method CronjobLog current() - * @method CronjobLog[] getObjects() - * @method CronjobLog|null getSingleObject() - * @method CronjobLog|null search($objectID) - * @property CronjobLog[] $objects + * @extends DatabaseObjectList */ class CronjobLogList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/custom/option/CustomOption.class.php b/wcfsetup/install/files/lib/data/custom/option/CustomOption.class.php index d3ed4035b34..3b7328f7aeb 100644 --- a/wcfsetup/install/files/lib/data/custom/option/CustomOption.class.php +++ b/wcfsetup/install/files/lib/data/custom/option/CustomOption.class.php @@ -106,6 +106,7 @@ public function getOptionValue() * Sets the value of this option. * * @param string $value + * @return void */ public function setOptionValue($value) { diff --git a/wcfsetup/install/files/lib/data/custom/option/CustomOptionAction.class.php b/wcfsetup/install/files/lib/data/custom/option/CustomOptionAction.class.php index 15db263a1f4..bbd38816e65 100644 --- a/wcfsetup/install/files/lib/data/custom/option/CustomOptionAction.class.php +++ b/wcfsetup/install/files/lib/data/custom/option/CustomOptionAction.class.php @@ -14,9 +14,7 @@ * @license GNU Lesser General Public License * @since 3.1 * - * @method CustomOption create() - * @method CustomOptionEditor[] getObjects() - * @method CustomOptionEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ abstract class CustomOptionAction extends AbstractDatabaseObjectAction implements IToggleAction { diff --git a/wcfsetup/install/files/lib/data/custom/option/CustomOptionEditor.class.php b/wcfsetup/install/files/lib/data/custom/option/CustomOptionEditor.class.php index 6b53e75dd5d..46d7f91221f 100644 --- a/wcfsetup/install/files/lib/data/custom/option/CustomOptionEditor.class.php +++ b/wcfsetup/install/files/lib/data/custom/option/CustomOptionEditor.class.php @@ -12,9 +12,9 @@ * @license GNU Lesser General Public License * @since 3.1 * - * @method static CustomOption create(array $parameters = []) - * @method CustomOption getDecoratedObject() * @mixin CustomOption + * @template TCustomOption of CustomOption = CustomOption + * @extends DatabaseObjectEditor */ abstract class CustomOptionEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/custom/option/CustomOptionList.class.php b/wcfsetup/install/files/lib/data/custom/option/CustomOptionList.class.php index d090e0b8111..30345774e72 100644 --- a/wcfsetup/install/files/lib/data/custom/option/CustomOptionList.class.php +++ b/wcfsetup/install/files/lib/data/custom/option/CustomOptionList.class.php @@ -12,11 +12,7 @@ * @license GNU Lesser General Public License * @since 3.1 * - * @method CustomOption current() - * @method CustomOption[] getObjects() - * @method CustomOption|null getSingleObject() - * @method CustomOption|null search($objectID) - * @property CustomOption[] $objects + * @extends DatabaseObjectList */ abstract class CustomOptionList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/devtools/missing/language/item/DevtoolsMissingLanguageItemAction.class.php b/wcfsetup/install/files/lib/data/devtools/missing/language/item/DevtoolsMissingLanguageItemAction.class.php index a131377042a..d9bcd8c90ae 100644 --- a/wcfsetup/install/files/lib/data/devtools/missing/language/item/DevtoolsMissingLanguageItemAction.class.php +++ b/wcfsetup/install/files/lib/data/devtools/missing/language/item/DevtoolsMissingLanguageItemAction.class.php @@ -17,8 +17,7 @@ * @license GNU Lesser General Public License * @since 5.3 * - * @method DevtoolsMissingLanguageItemEditor[] getObjects() - * @method DevtoolsMissingLanguageItemEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class DevtoolsMissingLanguageItemAction extends AbstractDatabaseObjectAction implements IDeleteAction { @@ -29,6 +28,8 @@ class DevtoolsMissingLanguageItemAction extends AbstractDatabaseObjectAction imp /** * Logs a missing language item. + * + * @return void */ public function logLanguageItem() { @@ -102,6 +103,8 @@ public function validateDelete() /** * Validates the `clearLog` action. + * + * @return void */ public function validateClearLog() { @@ -114,6 +117,8 @@ public function validateClearLog() /** * Removes all entries from the missing language item log. + * + * @return void */ public function clearLog() { diff --git a/wcfsetup/install/files/lib/data/devtools/missing/language/item/DevtoolsMissingLanguageItemEditor.class.php b/wcfsetup/install/files/lib/data/devtools/missing/language/item/DevtoolsMissingLanguageItemEditor.class.php index ea06a64ad9b..a74be57ccbf 100644 --- a/wcfsetup/install/files/lib/data/devtools/missing/language/item/DevtoolsMissingLanguageItemEditor.class.php +++ b/wcfsetup/install/files/lib/data/devtools/missing/language/item/DevtoolsMissingLanguageItemEditor.class.php @@ -12,9 +12,8 @@ * @license GNU Lesser General Public License * @since 5.3 * - * @method static DevtoolsMissingLanguageItem create(array $parameters = []) - * @method DevtoolsMissingLanguageItem getDecoratedObject() * @mixin DevtoolsMissingLanguageItem + * @extends DatabaseObjectEditor */ class DevtoolsMissingLanguageItemEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/devtools/missing/language/item/DevtoolsMissingLanguageItemList.class.php b/wcfsetup/install/files/lib/data/devtools/missing/language/item/DevtoolsMissingLanguageItemList.class.php index 10837005cd8..00693640bc4 100644 --- a/wcfsetup/install/files/lib/data/devtools/missing/language/item/DevtoolsMissingLanguageItemList.class.php +++ b/wcfsetup/install/files/lib/data/devtools/missing/language/item/DevtoolsMissingLanguageItemList.class.php @@ -12,11 +12,7 @@ * @license GNU Lesser General Public License * @since 5.3 * - * @method DevtoolsMissingLanguageItem current() - * @method DevtoolsMissingLanguageItem[] getObjects() - * @method DevtoolsMissingLanguageItem|null getSingleObject() - * @method DevtoolsMissingLanguageItem|null search($objectID) - * @property DevtoolsMissingLanguageItem[] $objects + * @extends DatabaseObjectList */ class DevtoolsMissingLanguageItemList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProject.class.php b/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProject.class.php index 821dd98ca51..55d42426afd 100644 --- a/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProject.class.php +++ b/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProject.class.php @@ -106,7 +106,7 @@ public function validate($pathOnly = false) /** * Returns true if this project appears to be `WoltLab Suite Core`. * - * @return bool + * @return bool */ public function isCore() { @@ -225,7 +225,7 @@ public function getLanguageFiles() /** * Sets the package that belongs to this project. * - * @param Package $package + * @return void * @throws \InvalidArgumentException if the identifier of the given package does not match * @since 5.2 */ @@ -272,7 +272,7 @@ public static function validatePath($path) * Returns true if the path appears to point to `WoltLab Suite Core`. * * @param string $path - * @return bool + * @return bool */ public static function pathIsCore($path) { diff --git a/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProjectAction.class.php b/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProjectAction.class.php index c9f75bf66a6..c5b5716be31 100644 --- a/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProjectAction.class.php +++ b/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProjectAction.class.php @@ -20,8 +20,7 @@ * @license GNU Lesser General Public License * @since 3.1 * - * @method DevtoolsProjectEditor[] getObjects() - * @method DevtoolsProjectEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class DevtoolsProjectAction extends AbstractDatabaseObjectAction { @@ -56,14 +55,12 @@ class DevtoolsProjectAction extends AbstractDatabaseObjectAction /** * @inheritDoc - * @return DevtoolsProject * @since 5.2 */ public function create() { $this->parameters['data']['path'] = FileUtil::addTrailingSlash($this->parameters['data']['path']); - /** @var DevtoolsProject $project */ $project = parent::create(); // ensure that the project directory exists @@ -87,6 +84,7 @@ public function validateDelete() /** * Validates the 'quickSetup' action. * + * @return void * @throws IllegalLinkException */ public function validateQuickSetup() @@ -103,7 +101,12 @@ public function validateQuickSetup() /** * Quickly setups multiple projects by scanning a directory. * - * @return array + * @return array{ + * successMessage: string, + * }|array{ + * errorMessage: string, + * errorType: string, + * } */ public function quickSetup() { @@ -182,6 +185,7 @@ public function quickSetup() /** * Checks if the `installPackage` action can be executed. * + * @return void * @throws IllegalLinkException * @since 5.2 */ @@ -199,8 +203,8 @@ public function validateInstallPackage() /** * Installs a package that is currently only available as a project. * - * @return int[] id of the package installation queue for the - * @since 5.2 + * @return array{isApplication: int, queueID: int} + * @since 5.2 */ public function installPackage() { @@ -227,6 +231,7 @@ public function installPackage() /** * Checks if the `deletePipEntry` action can be executed. * + * @return void * @throws IllegalLinkException * @since 5.2 */ diff --git a/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProjectEditor.class.php b/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProjectEditor.class.php index c3902d41104..fdb819fe150 100644 --- a/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProjectEditor.class.php +++ b/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProjectEditor.class.php @@ -12,9 +12,8 @@ * @license GNU Lesser General Public License * @since 3.1 * - * @method static DevtoolsProject create(array $parameters = []) - * @method DevtoolsProject getDecoratedObject() * @mixin DevtoolsProject + * @extends DatabaseObjectEditor */ class DevtoolsProjectEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProjectList.class.php b/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProjectList.class.php index 06661821886..371afeb69c0 100644 --- a/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProjectList.class.php +++ b/wcfsetup/install/files/lib/data/devtools/project/DevtoolsProjectList.class.php @@ -12,11 +12,7 @@ * @license GNU Lesser General Public License * @since 3.1 * - * @method DevtoolsProject current() - * @method DevtoolsProject[] getObjects() - * @method DevtoolsProject|null getSingleObject() - * @method DevtoolsProject|null search($objectID) - * @property DevtoolsProject[] $objects + * @extends DatabaseObjectList */ class DevtoolsProjectList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntry.class.php b/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntry.class.php index 34af381bc81..32f0b7b2781 100644 --- a/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntry.class.php +++ b/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntry.class.php @@ -4,6 +4,7 @@ use wcf\data\DatabaseObject; use wcf\data\object\type\ObjectTypeCache; +use wcf\system\edit\IHistorySavingObject; /** * Represents an edit history entry. @@ -26,14 +27,14 @@ class EditHistoryEntry extends DatabaseObject { /** - * @inheritDoc + * @var ?IHistorySavingObject */ protected $object; /** * Returns the message text of the history entry. * - * @return string + * @return string */ public function getMessage() { @@ -43,7 +44,7 @@ public function getMessage() /** * Returns the corresponding IHistorySavingObject * - * @return \wcf\system\edit\IHistorySavingObject + * @return IHistorySavingObject */ public function getObject() { diff --git a/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntryAction.class.php b/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntryAction.class.php index 313d450e599..54e7a093c16 100644 --- a/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntryAction.class.php +++ b/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntryAction.class.php @@ -13,9 +13,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method EditHistoryEntry create() - * @method EditHistoryEntryEditor[] getObjects() - * @method EditHistoryEntryEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class EditHistoryEntryAction extends AbstractDatabaseObjectAction { @@ -26,6 +24,8 @@ class EditHistoryEntryAction extends AbstractDatabaseObjectAction /** * Checks permissions to revert. + * + * @return void */ public function validateRevert() { @@ -43,6 +43,8 @@ public function validateRevert() /** * Reverts the objects back to this history entry. + * + * @return void */ public function revert() { diff --git a/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntryEditor.class.php b/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntryEditor.class.php index b55b90930ff..c1c445166b5 100644 --- a/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntryEditor.class.php +++ b/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntryEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static EditHistoryEntry create(array $parameters = []) - * @method EditHistoryEntry getDecoratedObject() * @mixin EditHistoryEntry + * @extends DatabaseObjectEditor */ class EditHistoryEntryEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntryList.class.php b/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntryList.class.php index 6c84822dddc..6c19b31c6ff 100644 --- a/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntryList.class.php +++ b/wcfsetup/install/files/lib/data/edit/history/entry/EditHistoryEntryList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method EditHistoryEntry current() - * @method EditHistoryEntry[] getObjects() - * @method EditHistoryEntry|null getSingleObject() - * @method EditHistoryEntry|null search($objectID) - * @property EditHistoryEntry[] $objects + * @extends DatabaseObjectList */ class EditHistoryEntryList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/email/log/entry/EmailLogEntryAction.class.php b/wcfsetup/install/files/lib/data/email/log/entry/EmailLogEntryAction.class.php index d7b39e25947..b48048b23c2 100644 --- a/wcfsetup/install/files/lib/data/email/log/entry/EmailLogEntryAction.class.php +++ b/wcfsetup/install/files/lib/data/email/log/entry/EmailLogEntryAction.class.php @@ -12,9 +12,7 @@ * @copyright 2001-2021 WoltLab GmbH * @license GNU Lesser General Public License * - * @method EmailLogEntry create() - * @method EmailLogEntryEditor[] getObjects() - * @method EmailLogEntryEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class EmailLogEntryAction extends AbstractDatabaseObjectAction { @@ -25,6 +23,8 @@ class EmailLogEntryAction extends AbstractDatabaseObjectAction /** * Deletes old log entries. + * + * @return void */ public function prune() { diff --git a/wcfsetup/install/files/lib/data/email/log/entry/EmailLogEntryEditor.class.php b/wcfsetup/install/files/lib/data/email/log/entry/EmailLogEntryEditor.class.php index d5daf5bf6fc..cd1d8b4aab5 100644 --- a/wcfsetup/install/files/lib/data/email/log/entry/EmailLogEntryEditor.class.php +++ b/wcfsetup/install/files/lib/data/email/log/entry/EmailLogEntryEditor.class.php @@ -11,9 +11,8 @@ * @copyright 2001-2021 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static EmailLogEntry create(array $parameters = []) - * @method EmailLogEntry getDecoratedObject() * @mixin EmailLogEntry + * @extends DatabaseObjectEditor */ class EmailLogEntryEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/email/log/entry/EmailLogEntryList.class.php b/wcfsetup/install/files/lib/data/email/log/entry/EmailLogEntryList.class.php index 320ac129af5..d60bd2b28be 100644 --- a/wcfsetup/install/files/lib/data/email/log/entry/EmailLogEntryList.class.php +++ b/wcfsetup/install/files/lib/data/email/log/entry/EmailLogEntryList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2021 WoltLab GmbH * @license GNU Lesser General Public License * - * @method EmailLogEntry current() - * @method EmailLogEntry[] getObjects() - * @method EmailLogEntry|null getSingleObject() - * @method EmailLogEntry|null search($objectID) - * @property EmailLogEntry[] $objects + * @extends DatabaseObjectList */ class EmailLogEntryList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/event/listener/EventListenerAction.class.php b/wcfsetup/install/files/lib/data/event/listener/EventListenerAction.class.php index 7b8de8a61d8..97abd4dc8a1 100644 --- a/wcfsetup/install/files/lib/data/event/listener/EventListenerAction.class.php +++ b/wcfsetup/install/files/lib/data/event/listener/EventListenerAction.class.php @@ -11,9 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method EventListener create() - * @method EventListenerEditor[] getObjects() - * @method EventListenerEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class EventListenerAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/event/listener/EventListenerEditor.class.php b/wcfsetup/install/files/lib/data/event/listener/EventListenerEditor.class.php index 7e416a9ce05..996075d264b 100644 --- a/wcfsetup/install/files/lib/data/event/listener/EventListenerEditor.class.php +++ b/wcfsetup/install/files/lib/data/event/listener/EventListenerEditor.class.php @@ -13,9 +13,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static EventListener create(array $parameters = []) - * @method EventListener getDecoratedObject() * @mixin EventListener + * @extends DatabaseObjectEditor + * @implements IEditableCachedObject */ class EventListenerEditor extends DatabaseObjectEditor implements IEditableCachedObject { diff --git a/wcfsetup/install/files/lib/data/event/listener/EventListenerList.class.php b/wcfsetup/install/files/lib/data/event/listener/EventListenerList.class.php index a49db59002b..e6bd48d1ef4 100644 --- a/wcfsetup/install/files/lib/data/event/listener/EventListenerList.class.php +++ b/wcfsetup/install/files/lib/data/event/listener/EventListenerList.class.php @@ -11,11 +11,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method EventListener current() - * @method EventListener[] getObjects() - * @method EventListener|null getSingleObject() - * @method EventListener|null search($objectID) - * @property EventListener[] $objects + * @extends DatabaseObjectList */ class EventListenerList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/file/File.class.php b/wcfsetup/install/files/lib/data/file/File.class.php index 3087422e875..b72e116f27c 100644 --- a/wcfsetup/install/files/lib/data/file/File.class.php +++ b/wcfsetup/install/files/lib/data/file/File.class.php @@ -189,6 +189,9 @@ public function getThumbnails(): array return $this->thumbnails; } + /** + * @param ?mixed[] $metaData + */ public function toHtmlElement(?array $metaData = null): string { $thumbnails = []; diff --git a/wcfsetup/install/files/lib/data/file/FileAction.class.php b/wcfsetup/install/files/lib/data/file/FileAction.class.php index 001bcb064a1..7fca3e2c933 100644 --- a/wcfsetup/install/files/lib/data/file/FileAction.class.php +++ b/wcfsetup/install/files/lib/data/file/FileAction.class.php @@ -10,9 +10,7 @@ * @copyright 2001-2023 WoltLab GmbH * @license GNU Lesser General Public License * - * @method File create() - * @method FileEditor[] getObjects() - * @method FileEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class FileAction extends AbstractDatabaseObjectAction { @@ -26,7 +24,12 @@ public function delete() } if ($this->objects !== []) { - FileProcessor::getInstance()->delete($this->objects); + FileProcessor::getInstance()->delete( + \array_map( + static fn(FileEditor $editor) => $editor->getDecoratedObject(), + $this->objects + ) + ); } return parent::delete(); diff --git a/wcfsetup/install/files/lib/data/file/FileEditor.class.php b/wcfsetup/install/files/lib/data/file/FileEditor.class.php index 5ae0dde3472..d7cd358fb32 100644 --- a/wcfsetup/install/files/lib/data/file/FileEditor.class.php +++ b/wcfsetup/install/files/lib/data/file/FileEditor.class.php @@ -16,9 +16,8 @@ * @license GNU Lesser General Public License * @since 6.1 * - * @method static File create(array $parameters = []) - * @method File getDecoratedObject() * @mixin File + * @extends DatabaseObjectEditor */ class FileEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/file/FileList.class.php b/wcfsetup/install/files/lib/data/file/FileList.class.php index 22b16c0a776..df756fbad9b 100644 --- a/wcfsetup/install/files/lib/data/file/FileList.class.php +++ b/wcfsetup/install/files/lib/data/file/FileList.class.php @@ -10,11 +10,7 @@ * @copyright 2001-2023 WoltLab GmbH * @license GNU Lesser General Public License * - * @method File current() - * @method File[] getObjects() - * @method File|null getSingleObject() - * @method File|null search($objectID) - * @property File[] $objects + * @extends DatabaseObjectList */ class FileList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/file/temporary/FileTemporary.class.php b/wcfsetup/install/files/lib/data/file/temporary/FileTemporary.class.php index bd0fc030fca..35161f33829 100644 --- a/wcfsetup/install/files/lib/data/file/temporary/FileTemporary.class.php +++ b/wcfsetup/install/files/lib/data/file/temporary/FileTemporary.class.php @@ -74,6 +74,9 @@ public function getPathname(): string return $this->getPath() . $this->getFilename(); } + /** + * @return mixed[] + */ public function getContext(): array { return JSON::decode($this->context); diff --git a/wcfsetup/install/files/lib/data/file/temporary/FileTemporaryAction.class.php b/wcfsetup/install/files/lib/data/file/temporary/FileTemporaryAction.class.php index 8fbb72adb6a..f7d47c3d5e1 100644 --- a/wcfsetup/install/files/lib/data/file/temporary/FileTemporaryAction.class.php +++ b/wcfsetup/install/files/lib/data/file/temporary/FileTemporaryAction.class.php @@ -10,9 +10,7 @@ * @license GNU Lesser General Public License * @since 6.1 * - * @method FileTemporary create() - * @method FileTemporaryEditor[] getObjects() - * @method FileTemporaryEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class FileTemporaryAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/file/temporary/FileTemporaryEditor.class.php b/wcfsetup/install/files/lib/data/file/temporary/FileTemporaryEditor.class.php index 7148784ee5b..3ce0b8a3566 100644 --- a/wcfsetup/install/files/lib/data/file/temporary/FileTemporaryEditor.class.php +++ b/wcfsetup/install/files/lib/data/file/temporary/FileTemporaryEditor.class.php @@ -10,9 +10,8 @@ * @license GNU Lesser General Public License * @since 6.1 * - * @method static FileTemporary create(array $parameters = []) - * @method FileTemporary getDecoratedObject() * @mixin FileTemporary + * @extends DatabaseObjectEditor */ class FileTemporaryEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/file/temporary/FileTemporaryList.class.php b/wcfsetup/install/files/lib/data/file/temporary/FileTemporaryList.class.php index fe6c3a835c7..46a3d9d4031 100644 --- a/wcfsetup/install/files/lib/data/file/temporary/FileTemporaryList.class.php +++ b/wcfsetup/install/files/lib/data/file/temporary/FileTemporaryList.class.php @@ -10,11 +10,7 @@ * @license GNU Lesser General Public License * @since 6.1 * - * @method FileTemporary current() - * @method FileTemporary[] getObjects() - * @method FileTemporary|null getSingleObject() - * @method FileTemporary|null search($objectID) - * @property FileTemporary[] $objects + * @extends DatabaseObjectList */ class FileTemporaryList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/file/thumbnail/FileThumbnailAction.class.php b/wcfsetup/install/files/lib/data/file/thumbnail/FileThumbnailAction.class.php index f502b2e746d..19573512c19 100644 --- a/wcfsetup/install/files/lib/data/file/thumbnail/FileThumbnailAction.class.php +++ b/wcfsetup/install/files/lib/data/file/thumbnail/FileThumbnailAction.class.php @@ -10,9 +10,7 @@ * @license GNU Lesser General Public License * @since 6.1 * - * @method FileThumbnail create() - * @method FileThumbnailEditor[] getObjects() - * @method FileThumbnailEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class FileThumbnailAction extends AbstractDatabaseObjectAction { diff --git a/wcfsetup/install/files/lib/data/file/thumbnail/FileThumbnailEditor.class.php b/wcfsetup/install/files/lib/data/file/thumbnail/FileThumbnailEditor.class.php index c94b5b6caf3..187c1575755 100644 --- a/wcfsetup/install/files/lib/data/file/thumbnail/FileThumbnailEditor.class.php +++ b/wcfsetup/install/files/lib/data/file/thumbnail/FileThumbnailEditor.class.php @@ -12,9 +12,8 @@ * @license GNU Lesser General Public License * @since 6.1 * - * @method static FileThumbnail create(array $parameters = []) - * @method FileThumbnail getDecoratedObject() * @mixin FileThumbnail + * @extends DatabaseObjectEditor */ class FileThumbnailEditor extends DatabaseObjectEditor { diff --git a/wcfsetup/install/files/lib/data/file/thumbnail/FileThumbnailList.class.php b/wcfsetup/install/files/lib/data/file/thumbnail/FileThumbnailList.class.php index 05813ea3535..0c407a920a7 100644 --- a/wcfsetup/install/files/lib/data/file/thumbnail/FileThumbnailList.class.php +++ b/wcfsetup/install/files/lib/data/file/thumbnail/FileThumbnailList.class.php @@ -10,11 +10,7 @@ * @license GNU Lesser General Public License * @since 6.1 * - * @method FileThumbnail current() - * @method FileThumbnail[] getObjects() - * @method FileThumbnail|null getSingleObject() - * @method FileThumbnail|null search($objectID) - * @property FileThumbnail[] $objects + * @extends DatabaseObjectList */ class FileThumbnailList extends DatabaseObjectList { diff --git a/wcfsetup/install/files/lib/data/label/LabelAction.class.php b/wcfsetup/install/files/lib/data/label/LabelAction.class.php index 3460a4ab504..c635cf23ef8 100644 --- a/wcfsetup/install/files/lib/data/label/LabelAction.class.php +++ b/wcfsetup/install/files/lib/data/label/LabelAction.class.php @@ -16,8 +16,7 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method LabelEditor[] getObjects() - * @method LabelEditor getSingleObject() + * @extends AbstractDatabaseObjectAction */ class LabelAction extends AbstractDatabaseObjectAction implements ISortableAction { @@ -165,6 +164,9 @@ public function updatePosition() WCF::getDB()->commitTransaction(); } + /** + * @return array + */ #[\Override] public function getI18nSaveTypes(): array { diff --git a/wcfsetup/install/files/lib/data/label/LabelEditor.class.php b/wcfsetup/install/files/lib/data/label/LabelEditor.class.php index a656591e9f1..17eb8cf50fb 100644 --- a/wcfsetup/install/files/lib/data/label/LabelEditor.class.php +++ b/wcfsetup/install/files/lib/data/label/LabelEditor.class.php @@ -14,9 +14,9 @@ * @copyright 2001-2019 WoltLab GmbH * @license GNU Lesser General Public License * - * @method static Label create(array $parameters = []) - * @method Label getDecoratedObject() * @mixin Label + * @extends DatabaseObjectEditor