Skip to content

Commit

Permalink
🧹 migrate latest performance optimisation (#172)
Browse files Browse the repository at this point in the history
migrate latest performance optimisation from fond-of-spryker package
  • Loading branch information
julianzimmermann authored Dec 14, 2023
1 parent b65b8d1 commit a553f05
Show file tree
Hide file tree
Showing 37 changed files with 1,232 additions and 820 deletions.
8 changes: 8 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,11 @@ codeception:

.PHONY: ci
ci: phpcs codeception phpstan

.PHONY: clean
clean:
rm -Rf composer.lock
rm -Rf ./vendor
find ./tests/_output/ -not -name .gitignore -delete
rm -Rf src/Generated/*
rm -Rf src/Orm/*
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<transfers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="spryker:transfer-01"
xsi:schemaLocation="spryker:transfer-01 http://static.spryker.com/transfer-01.xsd">
xsi:schemaLocation="spryker:transfer-01 https://static.spryker.com/transfer-01.xsd">
<transfer name="EventEntity">
<property name="name" type="string"/>
<property name="id" type="int"/>
Expand Down Expand Up @@ -32,4 +32,17 @@
<property name="idCustomer" type="int"/>
<property name="idCompany" type="int"/>
</transfer>

<transfer name="SyncableCompanyRole">
<property name="ids" type="int[]"/>
<property name="name" type="string"/>
<property name="companyType" type="string"/>
<property name="permissions" type="PermissionCollection" />
</transfer>

<transfer name="PermissionSet">
<property name="entries" type="PermissionCollection" />
<property name="companyType" type="string"/>
<property name="companyRoleName" type="string"/>
</transfer>
</transfers>

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,26 @@

namespace FondOfImpala\Zed\CompanyTypeRole\Business;

use FondOfImpala\Zed\CompanyTypeRole\Business\Builder\CompanyRoleCriteriaFilterBuilder;
use FondOfImpala\Zed\CompanyTypeRole\Business\Builder\CompanyRoleCriteriaFilterBuilderInterface;
use FondOfImpala\Zed\CompanyTypeRole\Business\CompanyTypeRoleExportValidator\CompanyTypeRoleExportValidator;
use FondOfImpala\Zed\CompanyTypeRole\Business\CompanyTypeRoleExportValidator\CompanyTypeRoleExportValidatorInterface;
use FondOfImpala\Zed\CompanyTypeRole\Business\Filter\CompanyTypeNameFilter;
use FondOfImpala\Zed\CompanyTypeRole\Business\Filter\CompanyTypeNameFilterInterface;
use FondOfImpala\Zed\CompanyTypeRole\Business\Generator\AssignPermissionKeyGenerator;
use FondOfImpala\Zed\CompanyTypeRole\Business\Generator\AssignPermissionKeyGeneratorInterface;
use FondOfImpala\Zed\CompanyTypeRole\Business\Intersection\PermissionIntersection;
use FondOfImpala\Zed\CompanyTypeRole\Business\Intersection\PermissionIntersectionInterface;
use FondOfImpala\Zed\CompanyTypeRole\Business\Mapper\PermissionKeyMapper;
use FondOfImpala\Zed\CompanyTypeRole\Business\Mapper\PermissionKeyMapperInterface;
use FondOfImpala\Zed\CompanyTypeRole\Business\Model\CompanyRoleAssigner;
use FondOfImpala\Zed\CompanyTypeRole\Business\Model\CompanyRoleAssignerInterface;
use FondOfImpala\Zed\CompanyTypeRole\Business\Model\PermissionReader;
use FondOfImpala\Zed\CompanyTypeRole\Business\Model\PermissionReaderInterface;
use FondOfImpala\Zed\CompanyTypeRole\Business\Reader\AssignableCompanyRoleReader;
use FondOfImpala\Zed\CompanyTypeRole\Business\Reader\AssignableCompanyRoleReaderInterface;
use FondOfImpala\Zed\CompanyTypeRole\Business\Reader\CompanyRoleReader;
use FondOfImpala\Zed\CompanyTypeRole\Business\Reader\CompanyRoleReaderInterface;
use FondOfImpala\Zed\CompanyTypeRole\Business\Reader\CompanyUserReader;
use FondOfImpala\Zed\CompanyTypeRole\Business\Reader\CompanyUserReaderInterface;
use FondOfImpala\Zed\CompanyTypeRole\Business\Reader\PermissionReader as NewPermissionReader;
use FondOfImpala\Zed\CompanyTypeRole\Business\Reader\PermissionReaderInterface as NewPermissionReaderInterface;
use FondOfImpala\Zed\CompanyTypeRole\Business\Synchronizer\CompanyRoleSynchronizer;
use FondOfImpala\Zed\CompanyTypeRole\Business\Synchronizer\CompanyRoleSynchronizerInterface;
use FondOfImpala\Zed\CompanyTypeRole\Business\Synchronizer\PermissionSynchronizer;
Expand Down Expand Up @@ -77,15 +79,43 @@ public function createCompanyTypeRoleExportValidator(): CompanyTypeRoleExportVal
public function createPermissionSynchronizer(): PermissionSynchronizerInterface
{
return new PermissionSynchronizer(
$this->createCompanyTypeNameFilter(),
$this->createPermissionIntersection(),
$this->createCompanyRoleCriteriaFilterBuilder(),
$this->createCompanyRoleReader(),
$this->getCompanyRoleFacade(),
$this->getPermissionFacade(),
);
}

/**
* @return \FondOfImpala\Zed\CompanyTypeRole\Business\Reader\CompanyRoleReaderInterface
*/
protected function createCompanyRoleReader(): CompanyRoleReaderInterface
{
return new CompanyRoleReader(
$this->createNewPermissionReader(),
$this->createPermissionKeyMapper(),
$this->getRepository(),
);
}

/**
* @return \FondOfImpala\Zed\CompanyTypeRole\Business\Reader\PermissionReaderInterface
*/
protected function createNewPermissionReader(): NewPermissionReaderInterface
{
return new NewPermissionReader(
$this->createPermissionIntersection(),
$this->getConfig(),
$this->getPermissionFacade(),
);
}

/**
* @return \FondOfImpala\Zed\CompanyTypeRole\Business\Mapper\PermissionKeyMapperInterface
*/
protected function createPermissionKeyMapper(): PermissionKeyMapperInterface
{
return new PermissionKeyMapper();
}

/**
* @return \FondOfImpala\Zed\CompanyTypeRole\Business\Synchronizer\CompanyRoleSynchronizerInterface
*/
Expand Down Expand Up @@ -131,14 +161,6 @@ protected function createCompanyUserReader(): CompanyUserReaderInterface
);
}

/**
* @return \FondOfImpala\Zed\CompanyTypeRole\Business\Filter\CompanyTypeNameFilterInterface
*/
protected function createCompanyTypeNameFilter(): CompanyTypeNameFilterInterface
{
return new CompanyTypeNameFilter($this->getCompanyTypeFacade());
}

/**
* @return \FondOfImpala\Zed\CompanyTypeRole\Business\Intersection\PermissionIntersectionInterface
*/
Expand All @@ -147,14 +169,6 @@ protected function createPermissionIntersection(): PermissionIntersectionInterfa
return new PermissionIntersection();
}

/**
* @return \FondOfImpala\Zed\CompanyTypeRole\Business\Builder\CompanyRoleCriteriaFilterBuilderInterface
*/
protected function createCompanyRoleCriteriaFilterBuilder(): CompanyRoleCriteriaFilterBuilderInterface
{
return new CompanyRoleCriteriaFilterBuilder();
}

/**
* @return \FondOfImpala\Zed\CompanyTypeRole\Dependency\Facade\CompanyTypeRoleToCompanyUserFacadeInterface
*/
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?php

namespace FondOfImpala\Zed\CompanyTypeRole\Business\Mapper;

use Generated\Shared\Transfer\PermissionCollectionTransfer;
use Generated\Shared\Transfer\PermissionTransfer;

class PermissionKeyMapper implements PermissionKeyMapperInterface
{
/**
* @param \Generated\Shared\Transfer\PermissionCollectionTransfer $permissionCollectionTransfer
*
* @return array<string>
*/
public function fromPermissionCollection(PermissionCollectionTransfer $permissionCollectionTransfer): array
{
$permissionKeys = [];

foreach ($permissionCollectionTransfer->getPermissions() as $permissionTransfer) {
$permissionKey = $this->fromPermission($permissionTransfer);

if ($permissionKey === null) {
continue;
}

$permissionKeys[] = $permissionKey;
}

return array_unique($permissionKeys);
}

/**
* @param \Generated\Shared\Transfer\PermissionTransfer $permissionTransfer
*
* @return string|null
*/
public function fromPermission(PermissionTransfer $permissionTransfer): ?string
{
return $permissionTransfer->getKey();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php

namespace FondOfImpala\Zed\CompanyTypeRole\Business\Mapper;

use Generated\Shared\Transfer\PermissionCollectionTransfer;
use Generated\Shared\Transfer\PermissionTransfer;

interface PermissionKeyMapperInterface
{
/**
* @param \Generated\Shared\Transfer\PermissionCollectionTransfer $permissionCollectionTransfer
*
* @return array<string>
*/
public function fromPermissionCollection(
PermissionCollectionTransfer $permissionCollectionTransfer
): array;

/**
* @param \Generated\Shared\Transfer\PermissionTransfer $permissionTransfer
*
* @return string|null
*/
public function fromPermission(PermissionTransfer $permissionTransfer): ?string;
}
Loading

0 comments on commit a553f05

Please sign in to comment.