This commit is contained in:
Yuri Kuznetsov
2023-04-22 21:08:18 +03:00
parent 4964056343
commit 07c2a2e49b
39 changed files with 94 additions and 235 deletions
@@ -31,6 +31,7 @@ namespace Espo\Core\ORM;
use Espo\Core\Utils\Config;
use Espo\ORM\DatabaseParams;
use RuntimeException;
class DatabaseParamsFactory
+5 -9
View File
@@ -45,18 +45,14 @@ use RuntimeException;
class EntityFactory implements EntityFactoryInterface
{
private ClassFinder $classFinder;
private Helper $helper;
private InjectableFactory $injectableFactory;
private ?EntityManager $entityManager = null;
private ?ValueAccessorFactory $valueAccessorFactory = null;
public function __construct(ClassFinder $classFinder, Helper $helper, InjectableFactory $injectableFactory)
{
$this->classFinder = $classFinder;
$this->helper = $helper;
$this->injectableFactory = $injectableFactory;
}
public function __construct(
private ClassFinder $classFinder,
private Helper $helper,
private InjectableFactory $injectableFactory
) {}
/**
* @return ?class-string<Entity>
+2 -6
View File
@@ -29,11 +29,7 @@
namespace Espo\Core\ORM;
use Espo\ORM\{
EntityManager as BaseEntityManager,
};
use Espo\ORM\EntityManager as BaseEntityManager;
class EntityManager extends BaseEntityManager
{
}
{}
+2 -7
View File
@@ -30,17 +30,12 @@
namespace Espo\Core\ORM;
use Espo\Core\Utils\Config;
use Espo\ORM\Entity;
class Helper
{
private $config;
public function __construct(Config $config)
{
$this->config = $config;
}
public function __construct(private Config $config)
{}
public function formatPersonName(Entity $entity, string $field): ?string
{
@@ -29,23 +29,16 @@
namespace Espo\Core\ORM;
use Espo\{
Core\Utils\Metadata\OrmMetadataData,
Core\Utils\Metadata,
ORM\MetadataDataProvider as MetadataDataProviderInterface,
};
use Espo\Core\Utils\Metadata;
use Espo\Core\Utils\Metadata\OrmMetadataData;
use Espo\ORM\MetadataDataProvider as MetadataDataProviderInterface;
class MetadataDataProvider implements MetadataDataProviderInterface
{
private $ormMetadataData;
private $metadata;
public function __construct(OrmMetadataData $ormMetadataData, Metadata $metadata)
{
$this->ormMetadataData = $ormMetadataData;
$this->metadata = $metadata;
}
public function __construct(
private OrmMetadataData $ormMetadataData,
private Metadata $metadata
) {}
public function get(): array
{
@@ -32,7 +32,6 @@ namespace Espo\Core\ORM\QueryComposer\Part;
use Espo\ORM\QueryComposer\Part\FunctionConverterFactory as FunctionConverterFactoryInterface;
use Espo\ORM\QueryComposer\Part\FunctionConverter;
use Espo\ORM\DatabaseParams;
use Espo\Core\Utils\Metadata;
use Espo\Core\InjectableFactory;
@@ -40,26 +39,14 @@ use LogicException;
class FunctionConverterFactory implements FunctionConverterFactoryInterface
{
/**
* @var array<string,FunctionConverter>
*/
/** @var array<string, FunctionConverter> */
private $hash = [];
private Metadata $metadata;
private DatabaseParams $databaseParams;
private InjectableFactory $injectableFactory;
public function __construct(
Metadata $metadata,
InjectableFactory $injectableFactory,
DatabaseParams $databaseParams
) {
$this->metadata = $metadata;
$this->injectableFactory = $injectableFactory;
$this->databaseParams = $databaseParams;
}
private Metadata $metadata,
private InjectableFactory $injectableFactory,
private DatabaseParams $databaseParams
) {}
public function create(string $name): FunctionConverter
{
@@ -69,9 +56,7 @@ class FunctionConverterFactory implements FunctionConverterFactoryInterface
throw new LogicException();
}
$converter = $this->injectableFactory->create($className);
return $converter;
return $this->injectableFactory->create($className);
}
public function isCreatable(string $name): bool
@@ -43,28 +43,14 @@ use RuntimeException;
class QueryComposerFactory implements \Espo\ORM\QueryComposer\QueryComposerFactory
{
private Metadata $metadata;
private InjectableFactory $injectableFactory;
private PDOProvider $pdoProvider;
private OrmMetadata $ormMetadata;
private EntityFactory $entityFactory;
private FunctionConverterFactory $functionConverterFactory;
public function __construct(
Metadata $metadata,
InjectableFactory $injectableFactory,
PDOProvider $pdoProvider,
OrmMetadata $ormMetadata,
EntityFactory $entityFactory,
FunctionConverterFactory $functionConverterFactory
) {
$this->metadata = $metadata;
$this->injectableFactory = $injectableFactory;
$this->pdoProvider = $pdoProvider;
$this->ormMetadata = $ormMetadata;
$this->entityFactory = $entityFactory;
$this->functionConverterFactory = $functionConverterFactory;
}
private Metadata $metadata,
private InjectableFactory $injectableFactory,
private PDOProvider $pdoProvider,
private OrmMetadata $ormMetadata,
private EntityFactory $entityFactory,
private FunctionConverterFactory $functionConverterFactory
) {}
public function create(string $platform): QueryComposer
{
@@ -31,15 +31,12 @@ namespace Espo\Core\ORM\Repositories;
use Espo\Core\ORM\EntityManager;
use Espo\Core\ORM\EntityFactory;
use Espo\Core\Interfaces\Injectable;
use Espo\Core\{
Utils\Metadata,
HookManager,
ApplicationState,
Utils\Id\RecordIdGenerator,
Utils\SystemUser};
use Espo\Core\ApplicationState;
use Espo\Core\HookManager;
use Espo\Core\Utils\Id\RecordIdGenerator;
use Espo\Core\Utils\Metadata;
use Espo\Core\Utils\SystemUser;
/**
* @deprecated As of v6.0. Not to be extended. Extend Espo\Core\Repositories\Database, or better
@@ -37,12 +37,8 @@ use Espo\Core\ORM\Repository\Option\SaveOption;
class HookMediator extends EmptyHookMediator
{
protected HookManager $hookManager;
public function __construct(HookManager $hookManager)
{
$this->hookManager = $hookManager;
}
public function __construct(protected HookManager $hookManager)
{}
/**
* @param ?array<string,mixed> $columnData
@@ -101,7 +97,7 @@ class HookMediator extends EmptyHookMediator
}
/**
* @param array<string,mixed> $options
* @param array<string, mixed> $options
*/
public function afterMassRelate(Entity $entity, string $relationName, Select $query, array $options): void
{
@@ -31,40 +31,31 @@ namespace Espo\Core\ORM;
use Espo\Core\Binding\BindingContainerBuilder;
use Espo\Core\Binding\ContextualBinder;
use Espo\Core\InjectableFactory;
use Espo\Core\Repositories\Database as DatabaseRepository;
use Espo\Core\Utils\ClassFinder;
use Espo\ORM\Entity as OrmEntity;
use Espo\ORM\EntityFactory as EntityFactoryInterface;
use Espo\ORM\Repository\Repository;
use Espo\ORM\Repository\RepositoryFactory as RepositoryFactoryInterface;
class RepositoryFactory implements RepositoryFactoryInterface
{
/** @var class-string<Repository<\Espo\ORM\Entity>> */
/** @var class-string<Repository<OrmEntity>> */
protected $defaultClassName = DatabaseRepository::class;
protected EntityFactoryInterface $entityFactory;
protected InjectableFactory $injectableFactory;
protected ClassFinder $classFinder;
public function __construct(
EntityFactoryInterface $entityFactory,
InjectableFactory $injectableFactory,
ClassFinder $classFinder
) {
$this->entityFactory = $entityFactory;
$this->injectableFactory = $injectableFactory;
$this->classFinder = $classFinder;
}
protected EntityFactoryInterface $entityFactory,
protected InjectableFactory $injectableFactory,
protected ClassFinder $classFinder
) {}
/**
* @return ?class-string<Repository<\Espo\ORM\Entity>>
* @return ?class-string<Repository<OrmEntity>>
*/
protected function getClassName(string $entityType): ?string
{
/** @var ?class-string<Repository<\Espo\ORM\Entity>> */
/** @var ?class-string<Repository<OrmEntity>> */
return $this->classFinder->find('Repositories', $entityType);
}
@@ -29,33 +29,21 @@
namespace Espo\Core\ORM;
use Espo\Core\{
Utils\Metadata,
InjectableFactory,
};
use Espo\ORM\{
Value\ValueFactoryFactory as ValueFactoryFactoryInteface,
Value\ValueFactory,
Metadata as OrmMetadata,
};
use Espo\Core\InjectableFactory;
use Espo\Core\Utils\Metadata;
use Espo\ORM\Metadata as OrmMetadata;
use Espo\ORM\Value\ValueFactory;
use Espo\ORM\Value\ValueFactoryFactory as ValueFactoryFactoryInteface;
use RuntimeException;
class ValueFactoryFactory implements ValueFactoryFactoryInteface
{
private Metadata $metadata;
private OrmMetadata $ormMetadata;
private InjectableFactory $injectableFactory;
public function __construct(Metadata $metadata, OrmMetadata $ormMetadata, InjectableFactory $injectableFactory)
{
$this->metadata = $metadata;
$this->ormMetadata = $ormMetadata;
$this->injectableFactory = $injectableFactory;
}
public function __construct(
private Metadata $metadata,
private OrmMetadata $ormMetadata,
private InjectableFactory $injectableFactory
) {}
public function isCreatable(string $entityType, string $field): bool
{
@@ -40,12 +40,8 @@ use Espo\Core\Utils\Metadata;
*/
class ConfigMetadataCheck implements RebuildAction
{
private Metadata $metadata;
public function __construct(Metadata $metadata)
{
$this->metadata = $metadata;
}
public function __construct(private Metadata $metadata)
{}
/**
* @throws Error
@@ -30,7 +30,6 @@
namespace Espo\Core\Rebuild\Actions;
use Espo\Core\Rebuild\RebuildAction;
use Espo\Core\Utils\Metadata;
use Espo\Entities\ScheduledJob;
use Espo\ORM\EntityManager;
@@ -40,14 +39,10 @@ use Espo\ORM\EntityManager;
*/
class ScheduledJobs implements RebuildAction
{
private Metadata $metadata;
private EntityManager $entityManager;
public function __construct(Metadata $metadata, EntityManager $entityManager)
{
$this->metadata = $metadata;
$this->entityManager = $entityManager;
}
public function __construct(
private Metadata $metadata,
private EntityManager $entityManager
) {}
public function process(): void
{
@@ -34,15 +34,10 @@ use Espo\Core\Utils\Metadata;
class RebuildActionProcessor
{
private InjectableFactory $injectableFactory;
private Metadata $metadata;
public function __construct(InjectableFactory $injectableFactory, Metadata $metadata)
{
$this->injectableFactory = $injectableFactory;
$this->metadata = $metadata;
}
public function __construct(
private InjectableFactory $injectableFactory,
private Metadata $metadata
) {}
public function process(): void
{
+4 -2
View File
@@ -47,8 +47,10 @@ class Collection
/**
* @param OrmCollection<TEntity> $collection
*/
public function __construct(private OrmCollection $collection, private ?int $total = null)
{}
public function __construct(
private OrmCollection $collection,
private ?int $total = null
) {}
/**
* Get a total number of records in DB (that matches applied search parameters).
@@ -44,12 +44,9 @@ class ServiceContainer
{
/** @var array<string, Service<Entity>> */
private $data = [];
private ServiceFactory $serviceFactory;
public function __construct(ServiceFactory $serviceFactory)
{
$this->serviceFactory = $serviceFactory;
}
public function __construct(private ServiceFactory $serviceFactory)
{}
/**
* Get a record service by an entity class name.
@@ -39,7 +39,7 @@ use Espo\ORM\Mapper\BaseMapper;
class CategoryTree extends Database
{
/**
* @param array<string,mixed> $options
* @param array<string, mixed> $options
* @return void
*/
protected function afterSave(Entity $entity, array $options = [])
@@ -34,11 +34,9 @@ use Espo\Core\Utils\SystemUser;
use Espo\ORM\BaseEntity;
use Espo\ORM\Entity;
use Espo\ORM\Repository\RDBRepository;
use Espo\Core\ORM\EntityFactory;
use Espo\Core\ORM\EntityManager;
use Espo\Core\ORM\Repository\HookMediator;
use Espo\Core\ApplicationState;
use Espo\Core\HookManager;
use Espo\Core\Utils\DateTime as DateTimeUtil;
@@ -33,7 +33,6 @@ use Espo\Core\ORM\Entity as CoreEntity;
use Espo\Modules\Crm\Entities\Meeting;
use Espo\Modules\Crm\Entities\Reminder;
use Espo\ORM\Entity;
use Espo\Core\Di;
use Espo\Core\Utils\DateTime as DateTimeUtil;
+5 -12
View File
@@ -33,6 +33,7 @@ use Espo\Core\Binding\Factory;
use Espo\Core\Utils\Config;
use Espo\Core\Utils\Metadata;
use Espo\Core\InjectableFactory;
use RuntimeException;
/**
@@ -40,19 +41,11 @@ use RuntimeException;
*/
class SenderFactory implements Factory
{
private Config $config;
private Metadata $metadata;
private InjectableFactory $injectableFactory;
public function __construct(
Config $config,
Metadata $metadata,
InjectableFactory $injectableFactory
) {
$this->config = $config;
$this->metadata = $metadata;
$this->injectableFactory = $injectableFactory;
}
private Config $config,
private Metadata $metadata,
private InjectableFactory $injectableFactory
) {}
public function create(): Sender
{
+2 -6
View File
@@ -37,12 +37,8 @@ use Espo\Entities\Sms as SmsEntity;
*/
class SmsFactory
{
private EntityManager $entityManager;
public function __construct(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
}
public function __construct(private EntityManager $entityManager)
{}
/**
* Create an SMS instance.
+4 -9
View File
@@ -35,15 +35,10 @@ use Espo\Core\Utils\Config;
class SmsSender
{
private $sender;
private $config;
public function __construct(Sender $sender, Config $config)
{
$this->sender = $sender;
$this->config = $config;
}
public function __construct(
private Sender $sender,
private Config $config
) {}
public function send(SmsEntity $sms): void
{
@@ -29,9 +29,6 @@
namespace Espo\Core\Templates\Controllers;
class Base extends \Espo\Core\Controllers\Record
{
}
@@ -29,9 +29,6 @@
namespace Espo\Core\Templates\Controllers;
class BasePlus extends \Espo\Core\Controllers\Record
{
}
@@ -29,9 +29,6 @@
namespace Espo\Core\Templates\Controllers;
class CategoryTree extends \Espo\Core\Controllers\RecordTree
{
}
@@ -31,5 +31,4 @@ namespace Espo\Core\Templates\Controllers;
class Company extends \Espo\Core\Controllers\Record
{
}
@@ -31,6 +31,4 @@ namespace Espo\Core\Templates\Controllers;
class Event extends \Espo\Core\Controllers\Record
{
}
@@ -29,9 +29,6 @@
namespace Espo\Core\Templates\Controllers;
class Person extends \Espo\Core\Controllers\Record
{
}
@@ -31,6 +31,4 @@ namespace Espo\Core\Templates\Entities;
class Base extends \Espo\Core\ORM\Entity
{
}
@@ -31,6 +31,4 @@ namespace Espo\Core\Templates\Entities;
class BasePlus extends \Espo\Core\ORM\Entity
{
}
@@ -31,6 +31,4 @@ namespace Espo\Core\Templates\Entities;
class CategoryTree extends \Espo\Core\Entities\CategoryTreeItem
{
}
@@ -29,9 +29,6 @@
namespace Espo\Core\Templates\Repositories;
class Base extends \Espo\Core\ORM\Repositories\RDB
{
}
@@ -29,9 +29,6 @@
namespace Espo\Core\Templates\Repositories;
class BasePlus extends \Espo\Core\ORM\Repositories\RDB
{
}
@@ -35,5 +35,4 @@ namespace Espo\Core\Templates\Repositories;
*/
class CategoryTree extends \Espo\Core\Repositories\CategoryTree
{
}
@@ -31,5 +31,4 @@ namespace Espo\Core\Templates\Repositories;
class Company extends \Espo\Core\ORM\Repositories\RDB
{
}
@@ -29,9 +29,6 @@
namespace Espo\Core\Templates\Repositories;
class Person extends \Espo\Core\ORM\Repositories\RDB
{
}
@@ -34,5 +34,4 @@ namespace Espo\Core\Templates\Services;
*/
class CategoryTree extends \Espo\Services\RecordTree
{
}
@@ -29,10 +29,12 @@
namespace Espo\Core\Templates\Services;
use Espo\Services\Record;
/**
* @extends \Espo\Services\Record<\Espo\Core\Templates\Entities\Event>
* @extends Record<\Espo\Core\Templates\Entities\Event>
*/
class Event extends \Espo\Services\Record
class Event extends Record
{
protected $validateRequiredSkipFieldList = [
'dateEnd'
@@ -29,10 +29,10 @@
namespace Espo\Core\Templates\Services;
/**
* @extends \Espo\Services\Record<\Espo\Core\Templates\Entities\Person>
*/
class Person extends \Espo\Services\Record
{
use Espo\Services\Record;
}
/**
* @extends Record<\Espo\Core\Templates\Entities\Person>
*/
class Person extends Record
{}