diff options
author | Julius Härtl <jus@bitgrid.net> | 2024-04-29 08:27:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-29 08:27:07 +0200 |
commit | 2c059dd606f923e5fd689815a09a263bed1c25fd (patch) | |
tree | 29338c9a2ba560a85a0daec240b0741d09009613 | |
parent | 26cd6a3a4a0b0c5385c6c23090cc23a884293130 (diff) | |
parent | f9e235f7f11bbe24faf51cf8716bde0ae6b88d15 (diff) | |
download | nextcloud-server-2c059dd606f923e5fd689815a09a263bed1c25fd.tar.gz nextcloud-server-2c059dd606f923e5fd689815a09a263bed1c25fd.zip |
Merge pull request #44952 from nextcloud/perf/44951/template-creator
perf(templates): Emit RegisterTemplateCreatorEvent to register template creators more lazy
-rw-r--r-- | lib/composer/composer/autoload_classmap.php | 1 | ||||
-rw-r--r-- | lib/composer/composer/autoload_static.php | 1 | ||||
-rw-r--r-- | lib/private/Files/Template/TemplateManager.php | 2 | ||||
-rw-r--r-- | lib/public/Files/Template/RegisterTemplateCreatorEvent.php | 46 |
4 files changed, 50 insertions, 0 deletions
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index 236fa775907..7baad0e5169 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -431,6 +431,7 @@ return array( 'OCP\\Files\\Template\\FileCreatedFromTemplateEvent' => $baseDir . '/lib/public/Files/Template/FileCreatedFromTemplateEvent.php', 'OCP\\Files\\Template\\ICustomTemplateProvider' => $baseDir . '/lib/public/Files/Template/ICustomTemplateProvider.php', 'OCP\\Files\\Template\\ITemplateManager' => $baseDir . '/lib/public/Files/Template/ITemplateManager.php', + 'OCP\\Files\\Template\\RegisterTemplateCreatorEvent' => $baseDir . '/lib/public/Files/Template/RegisterTemplateCreatorEvent.php', 'OCP\\Files\\Template\\Template' => $baseDir . '/lib/public/Files/Template/Template.php', 'OCP\\Files\\Template\\TemplateFileCreator' => $baseDir . '/lib/public/Files/Template/TemplateFileCreator.php', 'OCP\\Files\\UnseekableException' => $baseDir . '/lib/public/Files/UnseekableException.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index e6035fd13b2..d96a1b2d1b5 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -464,6 +464,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2 'OCP\\Files\\Template\\FileCreatedFromTemplateEvent' => __DIR__ . '/../../..' . '/lib/public/Files/Template/FileCreatedFromTemplateEvent.php', 'OCP\\Files\\Template\\ICustomTemplateProvider' => __DIR__ . '/../../..' . '/lib/public/Files/Template/ICustomTemplateProvider.php', 'OCP\\Files\\Template\\ITemplateManager' => __DIR__ . '/../../..' . '/lib/public/Files/Template/ITemplateManager.php', + 'OCP\\Files\\Template\\RegisterTemplateCreatorEvent' => __DIR__ . '/../../..' . '/lib/public/Files/Template/RegisterTemplateCreatorEvent.php', 'OCP\\Files\\Template\\Template' => __DIR__ . '/../../..' . '/lib/public/Files/Template/Template.php', 'OCP\\Files\\Template\\TemplateFileCreator' => __DIR__ . '/../../..' . '/lib/public/Files/Template/TemplateFileCreator.php', 'OCP\\Files\\UnseekableException' => __DIR__ . '/../../..' . '/lib/public/Files/UnseekableException.php', diff --git a/lib/private/Files/Template/TemplateManager.php b/lib/private/Files/Template/TemplateManager.php index 3f3c36de5f1..62e6dbda13f 100644 --- a/lib/private/Files/Template/TemplateManager.php +++ b/lib/private/Files/Template/TemplateManager.php @@ -40,6 +40,7 @@ use OCP\Files\NotFoundException; use OCP\Files\Template\FileCreatedFromTemplateEvent; use OCP\Files\Template\ICustomTemplateProvider; use OCP\Files\Template\ITemplateManager; +use OCP\Files\Template\RegisterTemplateCreatorEvent; use OCP\Files\Template\Template; use OCP\Files\Template\TemplateFileCreator; use OCP\IConfig; @@ -119,6 +120,7 @@ class TemplateManager implements ITemplateManager { if (!empty($this->types)) { return $this->types; } + $this->eventDispatcher->dispatchTyped(new RegisterTemplateCreatorEvent($this)); foreach ($this->registeredTypes as $registeredType) { $this->types[] = $registeredType(); } diff --git a/lib/public/Files/Template/RegisterTemplateCreatorEvent.php b/lib/public/Files/Template/RegisterTemplateCreatorEvent.php new file mode 100644 index 00000000000..21a6b45d474 --- /dev/null +++ b/lib/public/Files/Template/RegisterTemplateCreatorEvent.php @@ -0,0 +1,46 @@ +<?php +/** + * @copyright Copyright (c) 2024 Julius Härtl <jus@bitgrid.net> + * + * @author Julius Härtl <jus@bitgrid.net> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +namespace OCP\Files\Template; + +use OCP\EventDispatcher\Event; + +/** + * @since 30.0.0 + */ +class RegisterTemplateCreatorEvent extends Event { + + /** + * @since 30.0.0 + */ + public function __construct( + private ITemplateManager $templateManager + ) { + } + + /** + * @since 30.0.0 + */ + public function getTemplateManager(): ITemplateManager { + return $this->templateManager; + } +} |