diff --git a/Classes/Command/AbstractCommand.php b/Classes/Command/AbstractCommand.php index 770fa35..1da4433 100644 --- a/Classes/Command/AbstractCommand.php +++ b/Classes/Command/AbstractCommand.php @@ -4,7 +4,8 @@ namespace IchHabRecht\Filefill\Command; -use Doctrine\DBAL\Connection; +use Doctrine\DBAL\ArrayParameterType; +use Doctrine\DBAL\ParameterType; use Symfony\Component\Console\Command\Command; use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -20,20 +21,20 @@ protected function getEnabledStorages(): array $rows = $queryBuilder->select('uid', 'name') ->from('sys_file_storage') ->where( - $expressionBuilder->orX( + $expressionBuilder->or( $expressionBuilder->eq( 'tx_filefill_enable', - $queryBuilder->createNamedParameter(1, \PDO::PARAM_INT) + $queryBuilder->createNamedParameter(1, ParameterType::INTEGER) ), $expressionBuilder->in( 'uid', - $queryBuilder->createNamedParameter($configuredStorages, Connection::PARAM_INT_ARRAY) + $queryBuilder->createNamedParameter($configuredStorages, ArrayParameterType::INTEGER) ) ) ) ->orderBy('uid') - ->execute() - ->fetchAll(); + ->executeQuery() + ->fetchAllAssociative(); return array_combine(array_map('intval', array_column($rows, 'uid')), $rows); } diff --git a/Classes/Command/DeleteCommand.php b/Classes/Command/DeleteCommand.php index 614ee68..ad9d7da 100644 --- a/Classes/Command/DeleteCommand.php +++ b/Classes/Command/DeleteCommand.php @@ -13,15 +13,9 @@ class DeleteCommand extends AbstractCommand { - /** - * @var FileRepository - */ - protected $fileRepository; + protected FileRepository $fileRepository; - /** - * @var LanguageService - */ - protected $languageService; + protected LanguageService $languageService; public function __construct(string $name = null, FileRepository $fileRepository = null, $languageService = null) { diff --git a/Classes/Command/ResetCommand.php b/Classes/Command/ResetCommand.php index 62349c2..d54ef9a 100644 --- a/Classes/Command/ResetCommand.php +++ b/Classes/Command/ResetCommand.php @@ -4,7 +4,9 @@ namespace IchHabRecht\Filefill\Command; +use Doctrine\DBAL\ArrayParameterType; use Doctrine\DBAL\Connection; +use Doctrine\DBAL\ParameterType; use IchHabRecht\Filefill\Repository\FileRepository; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; @@ -14,15 +16,9 @@ class ResetCommand extends AbstractCommand { - /** - * @var \TYPO3\CMS\Core\Database\Connection - */ - protected $connection; + protected Connection $connection; - /** - * @var FileRepository - */ - protected $fileRepository; + protected FileRepository $fileRepository; public function __construct(string $name = null, Connection $connection = null, FileRepository $fileRepository = null) { @@ -76,28 +72,28 @@ protected function execute(InputInterface $input, OutputInterface $output): int ->where( $expressionBuilder->in( 'f.storage', - $queryBuilder->createNamedParameter(array_keys($enabledStorages), Connection::PARAM_INT_ARRAY) + $queryBuilder->createNamedParameter(array_keys($enabledStorages), ArrayParameterType::INTEGER) ), $expressionBuilder->eq( 'f.missing', - $queryBuilder->createNamedParameter(1, \PDO::PARAM_INT) + $queryBuilder->createNamedParameter(1, ParameterType::INTEGER) ) ) ->groupBy('f.storage') ->orderBy('f.storage') - ->execute(); + ->executeQuery(); - while ($row = $statement->fetch()) { + while ($row = $statement->fetchAssociative()) { $updateQueryBuilder = $this->connection->createQueryBuilder(); $updateQueryBuilder->update('sys_file') ->where( $updateQueryBuilder->expr()->eq( 'storage', - $updateQueryBuilder->createNamedParameter($row['storage'], \PDO::PARAM_INT) + $updateQueryBuilder->createNamedParameter($row['storage'], ParameterType::INTEGER) ) ) - ->set('missing', 0, true, \PDO::PARAM_INT) - ->execute(); + ->set('missing', 0, true, ParameterType::INTEGER) + ->executeStatement(); $output->writeln(sprintf( 'Reset %d file(s) in storage "%s" (uid: %d)', $row['count'], diff --git a/Classes/Form/Element/ShowDeleteFiles.php b/Classes/Form/Element/ShowDeleteFiles.php index a44eedf..ffee4d5 100644 --- a/Classes/Form/Element/ShowDeleteFiles.php +++ b/Classes/Form/Element/ShowDeleteFiles.php @@ -19,48 +19,36 @@ use IchHabRecht\Filefill\Repository\FileRepository; use TYPO3\CMS\Backend\Form\Element\AbstractFormElement; -use TYPO3\CMS\Backend\Form\NodeFactory; -use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\CMS\Core\Imaging\IconFactory; +use TYPO3\CMS\Core\Imaging\IconSize; use TYPO3\CMS\Core\Localization\LanguageService; use TYPO3\CMS\Core\Utility\GeneralUtility; class ShowDeleteFiles extends AbstractFormElement { - /** - * @var FileRepository|null - */ - protected $fileRepository; - - /** - * @var LanguageService - */ - protected $languageService; - /** * Container objects give $nodeFactory down to other containers. * - * @param NodeFactory $nodeFactory - * @param array $data - * @param FileRepository|null $fileRepository - * @param LanguageService|null $languageService + * @param FileRepository $fileRepository + * @param LanguageService $languageService */ - public function __construct(NodeFactory $nodeFactory, array $data, FileRepository $fileRepository = null, $languageService = null) - { - parent::__construct($nodeFactory, $data); - $this->fileRepository = $fileRepository ?: GeneralUtility::makeInstance(FileRepository::class); - $this->languageService = $languageService ?: $GLOBALS['LANG']; + public function __construct( + protected readonly FileRepository $fileRepository, + protected readonly LanguageService $languageService + ) { } /** * @return array */ - public function render() + public function render(): array { $result = $this->initializeResultArray(); $rows = $this->fileRepository->countByIdentifier($this->data['vanillaUid']); + // TODO https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/13.0/Breaking-97330-FormEngineElementClassesMustCreateLabelOrLegend.html + $html = []; $html[] = '