mirror of
https://github.com/espocrm/espocrm.git
synced 2026-06-28 06:56:05 +00:00
type fixes
This commit is contained in:
@@ -91,7 +91,10 @@ class Container implements ContainerInterface
|
||||
|
||||
$this->bindingContainer = $bindingContainer;
|
||||
|
||||
$this->injectableFactory = $this->get('injectableFactory');
|
||||
/** @var InjectableFactory */
|
||||
$injectableFactory = $this->get('injectableFactory');
|
||||
|
||||
$this->injectableFactory = $injectableFactory;
|
||||
|
||||
$this->configuration = $this->injectableFactory->create($configurationClassName);
|
||||
}
|
||||
@@ -208,6 +211,7 @@ class Container implements ContainerInterface
|
||||
throw new RuntimeException("Loader method for service '{$name}' does not have a named return type.");
|
||||
}
|
||||
|
||||
/** @var class-string */
|
||||
$className = $returnType->getName();
|
||||
|
||||
$this->classCache[$name] = new ReflectionClass($className);
|
||||
|
||||
@@ -32,12 +32,12 @@ namespace Espo\Core\Container;
|
||||
interface Configuration
|
||||
{
|
||||
/**
|
||||
* @return ?class-string
|
||||
* @return ?class-string<Loader>
|
||||
*/
|
||||
public function getLoaderClassName(string $name): ?string;
|
||||
|
||||
/**
|
||||
* @return ?class-string
|
||||
* @return ?class-string<object>
|
||||
*/
|
||||
public function getServiceClassName(string $name): ?string;
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ namespace Espo\Core\Container;
|
||||
|
||||
use Espo\Core\Container;
|
||||
use Espo\Core\Container\ContainerConfiguration;
|
||||
use Espo\Core\Container\Container as ContainerInterface;
|
||||
|
||||
use Espo\Core\Binding\BindingContainer;
|
||||
use Espo\Core\Binding\BindingLoader;
|
||||
@@ -52,12 +53,12 @@ use Espo\Core\Loaders\Metadata as MetadataLoader;
|
||||
class ContainerBuilder
|
||||
{
|
||||
/**
|
||||
* @var class-string
|
||||
* @var class-string<\Espo\Core\Container\Container>
|
||||
*/
|
||||
private string $containerClassName = Container::class;
|
||||
|
||||
/**
|
||||
* @var class-string
|
||||
* @var class-string<\Espo\Core\Container\Configuration>
|
||||
*/
|
||||
private string $containerConfigurationClassName = ContainerConfiguration::class;
|
||||
|
||||
@@ -77,7 +78,7 @@ class ContainerBuilder
|
||||
private string $dataCacheClassName = DataCache::class;
|
||||
|
||||
/**
|
||||
* @var class-string
|
||||
* @var class-string<Module>
|
||||
*/
|
||||
private string $moduleClassName = Module::class;
|
||||
|
||||
@@ -89,7 +90,7 @@ class ContainerBuilder
|
||||
private $services = [];
|
||||
|
||||
/**
|
||||
* @var array<string,class-string>
|
||||
* @var array<string,class-string<\Espo\Core\Container\Loader>>
|
||||
*/
|
||||
protected $loaderClassNames = [
|
||||
'log' => LogLoader::class,
|
||||
@@ -117,7 +118,7 @@ class ContainerBuilder
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<string,class-string> $classNames
|
||||
* @param array<string,class-string<\Espo\Core\Container\Loader>> $classNames
|
||||
*/
|
||||
public function withLoaderClassNames(array $classNames): self
|
||||
{
|
||||
@@ -129,7 +130,7 @@ class ContainerBuilder
|
||||
}
|
||||
|
||||
/**
|
||||
* @param class-string $containerClassName
|
||||
* @param class-string<\Espo\Core\Container\Container> $containerClassName
|
||||
*/
|
||||
public function withContainerClassName(string $containerClassName): self
|
||||
{
|
||||
@@ -139,7 +140,7 @@ class ContainerBuilder
|
||||
}
|
||||
|
||||
/**
|
||||
* @param class-string $containerConfigurationClassName
|
||||
* @param class-string<\Espo\Core\Container\Configuration> $containerConfigurationClassName
|
||||
*/
|
||||
public function withContainerConfigurationClassName(string $containerConfigurationClassName): self
|
||||
{
|
||||
@@ -178,8 +179,9 @@ class ContainerBuilder
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function build(): Container
|
||||
public function build(): ContainerInterface
|
||||
{
|
||||
/** @var Config */
|
||||
$config = $this->services['config'] ?? (
|
||||
new $this->configClassName(
|
||||
new ConfigFileManager()
|
||||
@@ -198,6 +200,7 @@ class ContainerBuilder
|
||||
|
||||
$useCache = $config->get('useCache') ?? false;
|
||||
|
||||
/** @var Module */
|
||||
$module = $this->services['module'] ?? (
|
||||
new $this->moduleClassName($fileManager, $dataCache, $useCache)
|
||||
);
|
||||
|
||||
@@ -150,6 +150,7 @@ abstract class Base
|
||||
*/
|
||||
protected function getName(): string
|
||||
{
|
||||
/** @var string */
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
@@ -197,6 +198,7 @@ abstract class Base
|
||||
*/
|
||||
protected function getUser()
|
||||
{
|
||||
/** @var User */
|
||||
return $this->container->get('user');
|
||||
}
|
||||
|
||||
@@ -207,6 +209,7 @@ abstract class Base
|
||||
*/
|
||||
protected function getAcl()
|
||||
{
|
||||
/** @var Acl */
|
||||
return $this->container->get('acl');
|
||||
}
|
||||
|
||||
@@ -217,6 +220,7 @@ abstract class Base
|
||||
*/
|
||||
protected function getAclManager()
|
||||
{
|
||||
/** @var AclManager */
|
||||
return $this->container->get('aclManager');
|
||||
}
|
||||
|
||||
@@ -227,6 +231,7 @@ abstract class Base
|
||||
*/
|
||||
protected function getConfig()
|
||||
{
|
||||
/** @var Config */
|
||||
return $this->container->get('config');
|
||||
}
|
||||
|
||||
@@ -236,6 +241,7 @@ abstract class Base
|
||||
*/
|
||||
protected function getPreferences()
|
||||
{
|
||||
/** @var Preferences */
|
||||
return $this->container->get('preferences');
|
||||
}
|
||||
|
||||
@@ -246,6 +252,7 @@ abstract class Base
|
||||
*/
|
||||
protected function getMetadata()
|
||||
{
|
||||
/** @var Metadata */
|
||||
return $this->container->get('metadata');
|
||||
}
|
||||
|
||||
@@ -256,6 +263,7 @@ abstract class Base
|
||||
*/
|
||||
protected function getServiceFactory()
|
||||
{
|
||||
/** @var ServiceFactory */
|
||||
return $this->container->get('serviceFactory');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ namespace Espo\Core\Controllers;
|
||||
use Espo\Core\Exceptions\BadRequest;
|
||||
use Espo\Core\Api\Request;
|
||||
use Espo\Core\Select\SearchParams;
|
||||
use Espo\Core\Utils\Json;
|
||||
|
||||
use stdClass;
|
||||
|
||||
@@ -166,12 +167,15 @@ class Record extends RecordBase
|
||||
$where = $data->where ?? null;
|
||||
|
||||
if ($where !== null) {
|
||||
$where = json_decode(json_encode($where), true);
|
||||
$where = json_decode(Json::encode($where), true);
|
||||
}
|
||||
|
||||
$params = json_decode(json_encode(
|
||||
$data->searchParams ?? $data->selectData ?? (object) []
|
||||
), true);
|
||||
$params = json_decode(
|
||||
Json::encode(
|
||||
$data->searchParams ?? $data->selectData ?? (object) []
|
||||
),
|
||||
true
|
||||
);
|
||||
|
||||
if ($where !== null && !is_array($where)) {
|
||||
throw new BadRequest("Bad 'where.");
|
||||
|
||||
@@ -69,10 +69,11 @@ class WhereBuilderFactory
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ?class-string
|
||||
* @return ?class-string<WhereBuilder<\Espo\ORM\Entity>>
|
||||
*/
|
||||
private function getClassName(string $entityType): ?string
|
||||
{
|
||||
/** @var ?class-string<WhereBuilder<\Espo\ORM\Entity>> */
|
||||
return $this->metadata
|
||||
->get(['recordDefs', $entityType, 'duplicateWhereBuilderClassName']);
|
||||
}
|
||||
|
||||
@@ -61,11 +61,17 @@ class Application extends BaseApplication
|
||||
|
||||
protected function initContainer(): void
|
||||
{
|
||||
$this->container = (new ContainerBuilder())
|
||||
$container = (new ContainerBuilder())
|
||||
->withConfigClassName(Config::class)
|
||||
->withContainerClassName(PortalContainer::class)
|
||||
->withContainerConfigurationClassName(PortalContainerConfiguration::class)
|
||||
->build();
|
||||
|
||||
if (!$container instanceof PortalContainer) {
|
||||
throw new Error("Wrong container created.");
|
||||
}
|
||||
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
protected function initPortal(?string $portalId): void
|
||||
|
||||
Reference in New Issue
Block a user