diff --git a/application/Espo/Core/Utils/Autoload/Loader.php b/application/Espo/Core/Utils/Autoload/Loader.php index 23aada6f0c..ef62eb8c19 100644 --- a/application/Espo/Core/Utils/Autoload/Loader.php +++ b/application/Espo/Core/Utils/Autoload/Loader.php @@ -33,9 +33,9 @@ use Espo\Core\Utils\File\Manager as FileManager; class Loader { - private $namespaceLoader; + private NamespaceLoader $namespaceLoader; - private $fileManager; + private FileManager $fileManager; public function __construct(NamespaceLoader $namespaceLoader, FileManager $fileManager) { @@ -43,6 +43,16 @@ class Loader $this->fileManager = $fileManager; } + /** + * + * @param array{ + * psr-4?: array, + * psr-0?: array, + * classmap?: array, + * autoloadFileList?: array, + * files?: array, + * } $data + */ public function register(array $data): void { /* load "psr-4", "psr-0", "classmap" */ @@ -55,6 +65,9 @@ class Loader $this->registerFiles($data); } + /** + * @param array $data + */ private function registerAutoloadFileList(array $data): void { $keyName = 'autoloadFileList'; @@ -70,6 +83,9 @@ class Loader } } + /** + * @param array $data + */ private function registerFiles(array $data): void { $keyName = 'files'; diff --git a/application/Espo/Core/Utils/Autoload/NamespaceLoader.php b/application/Espo/Core/Utils/Autoload/NamespaceLoader.php index c5ae81bcfc..f7bdcde641 100644 --- a/application/Espo/Core/Utils/Autoload/NamespaceLoader.php +++ b/application/Espo/Core/Utils/Autoload/NamespaceLoader.php @@ -43,34 +43,50 @@ use Throwable; class NamespaceLoader { - private $classLoader; + /** + * @var ?array{ + * psr-4?: array, + * psr-0?: array, + * classmap?: array, + * } + */ + private $namespaces = null; - private $namespaces; + /** + * @var ?array + */ + private $vendorNamespaces = null; - private $autoloadFilePath = 'vendor/autoload.php'; + private string $autoloadFilePath = 'vendor/autoload.php'; + /** + * @var array + */ private $namespacesPaths = [ 'psr-4' => 'vendor/composer/autoload_psr4.php', 'psr-0' => 'vendor/composer/autoload_namespaces.php', 'classmap' => 'vendor/composer/autoload_classmap.php', ]; + /** + * @var array + */ private $methodNameMap = [ 'psr-4' => 'addPsr4', 'psr-0' => 'add', ]; - private $vendorNamespaces; + private string $cacheKey = 'autoloadVendorNamespaces'; - private $cacheKey = 'autoloadVendorNamespaces'; + private ClassLoader $classLoader; - private $config; + private Config $config; - private $dataCache; + private DataCache $dataCache; - private $fileManager; + private FileManager $fileManager; - private $log; + private Log $log; public function __construct(Config $config, DataCache $dataCache, FileManager $fileManager, Log $log) { @@ -82,6 +98,12 @@ class NamespaceLoader $this->classLoader = new ClassLoader(); } + /** + * @param array{ + * psr-4?: array, + * psr-0?: array + * } $data + */ public function register(array $data): void { $this->addListToClassLoader($data); @@ -89,6 +111,13 @@ class NamespaceLoader $this->classLoader->register(true); } + /** + * @return array{ + * psr-4?: array, + * psr-0?: array, + * classmap?: array, + * } + */ private function loadNamespaces(string $basePath = ''): array { $namespaces = []; @@ -110,6 +139,14 @@ class NamespaceLoader return $namespaces; } + /** + * + * @return array{ + * psr-4?: array, + * psr-0?: array, + * classmap?: array, + * } + */ private function getNamespaces(): array { if (!$this->namespaces) { @@ -119,6 +156,9 @@ class NamespaceLoader return $this->namespaces; } + /** + * @return string[] + */ private function getNamespaceList(string $type): array { $namespaces = $this->getNamespaces(); @@ -126,6 +166,9 @@ class NamespaceLoader return array_keys($namespaces[$type]); } + /** + * @param string|array $path + */ private function addNamespace(string $type, string $name, $path): void { if (!$this->namespaces) { @@ -152,6 +195,9 @@ class NamespaceLoader return false; } + /** + * @param array $data + */ private function addListToClassLoader(array $data, bool $skipVendorNamespaces = false): void { foreach ($this->methodNameMap as $type => $methodName) { @@ -192,6 +238,9 @@ class NamespaceLoader } } + /** + * @return array + */ private function getVendorNamespaces(string $path): array { $useCache = $this->config->get('useCache'); diff --git a/application/Espo/Core/Utils/ClassFinder.php b/application/Espo/Core/Utils/ClassFinder.php index 585a68ab78..63afba31e7 100644 --- a/application/Espo/Core/Utils/ClassFinder.php +++ b/application/Espo/Core/Utils/ClassFinder.php @@ -38,8 +38,11 @@ use Espo\Core\Utils\File\ClassMap; */ class ClassFinder { - private $classMap; + private ClassMap $classMap; + /** + * @var array> + */ private $dataHashMap = []; public function __construct(ClassMap $classMap) diff --git a/application/Espo/Core/Utils/Client/ActionRenderer.php b/application/Espo/Core/Utils/Client/ActionRenderer.php index 0411229248..27a2aa3cf7 100644 --- a/application/Espo/Core/Utils/Client/ActionRenderer.php +++ b/application/Espo/Core/Utils/Client/ActionRenderer.php @@ -44,6 +44,9 @@ class ActionRenderer $this->clientManager = $clientManager; } + /** + * @param ?array $data + */ public function render(string $controller, string $action, ?array $data = null): string { $encodedData = Json::encode($data); diff --git a/application/Espo/Core/Utils/Client/DevModeJsFileListProvider.php b/application/Espo/Core/Utils/Client/DevModeJsFileListProvider.php index 7a7a5fa0eb..1fda83d412 100644 --- a/application/Espo/Core/Utils/Client/DevModeJsFileListProvider.php +++ b/application/Espo/Core/Utils/Client/DevModeJsFileListProvider.php @@ -29,16 +29,14 @@ namespace Espo\Core\Utils\Client; -use Espo\Core\{ - Utils\File\Manager as FileManager, -}; +use Espo\Core\Utils\File\Manager as FileManager; /** * @internal Also used by the installer w/o DI. */ class DevModeJsFileListProvider { - private $fileManager; + private FileManager $fileManager; private const LIBS_FILE = 'frontend/libs.json'; @@ -78,6 +76,10 @@ class DevModeJsFileListProvider return $list; } + /** + * @param \stdClass[] $items + * @return string[] + */ private function getLibFileListFromItems(array $items): array { $list = []; diff --git a/application/Espo/Core/Utils/ClientManager.php b/application/Espo/Core/Utils/ClientManager.php index 90e89395ef..b5492bc394 100644 --- a/application/Espo/Core/Utils/ClientManager.php +++ b/application/Espo/Core/Utils/ClientManager.php @@ -41,25 +41,25 @@ use Espo\Core\{ */ class ClientManager { - protected $mainHtmlFilePath = 'html/main.html'; + protected string $mainHtmlFilePath = 'html/main.html'; - protected $runScript = "app.start();"; + protected string $runScript = "app.start();"; - private $basePath = ''; + private string $basePath = ''; - private $libsConfigPath = 'client/cfg/libs.json'; + private string $libsConfigPath = 'client/cfg/libs.json'; - private $themeManager; + private Config $config; - private $config; + private ThemeManager $themeManager; - private $metadata; + private Metadata $metadata; - private $fileManager; + private FileManager $fileManager; - private $devModeJsFileListProvider; + private DevModeJsFileListProvider $devModeJsFileListProvider; - private $module; + private Module $module; private const APP_DESCRIPTION = "EspoCRM - Open Source CRM application."; @@ -98,11 +98,17 @@ class ClientManager return $this->config->get('cacheTimestamp', 0); } + /** + * @param array $vars + */ public function display(?string $runScript = null, ?string $htmlFilePath = null, array $vars = []): void { echo $this->render($runScript, $htmlFilePath, $vars); } + /** + * @param array $vars + */ public function render(?string $runScript = null, ?string $htmlFilePath = null, array $vars = []): string { if (is_null($runScript)) {