mirror of
https://github.com/espocrm/espocrm.git
synced 2026-06-28 15:06:06 +00:00
container changes
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
|
||||
namespace Espo\Core;
|
||||
|
||||
use Espo\Core\InjectableFactory;
|
||||
use Espo\Entities\User;
|
||||
|
||||
/**
|
||||
@@ -156,12 +157,14 @@ class Container
|
||||
return $this->get('metadata')->get(['app', 'containerServices', $name, 'dependencyList']) ?? null;
|
||||
}
|
||||
|
||||
protected function getServiceClassName(string $name, ?string $default = null)
|
||||
protected function getServiceClassName(string $name) : ?string
|
||||
{
|
||||
$metadata = $this->get('metadata');
|
||||
|
||||
$className = $metadata->get(['app', 'containerServices', $name, 'className']) ??
|
||||
$metadata->get(['app', 'serviceContainer', 'classNames', $name], $default);
|
||||
$className =
|
||||
$metadata->get(['app', 'containerServices', $name, 'className']) ??
|
||||
$metadata->get(['app', 'serviceContainer', 'classNames', $name]) ?? // deprecated
|
||||
null;
|
||||
|
||||
return $className;
|
||||
}
|
||||
@@ -282,7 +285,7 @@ class Container
|
||||
|
||||
protected function loadAclManager()
|
||||
{
|
||||
$className = $this->getServiceClassName('aclManager', '\\Espo\\Core\\AclManager');
|
||||
$className = $this->getServiceClassName('aclManager') ?? 'Espo\\Core\\AclManager';
|
||||
return new $className(
|
||||
$this->get('container')
|
||||
);
|
||||
@@ -295,7 +298,7 @@ class Container
|
||||
|
||||
protected function loadAcl()
|
||||
{
|
||||
$className = $this->getServiceClassName('acl', '\\Espo\\Core\\Acl');
|
||||
$className = $this->getServiceClassName('acl') ?? 'Espo\\Core\\Acl';
|
||||
return new $className(
|
||||
$this->get('aclManager'),
|
||||
$this->get('user')
|
||||
@@ -397,17 +400,9 @@ class Container
|
||||
);
|
||||
}
|
||||
|
||||
protected function loadThemeManager()
|
||||
{
|
||||
return new \Espo\Core\Utils\ThemeManager(
|
||||
$this->get('config'),
|
||||
$this->get('metadata')
|
||||
);
|
||||
}
|
||||
|
||||
protected function loadInjectableFactory()
|
||||
{
|
||||
return new \Espo\Core\InjectableFactory(
|
||||
return new InjectableFactory(
|
||||
$this
|
||||
);
|
||||
}
|
||||
|
||||
@@ -29,50 +29,52 @@
|
||||
|
||||
namespace Espo\Core\Portal;
|
||||
|
||||
use Espo\Entities\Portal as PortalEntity;
|
||||
|
||||
class Container extends \Espo\Core\Container
|
||||
{
|
||||
protected function getServiceClassName(string $name, ?string $default = null)
|
||||
protected function getServiceClassName(string $name) : ?string
|
||||
{
|
||||
return $this->get('metadata')->get(['app', 'portalContainerServices', $name, 'className']) ??
|
||||
parent::getServiceClassName($name, $default);
|
||||
}
|
||||
|
||||
protected function getServicePortalClassName(string $name, ?string $default = null)
|
||||
{
|
||||
$metadata = $this->get('metadata');
|
||||
return $metadata->get(['app', 'portalContainerServices', $name, 'className'], $default);
|
||||
return
|
||||
$this->get('metadata')->get(['app', 'portalContainerServices', $name, 'className']) ??
|
||||
parent::getServiceClassName($name) ??
|
||||
null;
|
||||
}
|
||||
|
||||
protected function getServiceDependencyList(string $name) : ?array
|
||||
{
|
||||
return $this->get('metadata')->get(['app', 'portalContainerServices', $name, 'dependencyList']) ??
|
||||
return
|
||||
$this->get('metadata')->get(['app', 'portalContainerServices', $name, 'dependencyList']) ??
|
||||
parent::getServiceDependencyList($name);
|
||||
}
|
||||
|
||||
protected function getServiceMainClassName(string $name, ?string $default = null)
|
||||
protected function getServicePortalClassName(string $name) : ?string
|
||||
{
|
||||
return parent::getServiceClassName($name, $default);
|
||||
return $this->get('metadata')->get(['app', 'portalContainerServices', $name, 'className']) ?? null;
|
||||
}
|
||||
|
||||
protected function getServiceMainClassName(string $name) : ?string
|
||||
{
|
||||
return parent::getServiceClassName($name);
|
||||
}
|
||||
|
||||
protected function loadAclManager()
|
||||
{
|
||||
$className = $this->getServicePortalClassName('aclManager', '\\Espo\\Core\\Portal\\AclManager');
|
||||
$mainClassName = $this->getServiceMainClassName('aclManager', '\\Espo\\Core\\AclManager');
|
||||
$className = $this->getServicePortalClassName('aclManager') ?? 'Espo\\Core\\Portal\\AclManager';
|
||||
$internalAclManager = $this->get('internalAclManager');
|
||||
|
||||
$obj = new $className(
|
||||
$aclManager = new $className(
|
||||
$this->get('container')
|
||||
);
|
||||
$objMain = new $mainClassName(
|
||||
$this->get('container')
|
||||
);
|
||||
$obj->setMainManager($objMain);
|
||||
|
||||
return $obj;
|
||||
$aclManager->setMainManager($internalAclManager);
|
||||
|
||||
return $aclManager;
|
||||
}
|
||||
|
||||
protected function loadInternalAclManager()
|
||||
{
|
||||
$className = $this->getServiceMainClassName('aclManager', '\\Espo\\Core\\AclManager');
|
||||
$className = $this->getServiceMainClassName('aclManager') ?? 'Espo\\Core\\AclManager';
|
||||
return new $className(
|
||||
$this->get('container')
|
||||
);
|
||||
@@ -80,22 +82,13 @@ class Container extends \Espo\Core\Container
|
||||
|
||||
protected function loadAcl()
|
||||
{
|
||||
$className = $this->getServicePortalClassName('acl', '\\Espo\\Core\\Portal\\Acl');
|
||||
$className = $this->getServicePortalClassName('acl') ?? 'Espo\\Core\\Portal\\Acl';
|
||||
return new $className(
|
||||
$this->get('aclManager'),
|
||||
$this->get('user')
|
||||
);
|
||||
}
|
||||
|
||||
protected function loadThemeManager()
|
||||
{
|
||||
return new \Espo\Core\Portal\Utils\ThemeManager(
|
||||
$this->get('config'),
|
||||
$this->get('metadata'),
|
||||
$this->get('portal')
|
||||
);
|
||||
}
|
||||
|
||||
protected function loadLanguage()
|
||||
{
|
||||
$language = new \Espo\Core\Portal\Utils\Language(
|
||||
@@ -108,7 +101,7 @@ class Container extends \Espo\Core\Container
|
||||
return $language;
|
||||
}
|
||||
|
||||
public function setPortal(\Espo\Entities\Portal $portal)
|
||||
public function setPortal(PortalEntity $portal)
|
||||
{
|
||||
$this->set('portal', $portal);
|
||||
|
||||
|
||||
@@ -29,12 +29,12 @@
|
||||
|
||||
namespace Espo\Core\Portal\Utils;
|
||||
|
||||
use \Espo\Entities\Portal;
|
||||
use Espo\Core\Utils\Config;
|
||||
use Espo\Core\Utils\Metadata;
|
||||
use Espo\Entities\Portal;
|
||||
use Espo\Core\Utils\ThemeManager as BaseThemeManager;
|
||||
|
||||
use \Espo\Core\Utils\Config;
|
||||
use \Espo\Core\Utils\Metadata;
|
||||
|
||||
class ThemeManager extends \Espo\Core\Utils\ThemeManager
|
||||
class ThemeManager extends BaseThemeManager
|
||||
{
|
||||
public function __construct(Config $config, Metadata $metadata, Portal $portal)
|
||||
{
|
||||
@@ -52,5 +52,3 @@ class ThemeManager extends \Espo\Core\Utils\ThemeManager
|
||||
return $theme;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -29,6 +29,10 @@
|
||||
|
||||
namespace Espo\Core\Utils;
|
||||
|
||||
use Espo\Core\Utils\File\Manager as FileManager;
|
||||
use Espo\Core\Utils\Metadata;
|
||||
use Espo\Entities\User;
|
||||
|
||||
class Layout
|
||||
{
|
||||
private $fileManager;
|
||||
@@ -47,7 +51,7 @@ class Layout
|
||||
'customPath' => 'custom/Espo/Custom/Resources/layouts',
|
||||
];
|
||||
|
||||
public function __construct(\Espo\Core\Utils\File\Manager $fileManager, \Espo\Core\Utils\Metadata $metadata, \Espo\Entities\User $user)
|
||||
public function __construct(FileManager $fileManager, Metadata $metadata, User $user)
|
||||
{
|
||||
$this->fileManager = $fileManager;
|
||||
$this->metadata = $metadata;
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
{
|
||||
"notificatorFactory": {
|
||||
"className": "\\Espo\\Core\\NotificatorFactory"
|
||||
"className": "Espo\\Core\\NotificatorFactory"
|
||||
},
|
||||
"clientManager": {
|
||||
"className": "\\Espo\\Core\\Utils\\ClientManager",
|
||||
"dependencyList": ["config", "themeManager", "metadata"]
|
||||
"className": "Espo\\Core\\Utils\\ClientManager"
|
||||
},
|
||||
"layout": {
|
||||
"className": "\\Espo\\Core\\Utils\\Layout",
|
||||
"dependencyList": ["fileManager", "metadata", "user"]
|
||||
"className": "Espo\\Core\\Utils\\Layout"
|
||||
},
|
||||
"themeManager": {
|
||||
"className": "Espo\\Core\\Utils\\ThemeManager"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
"layout": {
|
||||
"className": "\\Espo\\Core\\Portal\\Utils\\Layout",
|
||||
"dependencyList": ["fileManager", "metadata", "user"]
|
||||
"className": "Espo\\Core\\Portal\\Utils\\Layout"
|
||||
},
|
||||
"themeManager": {
|
||||
"className": "Espo\\Core\\Portal\\Utils\\ThemeManager"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user