From 9ad019b17bb952ff1e81b8814f2af7e104fcff3d Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Sat, 15 Jul 2023 23:02:49 +0200 Subject: [PATCH 1/9] start pimcore 11 support --- .github/workflows/codeception.yml | 12 +- .github/workflows/ecs.yml | 12 +- .github/workflows/php-stan.yml | 10 +- .gitignore | 8 +- README.md | 15 +- UPGRADE.md | 11 +- codeception.dist.yml | 9 +- composer.json | 12 +- src/JobsBundle/Connector/ConnectorService.php | 8 +- .../Connector/Facebook/FeedGenerator.php | 14 +- .../Connector/Google/FeedGenerator.php | 12 +- src/JobsBundle/Context/ContextService.php | 5 +- src/JobsBundle/Context/ResolvedItem.php | 13 +- .../Controller/Admin/LogController.php | 6 +- .../Controller/Admin/SettingsController.php | 27 +-- .../Controller/FacebookController.php | 9 +- .../Controller/ProviderController.php | 9 +- .../CoreExtension/JobConnectorContext.php | 169 +++++------------- .../DependencyInjection/JobsExtension.php | 4 +- .../EventListener/Admin/AssetListener.php | 38 ++++ .../Maintenance/CleanUpLogsTask.php | 11 +- src/JobsBundle/JobsBundle.php | 20 --- .../Manager/ConnectorContextManager.php | 17 +- src/JobsBundle/Manager/ConnectorManager.php | 17 +- .../Manager/ContextDefinitionManager.php | 9 +- src/JobsBundle/Manager/LogManager.php | 13 +- .../Normalizer/EntityNormalizer.php | 7 +- .../config/external/{seo.yml => seo.yaml} | 0 .../pimcore/{config.yml => config.yaml} | 0 .../pimcore/{routing.yml => routing.yaml} | 0 ...textItem.yml => ConnectorContextItem.yaml} | 0 ...nnectorEngine.yml => ConnectorEngine.yaml} | 0 ...tDefinition.yml => ContextDefinition.yaml} | 0 src/JobsBundle/Resources/config/services.yaml | 2 + src/JobsBundle/Resources/config/services.yml | 2 - ...finition.yml => connector_definition.yaml} | 0 .../services/{context.yml => context.yaml} | 0 .../{controller.yml => controller.yaml} | 0 .../services/{install.yml => install.yaml} | 0 .../{maintenance.yml => maintenance.yaml} | 0 .../services/{manager.yml => manager.yaml} | 0 .../services/{registry.yml => registry.yaml} | 0 .../{repository.yml => repository.yaml} | 0 .../services/{services.yml => services.yaml} | 10 +- .../coreExtension/tags/jobConnectorContext.js | 2 +- src/JobsBundle/Resources/public/js/plugin.js | 4 +- .../{admin.de.yml => admin.de.yaml} | 0 .../{admin.en.yml => admin.en.yaml} | 0 .../ResourceProcessor/GoogleJobsProcessor.php | 17 +- src/JobsBundle/Service/EnvironmentService.php | 10 +- src/JobsBundle/Tool/Install.php | 4 +- tests/Functional.suite.dist.yml | 14 ++ .../Admin/ObjectConnectorCest.php | 2 +- .../{functional => Functional}/_bootstrap.php | 0 tests/Support/FunctionalTester.php | 8 + tests/{_support => Support}/Helper/Jobs.php | 2 +- .../Services/TestConnectorDefinition.php | 2 +- .../Services/TestItemTransformer.php | 4 +- tests/Support/UnitTester.php | 8 + tests/Unit.suite.dist.yml | 8 + tests/{unit => Unit}/_bootstrap.php | 0 tests/_etc/config.yaml | 10 ++ tests/_etc/config.yml | 7 - .../config/app/{config.yml => config.yaml} | 0 .../config/app/{system.yml => system.yaml} | 6 - ...config_default.yml => config_default.yaml} | 6 +- tests/_support/FunctionalTester.php | 8 - tests/_support/UnitTester.php | 8 - tests/functional.suite.dist.yml | 14 -- tests/unit.suite.dist.yml | 8 - 70 files changed, 257 insertions(+), 406 deletions(-) create mode 100644 src/JobsBundle/EventListener/Admin/AssetListener.php rename src/JobsBundle/Resources/config/external/{seo.yml => seo.yaml} (100%) rename src/JobsBundle/Resources/config/pimcore/{config.yml => config.yaml} (100%) rename src/JobsBundle/Resources/config/pimcore/{routing.yml => routing.yaml} (100%) rename src/JobsBundle/Resources/config/serialization/{ConnectorContextItem.yml => ConnectorContextItem.yaml} (100%) rename src/JobsBundle/Resources/config/serialization/{ConnectorEngine.yml => ConnectorEngine.yaml} (100%) rename src/JobsBundle/Resources/config/serialization/{ContextDefinition.yml => ContextDefinition.yaml} (100%) create mode 100644 src/JobsBundle/Resources/config/services.yaml delete mode 100644 src/JobsBundle/Resources/config/services.yml rename src/JobsBundle/Resources/config/services/{connector_definition.yml => connector_definition.yaml} (100%) rename src/JobsBundle/Resources/config/services/{context.yml => context.yaml} (100%) rename src/JobsBundle/Resources/config/services/{controller.yml => controller.yaml} (100%) rename src/JobsBundle/Resources/config/services/{install.yml => install.yaml} (100%) rename src/JobsBundle/Resources/config/services/{maintenance.yml => maintenance.yaml} (100%) rename src/JobsBundle/Resources/config/services/{manager.yml => manager.yaml} (100%) rename src/JobsBundle/Resources/config/services/{registry.yml => registry.yaml} (100%) rename src/JobsBundle/Resources/config/services/{repository.yml => repository.yaml} (100%) rename src/JobsBundle/Resources/config/services/{services.yml => services.yaml} (75%) rename src/JobsBundle/Resources/translations/{admin.de.yml => admin.de.yaml} (100%) rename src/JobsBundle/Resources/translations/{admin.en.yml => admin.en.yaml} (100%) create mode 100644 tests/Functional.suite.dist.yml rename tests/{functional => Functional}/Admin/ObjectConnectorCest.php (98%) rename tests/{functional => Functional}/_bootstrap.php (100%) create mode 100644 tests/Support/FunctionalTester.php rename tests/{_support => Support}/Helper/Jobs.php (99%) rename tests/{_support => Support}/Services/TestConnectorDefinition.php (98%) rename tests/{_support => Support}/Services/TestItemTransformer.php (89%) create mode 100644 tests/Support/UnitTester.php create mode 100644 tests/Unit.suite.dist.yml rename tests/{unit => Unit}/_bootstrap.php (100%) create mode 100644 tests/_etc/config.yaml delete mode 100644 tests/_etc/config.yml rename tests/_etc/config/app/{config.yml => config.yaml} (100%) rename tests/_etc/config/app/{system.yml => system.yaml} (92%) rename tests/_etc/config/bundle/{config_default.yml => config_default.yaml} (52%) delete mode 100644 tests/_support/FunctionalTester.php delete mode 100644 tests/_support/UnitTester.php delete mode 100644 tests/functional.suite.dist.yml delete mode 100644 tests/unit.suite.dist.yml diff --git a/.github/workflows/codeception.yml b/.github/workflows/codeception.yml index f806d55..e78f7d6 100644 --- a/.github/workflows/codeception.yml +++ b/.github/workflows/codeception.yml @@ -15,7 +15,7 @@ jobs: TEST_PROJECT_ROOT_DIR: "${{ github.workspace }}" PIMCORE_CODECEPTION_FRAMEWORK: "${{ github.workspace }}/pimcore-codeception-framework" - PIMCORE_CODECEPTION_VERSION: "2.0" + PIMCORE_CODECEPTION_VERSION: "3.0" APP_ENV: test PIMCORE_TEST_DB_DSN: "mysql://test:test@127.0.0.1:3306/dachcom_bundle_test" @@ -38,12 +38,12 @@ jobs: options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 strategy: matrix: - php: [ 8.1 ] - symfony: [ ^5.4 ] - pimcore: [ ~10.6.0 ] + php: [ 8.2 ] + symfony: [ ^6.2 ] + pimcore: [ ~11.0.0 ] include: - - pimcore: ~10.6.0 - template_tag: v10.2.5 + - pimcore: ~11.0.0 + template_tag: v11.0.0 steps: - uses: actions/checkout@v2 with: diff --git a/.github/workflows/ecs.yml b/.github/workflows/ecs.yml index fb9a68d..c453731 100644 --- a/.github/workflows/ecs.yml +++ b/.github/workflows/ecs.yml @@ -15,7 +15,7 @@ jobs: TEST_PROJECT_ROOT_DIR: "${{ github.workspace }}" PIMCORE_CODECEPTION_FRAMEWORK: "${{ github.workspace }}/pimcore-codeception-framework" - PIMCORE_CODECEPTION_VERSION: "2.0" + PIMCORE_CODECEPTION_VERSION: "3.0" APP_ENV: test PIMCORE_TEST_DB_DSN: "mysql://root:root@127.0.0.1:3306/dachcom_bundle_test" @@ -37,12 +37,12 @@ jobs: options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 strategy: matrix: - php: [ 8.1 ] - symfony: [ ^5.4 ] - pimcore: [ ~10.6.0 ] + php: [ 8.2 ] + symfony: [ ^6.2 ] + pimcore: [ ~11.0.0 ] include: - - pimcore: ~10.6.0 - template_tag: v10.2.5 + - pimcore: ~11.0.0 + template_tag: v11.0.0 steps: - uses: actions/checkout@v2 with: diff --git a/.github/workflows/php-stan.yml b/.github/workflows/php-stan.yml index ac548a6..dac65a1 100644 --- a/.github/workflows/php-stan.yml +++ b/.github/workflows/php-stan.yml @@ -37,12 +37,12 @@ jobs: options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 strategy: matrix: - php: [ 8.1 ] - symfony: [ ^5.4 ] - pimcore: [ ~10.6.0 ] + php: [ 8.2 ] + symfony: [ ^6.2 ] + pimcore: [ ~11.0.0 ] include: - - pimcore: ~10.6.0 - template_tag: v10.2.5 + - pimcore: ~11.0.0 + template_tag: v11.0.0 steps: - uses: actions/checkout@v2 with: diff --git a/.gitignore b/.gitignore index 0139f99..2c2f297 100644 --- a/.gitignore +++ b/.gitignore @@ -45,10 +45,10 @@ Vagrantfile php-cgi.core .sass-cache -# codeception (only stage *.dist.yml config files) -/codeception.yml -/tests/codeception.yml -/tests/*.suite.yml +# codeception (only stage *.dist.yaml config files) +/codeception.yaml +/tests/codeception.yaml +/tests/*.suite.yaml /tests/_output/* /tests/_data/* !/tests/_data/.gitkeep diff --git a/README.md b/README.md index a6483b1..cabb7c7 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,8 @@ This Bundle allows you to synchronise your job offers with various connectors li | Release | Supported Pimcore Versions | Supported Symfony Versions | Release Date | Maintained | Branch | |---------|----------------------------|----------------------------|--------------|----------------|------------| -| **2.x** | `10.5`, `10.6` | `5.4` | -- | Feature Branch | dev-master | +| **3.x** | `11.0` | `6.2` | -- | Feature Branch | dev-master | +| **2.x** | `10.5`, `10.6` | `5.4` | 14.10.2021 | Bugfixes | 2.x | | **1.x** | `6.0` - `6.9` | `3.4`, `^4.4` | 27.04.2020 | Unsupported | 1.x | @@ -20,18 +21,24 @@ This Bundle allows you to synchronise your job offers with various connectors li ```json "require" : { - "dachcom-digital/jobs" : "~2.1.0", + "dachcom-digital/jobs" : "~3.0.0", } ``` -- Execute: `$ bin/console pimcore:bundle:enable JobsBundle` +Add Bundle to `bundles.php`: +```php +return [ + JobsBundle\JobsBundle::class => ['all' => true], +]; +``` + - Execute: `$ bin/console pimcore:bundle:install JobsBundle` ## Upgrading - Execute: `$ bin/console doctrine:migrations:migrate --prefix 'JobsBundle\Migrations'` ## Usage -This Bundle needs some preparation. Please checkout the [Setup](docs/00_Setup.md) guide first. +This Bundle needs some preparation. Please check out the [Setup](docs/00_Setup.md) guide first. ## Further Information - [Setup](docs/00_Setup.md) diff --git a/UPGRADE.md b/UPGRADE.md index 3dc32c0..2547d08 100644 --- a/UPGRADE.md +++ b/UPGRADE.md @@ -1,14 +1,9 @@ # Upgrade Notes -## 2.1.0 -- [FEATURE] Pimcore 10.5 support only - -## Migrating from Version 1.x to Version 2.0.0 +## Migrating from Version 2.x to Version 3.0.0 ### Global Changes -- PHP8 return type declarations added: you may have to adjust your extensions accordingly -- [FB Connector](./docs/Connectors/02_FacebookJobs.md): `facebookarchive/php-graph-sdk` has been removed, we're now using the `league/oauth2-facebook` package. - +TBD *** -JobsBundle 1.x Upgrade Notes: https://github.com/dachcom-digital/pimcore-jobs/blob/1.x/UPGRADE.md +JobsBundle 2.x Upgrade Notes: https://github.com/dachcom-digital/pimcore-jobs/blob/2.x/UPGRADE.md diff --git a/codeception.dist.yml b/codeception.dist.yml index 882426c..296aad2 100644 --- a/codeception.dist.yml +++ b/codeception.dist.yml @@ -1,14 +1,15 @@ namespace: DachcomBundle\Test +support_namespace: Support actor: Tester paths: tests: tests - output: tests/_output - data: tests/_data - support: tests/_support envs: tests/_envs + output: tests/_output log: tests/_output/var/logs + data: tests/_data + support: tests/Support +bootstrap: _bootstrap.php settings: - bootstrap: _bootstrap.php memory_limit: -1 colors: true params: diff --git a/composer.json b/composer.json index e465435..5e5e772 100755 --- a/composer.json +++ b/composer.json @@ -31,20 +31,20 @@ } }, "require": { - "pimcore/pimcore": "^10.5", + "pimcore/pimcore": "^11.0", "doctrine/orm": "^2.7" }, "require-dev": { - "codeception/codeception": "^4.1", - "codeception/module-webdriver": "^1.4", - "codeception/module-symfony": "^1.6", + "codeception/codeception": "^5.0", + "codeception/module-symfony": "^3.1", + "codeception/module-webdriver": "^4.0", "phpstan/phpstan": "^1.0", "phpstan/phpstan-symfony": "^1.0", "symplify/easy-coding-standard": "^9.0" }, "suggest": { "league/oauth2-facebook": "^2.0", - "dachcom-digital/schema": "^2.0", - "dachcom-digital/seo": "^2.0" + "dachcom-digital/schema": "^3.0", + "dachcom-digital/seo": "^3.0" } } diff --git a/src/JobsBundle/Connector/ConnectorService.php b/src/JobsBundle/Connector/ConnectorService.php index 8c27b60..6e7e872 100644 --- a/src/JobsBundle/Connector/ConnectorService.php +++ b/src/JobsBundle/Connector/ConnectorService.php @@ -10,16 +10,12 @@ class ConnectorService implements ConnectorServiceInterface { protected array $connectorCache = []; - protected ConnectorDefinitionRegistryInterface $connectorDefinitionRegistry; - protected ConnectorManagerInterface $connectorManager; public function __construct( - ConnectorDefinitionRegistryInterface $connectorDefinitionRegistry, - ConnectorManagerInterface $connectorManager + protected ConnectorDefinitionRegistryInterface $connectorDefinitionRegistry, + protected ConnectorManagerInterface $connectorManager ) { $this->connectorCache = []; - $this->connectorDefinitionRegistry = $connectorDefinitionRegistry; - $this->connectorManager = $connectorManager; } public function installConnector(string $connectorName): ConnectorEngineInterface diff --git a/src/JobsBundle/Connector/Facebook/FeedGenerator.php b/src/JobsBundle/Connector/Facebook/FeedGenerator.php index a310cfd..36cff60 100644 --- a/src/JobsBundle/Connector/Facebook/FeedGenerator.php +++ b/src/JobsBundle/Connector/Facebook/FeedGenerator.php @@ -10,15 +10,11 @@ class FeedGenerator implements FeedGeneratorInterface { - protected ItemTransformerInterface $itemTransformer; - protected array $items; - protected array $params; - - public function __construct(ItemTransformerInterface $itemTransformer, array $items, array $params) - { - $this->itemTransformer = $itemTransformer; - $this->items = $items; - $this->params = $params; + public function __construct( + protected ItemTransformerInterface $itemTransformer, + protected array $items, + protected array $params + ) { } public function generate(string $outputType): mixed diff --git a/src/JobsBundle/Connector/Google/FeedGenerator.php b/src/JobsBundle/Connector/Google/FeedGenerator.php index dbccde9..cdf2cde 100644 --- a/src/JobsBundle/Connector/Google/FeedGenerator.php +++ b/src/JobsBundle/Connector/Google/FeedGenerator.php @@ -8,15 +8,13 @@ class FeedGenerator implements FeedGeneratorInterface { - protected ItemTransformerInterface $itemTransformer; - protected array $items; - protected array $params; - public function __construct(ItemTransformerInterface $itemTransformer, array $items, array $params) + public function __construct( + protected ItemTransformerInterface $itemTransformer, + protected array $items, + protected array $params + ) { - $this->itemTransformer = $itemTransformer; - $this->items = $items; - $this->params = $params; } public function generate(string $outputType): mixed diff --git a/src/JobsBundle/Context/ContextService.php b/src/JobsBundle/Context/ContextService.php index 9fe6ff0..a5291fc 100644 --- a/src/JobsBundle/Context/ContextService.php +++ b/src/JobsBundle/Context/ContextService.php @@ -8,11 +8,8 @@ class ContextService implements ContextServiceInterface { - protected ContextItemsResolverRegistryInterface $contextItemsResolverRegistry; - - public function __construct(ContextItemsResolverRegistryInterface $contextItemsResolverRegistry) + public function __construct(protected ContextItemsResolverRegistryInterface $contextItemsResolverRegistry) { - $this->contextItemsResolverRegistry = $contextItemsResolverRegistry; } public function resolveContextItems(string $contextName, ConnectorDefinitionInterface $connectorDefinition, array $contextParameter): array diff --git a/src/JobsBundle/Context/ResolvedItem.php b/src/JobsBundle/Context/ResolvedItem.php index 71d7b00..66ada7c 100644 --- a/src/JobsBundle/Context/ResolvedItem.php +++ b/src/JobsBundle/Context/ResolvedItem.php @@ -7,15 +7,12 @@ class ResolvedItem implements ResolvedItemInterface { - protected ?ConnectorContextItemInterface $contextItem; - protected ?Concrete $subject; - protected array $resolvedParams; - - public function __construct(?ConnectorContextItemInterface $contextItem, ?Concrete $subject, array $resolvedParams = []) + public function __construct( + protected ?ConnectorContextItemInterface $contextItem, + protected ?Concrete $subject, + protected array $resolvedParams = [] + ) { - $this->contextItem = $contextItem; - $this->subject = $subject; - $this->resolvedParams = $resolvedParams; } public function getContextItem(): ?ConnectorContextItemInterface diff --git a/src/JobsBundle/Controller/Admin/LogController.php b/src/JobsBundle/Controller/Admin/LogController.php index 0372bea..eaa2e8e 100644 --- a/src/JobsBundle/Controller/Admin/LogController.php +++ b/src/JobsBundle/Controller/Admin/LogController.php @@ -4,11 +4,11 @@ use JobsBundle\Manager\LogManagerInterface; use JobsBundle\Model\LogEntryInterface; -use Pimcore\Bundle\AdminBundle\HttpFoundation\JsonResponse; +use Pimcore\Bundle\AdminBundle\Controller\AdminAbstractController; +use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; -use Pimcore\Bundle\AdminBundle\Controller\AdminController; -class LogController extends AdminController +class LogController extends AdminAbstractController { protected LogManagerInterface $logManager; diff --git a/src/JobsBundle/Controller/Admin/SettingsController.php b/src/JobsBundle/Controller/Admin/SettingsController.php index 10e35ff..3703ed8 100644 --- a/src/JobsBundle/Controller/Admin/SettingsController.php +++ b/src/JobsBundle/Controller/Admin/SettingsController.php @@ -9,31 +9,20 @@ use JobsBundle\Manager\ContextDefinitionManagerInterface; use JobsBundle\Service\EnvironmentServiceInterface; use JobsBundle\Tool\FeedIdHelper; -use Pimcore\Bundle\AdminBundle\HttpFoundation\JsonResponse; +use Pimcore\Bundle\AdminBundle\Controller\AdminAbstractController; +use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use JobsBundle\Registry\ConnectorDefinitionRegistryInterface; -use Pimcore\Bundle\AdminBundle\Controller\AdminController; -class SettingsController extends AdminController +class SettingsController extends AdminAbstractController { - protected EnvironmentServiceInterface $environmentService; - protected ConnectorManagerInterface $connectorManager; - protected ContextDefinitionManagerInterface $contextDefinitionManager; - protected ConnectorDefinitionRegistryInterface $connectorRegistry; - protected ConnectorServiceInterface $connectorService; - public function __construct( - EnvironmentServiceInterface $environmentService, - ConnectorManagerInterface $connectorManager, - ContextDefinitionManagerInterface $contextDefinitionManager, - ConnectorDefinitionRegistryInterface $connectorRegistry, - ConnectorServiceInterface $connectorService + protected EnvironmentServiceInterface $environmentService, + protected ConnectorManagerInterface $connectorManager, + protected ContextDefinitionManagerInterface $contextDefinitionManager, + protected ConnectorDefinitionRegistryInterface $connectorRegistry, + protected ConnectorServiceInterface $connectorService ) { - $this->environmentService = $environmentService; - $this->connectorManager = $connectorManager; - $this->contextDefinitionManager = $contextDefinitionManager; - $this->connectorRegistry = $connectorRegistry; - $this->connectorService = $connectorService; } /** diff --git a/src/JobsBundle/Controller/FacebookController.php b/src/JobsBundle/Controller/FacebookController.php index e11d511..028cd01 100644 --- a/src/JobsBundle/Controller/FacebookController.php +++ b/src/JobsBundle/Controller/FacebookController.php @@ -20,15 +20,10 @@ class FacebookController extends FrontendController { - protected EnvironmentServiceInterface $environmentService; - protected ConnectorServiceInterface $connectorService; - public function __construct( - EnvironmentServiceInterface $environmentService, - ConnectorServiceInterface $connectorService + protected EnvironmentServiceInterface $environmentService, + protected ConnectorServiceInterface $connectorService ) { - $this->environmentService = $environmentService; - $this->connectorService = $connectorService; } public function connectAction(Request $request, string $token): RedirectResponse diff --git a/src/JobsBundle/Controller/ProviderController.php b/src/JobsBundle/Controller/ProviderController.php index 0dadd44..dd95f4d 100644 --- a/src/JobsBundle/Controller/ProviderController.php +++ b/src/JobsBundle/Controller/ProviderController.php @@ -11,15 +11,10 @@ class ProviderController extends FrontendController { - protected ContextServiceInterface $contextService; - protected ConnectorServiceInterface $connectorService; - public function __construct( - ContextServiceInterface $contextService, - ConnectorServiceInterface $connectorService + protected ContextServiceInterface $contextService, + protected ConnectorServiceInterface $connectorService ) { - $this->contextService = $contextService; - $this->connectorService = $connectorService; } /** diff --git a/src/JobsBundle/CoreExtension/JobConnectorContext.php b/src/JobsBundle/CoreExtension/JobConnectorContext.php index e933866..80e5e61 100644 --- a/src/JobsBundle/CoreExtension/JobConnectorContext.php +++ b/src/JobsBundle/CoreExtension/JobConnectorContext.php @@ -13,8 +13,11 @@ use JobsBundle\Model\ConnectorEngineInterface; use JobsBundle\Model\ContextDefinitionInterface; use Pimcore\Model\DataObject\ClassDefinition\Data; -use Pimcore\Model\DataObject\ClassDefinition\Data\CustomDataCopyInterface; use Pimcore\Model\DataObject\Concrete; +use Pimcore\Model\DataObject\Fieldcollection; +use Pimcore\Model\DataObject\Localizedfield; +use Pimcore\Model\DataObject\Objectbrick; +use Pimcore\Model\DataObject\Objectbrick\Data\AbstractData; use Pimcore\Model\Element\ValidationException; use Symfony\Component\Serializer\Serializer; @@ -22,15 +25,10 @@ class JobConnectorContext extends Data implements Data\CustomResourcePersistingInterface, Data\CustomVersionMarshalInterface, Data\CustomRecyclingMarshalInterface, - Data\CustomDataCopyInterface + Data\CustomDataCopyInterface, + Data\PreGetDataInterface, + Data\PreSetDataInterface { - /** - * Static type of this element. - * - * @var string - */ - public $fieldtype = 'jobConnectorContext'; - private function getConnectorContextManager(): ConnectorContextManagerInterface { return \Pimcore::getContainer()->get(ConnectorContextManager::class); @@ -48,69 +46,44 @@ private function getLogManager(): LogManagerInterface protected function getSerializer(): Serializer { - return \Pimcore::getContainer()->get('serializer'); + return \Pimcore::getContainer()->get('jobs.internal.serializer'); } - /** - * @param mixed $object - * - * @return null|ConnectorContextItemInterface[] - */ - public function preGetData($object) + public function preGetData(mixed $container, array $params = []): mixed { - if (!$object instanceof Concrete) { + if (!$container instanceof Concrete) { return null; } - $data = $object->getObjectVar($this->getName()); + $data = $container->getObjectVar($this->getName()); - if (!$object->isLazyKeyLoaded($this->getName())) { - $data = $this->load($object, ['force' => true]); + if (!$container->isLazyKeyLoaded($this->getName())) { + $data = $this->load($container, ['force' => true]); $setter = 'set' . ucfirst($this->getName()); - if (method_exists($object, $setter)) { - $object->$setter($data); + if (method_exists($container, $setter)) { + $container->$setter($data); } } return $data; } - public function preSetData($object, $data, $params = []) + public function preSetData(mixed $container, mixed $data, array $params = []): mixed { - $this->markAsLoaded($object); + $this->markAsLoaded($container); return $data; } - /** - * {@inheritdoc} - */ - public function isDiffChangeAllowed($object, $params = []) - { - return false; - } - - /** - * {@inheritdoc} - */ - public function getDiffDataForEditMode($data, $object = null, $params = []) - { - return []; - } - - public function getDataFromResource($data, $object = null, $params = []) + public function getDiffDataForEditMode(mixed $data, Concrete $object = null, array $params = []): ?array { return []; } /** - * @param mixed $data - * @param null|Concrete $object - * @param array $params - * * @return ConnectorContextItemInterface[] */ - public function getDataForEditmode($data, $object = null, $params = []) + public function getDataForEditmode(mixed $data, Concrete $object = null, array $params = []): mixed { if (!$object instanceof Concrete) { return $data; @@ -124,15 +97,9 @@ public function getDataForEditmode($data, $object = null, $params = []) } /** - * @param mixed $data - * @param null|Concrete $object - * @param array $params - * - * @return null|array - * * @throws \Exception */ - public function getDataFromEditmode($data, $object = null, $params = []) + public function getDataFromEditmode(mixed $data, Concrete $object = null, array $params = []): mixed { if (!is_array($data)) { return null; @@ -170,7 +137,7 @@ public function getDataFromEditmode($data, $object = null, $params = []) continue; } - $item = array_reduce($existingConnectorContextItems, function ($result, ConnectorContextItemInterface $item) use ($contextConfig) { + $item = array_reduce($existingConnectorContextItems, static function ($result, ConnectorContextItemInterface $item) use ($contextConfig) { return $item->getContextDefinition()->getId() === $contextConfig['id'] ? $item : $result; }); @@ -188,11 +155,7 @@ public function getDataFromEditmode($data, $object = null, $params = []) return $items; } - /** - * @param mixed $object - * @param array $params - */ - public function save($object, $params = []) + public function save(Localizedfield|\Pimcore\Model\DataObject\Fieldcollection\Data\AbstractData|AbstractData|Concrete $object, array $params = []): void { if (!method_exists($object, 'getJobConnectorContext')) { return; @@ -229,10 +192,7 @@ public function save($object, $params = []) } } - /** - * {@inheritdoc} - */ - public function load($object, $params = []) + public function load(Localizedfield|\Pimcore\Model\DataObject\Fieldcollection\Data\AbstractData|AbstractData|Concrete $object, array $params = []): mixed { if (isset($params['force']) && $params['force']) { return $this->getConnectorContextManager()->getForObject($object->getId()); @@ -241,10 +201,7 @@ public function load($object, $params = []) return null; } - /** - * {@inheritdoc} - */ - public function delete($object, $params = []) + public function delete(Localizedfield|\Pimcore\Model\DataObject\Fieldcollection\Data\AbstractData|AbstractData|Concrete $object, array $params = []): void { $allConnectorContextItems = $this->load($object, ['force' => true]); if (!is_array($allConnectorContextItems)) { @@ -258,27 +215,7 @@ public function delete($object, $params = []) $this->getLogManager()->deleteForObject($object->getId()); } - /** - * @param mixed $data - * @param null $relatedObject - * @param mixed $params - * @param null $idMapper - * - * @return ConnectorContextItemInterface[] - * - * @throws \Exception - */ - public function getFromWebserviceImport($data, $relatedObject = null, $params = [], $idMapper = null) - { - return $this->getDataFromEditmode($this->arrayCastRecursive($data), $relatedObject, $params); - } - - /** - * @param mixed $array - * - * @return array - */ - protected function arrayCastRecursive($array) + protected function arrayCastRecursive(mixed $array): array { if (is_array($array)) { foreach ($array as $key => $value) { @@ -310,10 +247,7 @@ protected function markAsLoaded($object) $object->markLazyKeyAsLoaded($this->getName()); } - /** - * {@inheritdoc} - */ - public function marshalVersion($object, $data) + public function marshalVersion(Concrete $object, mixed $data): mixed { if (!is_array($data)) { return []; @@ -322,10 +256,7 @@ public function marshalVersion($object, $data) return $this->getSerializer()->normalize($data, 'array', ['groups' => ['Version']]); } - /** - * {@inheritdoc} - */ - public function unmarshalVersion($object, $data) + public function unmarshalVersion(Concrete $object, mixed $data): mixed { if (!is_array($data)) { return []; @@ -336,36 +267,17 @@ public function unmarshalVersion($object, $data) ); } - /** - * {@inheritdoc} - */ - public function marshalRecycleData($object, $data) + public function marshalRecycleData(Concrete $object, mixed $data): mixed { - if (!is_array($data)) { - return []; - } - - return $this->getSerializer()->normalize($data, 'array', ['groups' => ['Version']]); + return $this->marshalVersion($object, $data); } - /** - * {@inheritdoc} - */ - public function unmarshalRecycleData($object, $data) + public function unmarshalRecycleData(Concrete $object, mixed $data): mixed { - if (!is_array($data)) { - return []; - } - - return array_filter( - $this->getSerializer()->denormalize($data, sprintf('%s[]', ConnectorContextItem::class)) - ); + return $this->unmarshalVersion($object, $data); } - /** - * {@inheritdoc} - */ - public function createDataCopy(Concrete $object, $data) + public function createDataCopy(Concrete $object, mixed $data): mixed { if (!is_array($data)) { return []; @@ -388,10 +300,7 @@ public function createDataCopy(Concrete $object, $data) return $newData; } - /** - * {@inheritdoc} - */ - public function getVersionPreview($data, $object = null, $params = []) + public function getVersionPreview(mixed $data, Concrete $object = null, array $params = []): string { $preview = []; if (!is_array($data)) { @@ -408,10 +317,7 @@ public function getVersionPreview($data, $object = null, $params = []) return implode(', ', $preview); } - /** - * {@inheritdoc} - */ - public function getDataForSearchIndex($object, $params = []) + public function getDataForSearchIndex(Localizedfield|Fieldcollection\Data\AbstractData|Objectbrick\Data\AbstractData|Concrete $object, array $params = []): string { return ''; } @@ -423,7 +329,7 @@ public function getParameterTypeDeclaration(): ?string public function getReturnTypeDeclaration(): ?string { - return '?array'; + return $this->getParameterTypeDeclaration(); } public function getPhpdocInputType(): ?string @@ -435,4 +341,9 @@ public function getPhpdocReturnType(): ?string { return '\\' . ConnectorContextItemInterface::class . '[]'; } + + public function getFieldType(): string + { + return 'jobConnectorContext'; + } } diff --git a/src/JobsBundle/DependencyInjection/JobsExtension.php b/src/JobsBundle/DependencyInjection/JobsExtension.php index d17b15b..57e7bca 100644 --- a/src/JobsBundle/DependencyInjection/JobsExtension.php +++ b/src/JobsBundle/DependencyInjection/JobsExtension.php @@ -16,7 +16,7 @@ public function load(array $configs, ContainerBuilder $container): void $config = $this->processConfiguration($configuration, $configs); $loader = new YamlFileLoader($container, new FileLocator([__DIR__ . '/../Resources/config'])); - $loader->load('services.yml'); + $loader->load('services.yaml'); $persistenceConfig = $config['persistence']['doctrine']; $entityManagerName = $persistenceConfig['entity_manager']; @@ -76,7 +76,7 @@ protected function checkGoogleConnectorDependencies(ContainerBuilder $container, /** @phpstan-ignore-next-line */ if (array_key_exists('SeoBundle', $bundles) && array_key_exists('SchemaBundle', $bundles)) { $container->setParameter('jobs.connector.google.dependencies_installed', true); - $loader->load('external/seo.yml'); + $loader->load('external/seo.yaml'); } } diff --git a/src/JobsBundle/EventListener/Admin/AssetListener.php b/src/JobsBundle/EventListener/Admin/AssetListener.php new file mode 100644 index 0000000..6c08bec --- /dev/null +++ b/src/JobsBundle/EventListener/Admin/AssetListener.php @@ -0,0 +1,38 @@ + 'addCssFiles', + BundleManagerEvents::JS_PATHS => 'addJsFiles', + ]; + } + + public function addCssFiles(PathsEvent $event): void + { + $event->addPaths([ + '/bundles/jobs/css/admin.css' + ]); + } + + public function addJsFiles(PathsEvent $event): void + { + $event->addPaths([ + '/bundles/jobs/js/plugin.js', + '/bundles/jobs/js/settingsPanel.js', + '/bundles/jobs/js/connector/abstractConnector.js', + '/bundles/jobs/js/connector/google.js', + '/bundles/jobs/js/connector/facebook.js', + '/bundles/jobs/js/coreExtension/data/jobConnectorContext.js', + '/bundles/jobs/js/coreExtension/tags/jobConnectorContext.js', + ]); + } +} diff --git a/src/JobsBundle/EventListener/Maintenance/CleanUpLogsTask.php b/src/JobsBundle/EventListener/Maintenance/CleanUpLogsTask.php index 4d3e0cf..ab12bac 100644 --- a/src/JobsBundle/EventListener/Maintenance/CleanUpLogsTask.php +++ b/src/JobsBundle/EventListener/Maintenance/CleanUpLogsTask.php @@ -7,13 +7,10 @@ class CleanUpLogsTask implements TaskInterface { - protected int $logExpirationDays; - protected LogRepositoryInterface $logRepository; - - public function __construct(int $logExpirationDays, LogRepositoryInterface $logRepository) - { - $this->logExpirationDays = $logExpirationDays; - $this->logRepository = $logRepository; + public function __construct( + protected int $logExpirationDays, + protected LogRepositoryInterface $logRepository + ) { } public function execute(): void diff --git a/src/JobsBundle/JobsBundle.php b/src/JobsBundle/JobsBundle.php index 8ea4d7b..3576eb9 100644 --- a/src/JobsBundle/JobsBundle.php +++ b/src/JobsBundle/JobsBundle.php @@ -34,26 +34,6 @@ protected function getComposerPackageName(): string return self::PACKAGE_NAME; } - public function getCssPaths(): array - { - return [ - '/bundles/jobs/css/admin.css' - ]; - } - - public function getJsPaths(): array - { - return [ - '/bundles/jobs/js/plugin.js', - '/bundles/jobs/js/settingsPanel.js', - '/bundles/jobs/js/connector/abstractConnector.js', - '/bundles/jobs/js/connector/google.js', - '/bundles/jobs/js/connector/facebook.js', - '/bundles/jobs/js/coreExtension/data/jobConnectorContext.js', - '/bundles/jobs/js/coreExtension/tags/jobConnectorContext.js', - ]; - } - protected function configureDoctrineExtension(ContainerBuilder $container): void { $container->addCompilerPass( diff --git a/src/JobsBundle/Manager/ConnectorContextManager.php b/src/JobsBundle/Manager/ConnectorContextManager.php index 7402d22..e570774 100644 --- a/src/JobsBundle/Manager/ConnectorContextManager.php +++ b/src/JobsBundle/Manager/ConnectorContextManager.php @@ -10,21 +10,12 @@ class ConnectorContextManager implements ConnectorContextManagerInterface { - protected ConnectorManagerInterface $connectorManager; - protected ContextDefinitionManagerInterface $contextDefinitionManager; - protected ConnectorContextItemRepositoryInterface $connectorContextItemRepository; - protected EntityManagerInterface $entityManager; - public function __construct( - ConnectorManagerInterface $connectorManager, - ContextDefinitionManagerInterface $contextDefinitionManager, - ConnectorContextItemRepositoryInterface $connectorContextItemRepository, - EntityManagerInterface $entityManager + protected ConnectorManagerInterface $connectorManager, + protected ContextDefinitionManagerInterface $contextDefinitionManager, + protected ConnectorContextItemRepositoryInterface $connectorContextItemRepository, + protected EntityManagerInterface $entityManager ) { - $this->connectorManager = $connectorManager; - $this->contextDefinitionManager = $contextDefinitionManager; - $this->connectorContextItemRepository = $connectorContextItemRepository; - $this->entityManager = $entityManager; } public function getForObject(int $objectId): array diff --git a/src/JobsBundle/Manager/ConnectorManager.php b/src/JobsBundle/Manager/ConnectorManager.php index 5232d3b..2717f2a 100644 --- a/src/JobsBundle/Manager/ConnectorManager.php +++ b/src/JobsBundle/Manager/ConnectorManager.php @@ -12,21 +12,12 @@ class ConnectorManager implements ConnectorManagerInterface { - protected array $availableConnectors; - protected ConnectorDefinitionRegistryInterface $connectorDefinitionRegistry; - protected ConnectorEngineRepositoryInterface $connectorEngineRepository; - protected EntityManagerInterface $entityManager; - public function __construct( - array $availableConnectors, - ConnectorDefinitionRegistryInterface $connectorDefinitionRegistry, - ConnectorEngineRepositoryInterface $connectorEngineRepository, - EntityManagerInterface $entityManager + protected array $availableConnectors, + protected ConnectorDefinitionRegistryInterface $connectorDefinitionRegistry, + protected ConnectorEngineRepositoryInterface $connectorEngineRepository, + protected EntityManagerInterface $entityManager ) { - $this->availableConnectors = $availableConnectors; - $this->connectorDefinitionRegistry = $connectorDefinitionRegistry; - $this->connectorEngineRepository = $connectorEngineRepository; - $this->entityManager = $entityManager; } public function connectorDefinitionIsEnabled(string $connectorDefinitionName): bool diff --git a/src/JobsBundle/Manager/ContextDefinitionManager.php b/src/JobsBundle/Manager/ContextDefinitionManager.php index d581100..a54841f 100644 --- a/src/JobsBundle/Manager/ContextDefinitionManager.php +++ b/src/JobsBundle/Manager/ContextDefinitionManager.php @@ -9,15 +9,10 @@ class ContextDefinitionManager implements ContextDefinitionManagerInterface { - protected ContextDefinitionRepositoryInterface $contextDefinitionRepository; - protected EntityManagerInterface $entityManager; - public function __construct( - ContextDefinitionRepositoryInterface $contextDefinitionRepository, - EntityManagerInterface $entityManager + protected ContextDefinitionRepositoryInterface $contextDefinitionRepository, + protected EntityManagerInterface $entityManager ) { - $this->contextDefinitionRepository = $contextDefinitionRepository; - $this->entityManager = $entityManager; } public function createNew(string $host, string $locale): ContextDefinitionInterface diff --git a/src/JobsBundle/Manager/LogManager.php b/src/JobsBundle/Manager/LogManager.php index 84be681..d47a3b4 100644 --- a/src/JobsBundle/Manager/LogManager.php +++ b/src/JobsBundle/Manager/LogManager.php @@ -10,18 +10,11 @@ class LogManager implements LogManagerInterface { - protected LogRepositoryInterface $logRepository; - protected ConnectorManagerInterface $connectorManager; - protected EntityManagerInterface $entityManager; - public function __construct( - LogRepositoryInterface $logRepository, - ConnectorManagerInterface $connectorManager, - EntityManagerInterface $entityManager + protected LogRepositoryInterface $logRepository, + protected ConnectorManagerInterface $connectorManager, + protected EntityManagerInterface $entityManager ) { - $this->logRepository = $logRepository; - $this->connectorManager = $connectorManager; - $this->entityManager = $entityManager; } public function getForObject(int $objectId): Paginator diff --git a/src/JobsBundle/Normalizer/EntityNormalizer.php b/src/JobsBundle/Normalizer/EntityNormalizer.php index 7de3a5a..eb9f469 100644 --- a/src/JobsBundle/Normalizer/EntityNormalizer.php +++ b/src/JobsBundle/Normalizer/EntityNormalizer.php @@ -10,11 +10,8 @@ class EntityNormalizer implements DenormalizerInterface { - protected EntityManagerInterface $entityManager; - - public function __construct(EntityManagerInterface $entityManager) + public function __construct(protected EntityManagerInterface $entityManager) { - $this->entityManager = $entityManager; } public function supportsDenormalization($data, $type, $format = null): bool @@ -50,4 +47,4 @@ public function denormalize(mixed $data, string $type, ?string $format = null, a return $connectorContextItem; } -} \ No newline at end of file +} diff --git a/src/JobsBundle/Resources/config/external/seo.yml b/src/JobsBundle/Resources/config/external/seo.yaml similarity index 100% rename from src/JobsBundle/Resources/config/external/seo.yml rename to src/JobsBundle/Resources/config/external/seo.yaml diff --git a/src/JobsBundle/Resources/config/pimcore/config.yml b/src/JobsBundle/Resources/config/pimcore/config.yaml similarity index 100% rename from src/JobsBundle/Resources/config/pimcore/config.yml rename to src/JobsBundle/Resources/config/pimcore/config.yaml diff --git a/src/JobsBundle/Resources/config/pimcore/routing.yml b/src/JobsBundle/Resources/config/pimcore/routing.yaml similarity index 100% rename from src/JobsBundle/Resources/config/pimcore/routing.yml rename to src/JobsBundle/Resources/config/pimcore/routing.yaml diff --git a/src/JobsBundle/Resources/config/serialization/ConnectorContextItem.yml b/src/JobsBundle/Resources/config/serialization/ConnectorContextItem.yaml similarity index 100% rename from src/JobsBundle/Resources/config/serialization/ConnectorContextItem.yml rename to src/JobsBundle/Resources/config/serialization/ConnectorContextItem.yaml diff --git a/src/JobsBundle/Resources/config/serialization/ConnectorEngine.yml b/src/JobsBundle/Resources/config/serialization/ConnectorEngine.yaml similarity index 100% rename from src/JobsBundle/Resources/config/serialization/ConnectorEngine.yml rename to src/JobsBundle/Resources/config/serialization/ConnectorEngine.yaml diff --git a/src/JobsBundle/Resources/config/serialization/ContextDefinition.yml b/src/JobsBundle/Resources/config/serialization/ContextDefinition.yaml similarity index 100% rename from src/JobsBundle/Resources/config/serialization/ContextDefinition.yml rename to src/JobsBundle/Resources/config/serialization/ContextDefinition.yaml diff --git a/src/JobsBundle/Resources/config/services.yaml b/src/JobsBundle/Resources/config/services.yaml new file mode 100644 index 0000000..ee78c90 --- /dev/null +++ b/src/JobsBundle/Resources/config/services.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: services/*.yaml } \ No newline at end of file diff --git a/src/JobsBundle/Resources/config/services.yml b/src/JobsBundle/Resources/config/services.yml deleted file mode 100644 index 50ca291..0000000 --- a/src/JobsBundle/Resources/config/services.yml +++ /dev/null @@ -1,2 +0,0 @@ -imports: - - { resource: services/*.yml } \ No newline at end of file diff --git a/src/JobsBundle/Resources/config/services/connector_definition.yml b/src/JobsBundle/Resources/config/services/connector_definition.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/connector_definition.yml rename to src/JobsBundle/Resources/config/services/connector_definition.yaml diff --git a/src/JobsBundle/Resources/config/services/context.yml b/src/JobsBundle/Resources/config/services/context.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/context.yml rename to src/JobsBundle/Resources/config/services/context.yaml diff --git a/src/JobsBundle/Resources/config/services/controller.yml b/src/JobsBundle/Resources/config/services/controller.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/controller.yml rename to src/JobsBundle/Resources/config/services/controller.yaml diff --git a/src/JobsBundle/Resources/config/services/install.yml b/src/JobsBundle/Resources/config/services/install.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/install.yml rename to src/JobsBundle/Resources/config/services/install.yaml diff --git a/src/JobsBundle/Resources/config/services/maintenance.yml b/src/JobsBundle/Resources/config/services/maintenance.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/maintenance.yml rename to src/JobsBundle/Resources/config/services/maintenance.yaml diff --git a/src/JobsBundle/Resources/config/services/manager.yml b/src/JobsBundle/Resources/config/services/manager.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/manager.yml rename to src/JobsBundle/Resources/config/services/manager.yaml diff --git a/src/JobsBundle/Resources/config/services/registry.yml b/src/JobsBundle/Resources/config/services/registry.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/registry.yml rename to src/JobsBundle/Resources/config/services/registry.yaml diff --git a/src/JobsBundle/Resources/config/services/repository.yml b/src/JobsBundle/Resources/config/services/repository.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/repository.yml rename to src/JobsBundle/Resources/config/services/repository.yaml diff --git a/src/JobsBundle/Resources/config/services/services.yml b/src/JobsBundle/Resources/config/services/services.yaml similarity index 75% rename from src/JobsBundle/Resources/config/services/services.yml rename to src/JobsBundle/Resources/config/services/services.yaml index ad2d72b..fcac81d 100644 --- a/src/JobsBundle/Resources/config/services/services.yml +++ b/src/JobsBundle/Resources/config/services/services.yaml @@ -5,6 +5,10 @@ services: autoconfigure: true public: false + JobsBundle\EventListener\Admin\AssetListener: + tags: + - { name: kernel.event_subscriber } + JobsBundle\Connector\ConnectorServiceInterface: '@JobsBundle\Connector\ConnectorService' JobsBundle\Connector\ConnectorService: ~ @@ -19,4 +23,8 @@ services: JobsBundle\Normalizer\EntityNormalizer: tags: - - serializer.normalizer \ No newline at end of file + - serializer.normalizer + + jobs.internal.serializer: + alias: serializer + public: true \ No newline at end of file diff --git a/src/JobsBundle/Resources/public/js/coreExtension/tags/jobConnectorContext.js b/src/JobsBundle/Resources/public/js/coreExtension/tags/jobConnectorContext.js index c218ec9..42ba8bb 100644 --- a/src/JobsBundle/Resources/public/js/coreExtension/tags/jobConnectorContext.js +++ b/src/JobsBundle/Resources/public/js/coreExtension/tags/jobConnectorContext.js @@ -266,7 +266,7 @@ pimcore.object.tags.jobConnectorContext = Class.create(pimcore.object.tags.abstr postSaveObject: function () { Ext.Array.each(this.connectorGrids, function (connector) { - connector['grid'].getStore().commitChanges(); + connector.grid.getStore().commitChanges(); }); }, diff --git a/src/JobsBundle/Resources/public/js/plugin.js b/src/JobsBundle/Resources/public/js/plugin.js index bd14192..1a4bc42 100755 --- a/src/JobsBundle/Resources/public/js/plugin.js +++ b/src/JobsBundle/Resources/public/js/plugin.js @@ -1,6 +1,7 @@ document.addEventListener(pimcore.events.pimcoreReady, (e) => { - var user = pimcore.globalmanager.get('user'), + let user = pimcore.globalmanager.get('user'), + jobsMenu, openSettings = function (config) { try { pimcore.globalmanager.get('jobs_bundle_settings').activate(); @@ -23,5 +24,4 @@ document.addEventListener(pimcore.events.pimcoreReady, (e) => { if (layoutToolbar.settingsMenu) { layoutToolbar.settingsMenu.add(jobsMenu); } - }); diff --git a/src/JobsBundle/Resources/translations/admin.de.yml b/src/JobsBundle/Resources/translations/admin.de.yaml similarity index 100% rename from src/JobsBundle/Resources/translations/admin.de.yml rename to src/JobsBundle/Resources/translations/admin.de.yaml diff --git a/src/JobsBundle/Resources/translations/admin.en.yml b/src/JobsBundle/Resources/translations/admin.en.yaml similarity index 100% rename from src/JobsBundle/Resources/translations/admin.en.yml rename to src/JobsBundle/Resources/translations/admin.en.yaml diff --git a/src/JobsBundle/Seo/ResourceProcessor/GoogleJobsProcessor.php b/src/JobsBundle/Seo/ResourceProcessor/GoogleJobsProcessor.php index b590612..f037c28 100644 --- a/src/JobsBundle/Seo/ResourceProcessor/GoogleJobsProcessor.php +++ b/src/JobsBundle/Seo/ResourceProcessor/GoogleJobsProcessor.php @@ -15,21 +15,12 @@ class GoogleJobsProcessor implements ResourceProcessorInterface { - protected EnvironmentServiceInterface $environmentService; - protected ContextServiceInterface $contextService; - protected ConnectorServiceInterface $connectorService; - protected LogManagerInterface $logManager; - public function __construct( - EnvironmentServiceInterface $environmentService, - ContextServiceInterface $contextService, - ConnectorServiceInterface $connectorService, - LogManagerInterface $logManager + protected EnvironmentServiceInterface $environmentService, + protected ContextServiceInterface $contextService, + protected ConnectorServiceInterface $connectorService, + protected LogManagerInterface $logManager ) { - $this->environmentService = $environmentService; - $this->contextService = $contextService; - $this->connectorService = $connectorService; - $this->logManager = $logManager; } public function supportsWorker(string $workerIdentifier): bool diff --git a/src/JobsBundle/Service/EnvironmentService.php b/src/JobsBundle/Service/EnvironmentService.php index a576307..4cd0c1d 100644 --- a/src/JobsBundle/Service/EnvironmentService.php +++ b/src/JobsBundle/Service/EnvironmentService.php @@ -4,13 +4,11 @@ class EnvironmentService implements EnvironmentServiceInterface { - protected string $dataClass; - protected string $feedHost; - public function __construct(string $dataClass, string $feedHost) - { - $this->dataClass = $dataClass; - $this->feedHost = $feedHost; + public function __construct( + protected string $dataClass, + protected string $feedHost + ) { } public function getDataClass(): string diff --git a/src/JobsBundle/Tool/Install.php b/src/JobsBundle/Tool/Install.php index 0f1c728..b843d5b 100644 --- a/src/JobsBundle/Tool/Install.php +++ b/src/JobsBundle/Tool/Install.php @@ -2,7 +2,6 @@ namespace JobsBundle\Tool; -use Pimcore\Db\Connection; use Pimcore\Extension\Bundle\Installer\SettingsStoreAwareInstaller; class Install extends SettingsStoreAwareInstaller @@ -16,9 +15,8 @@ public function install(): void protected function installDbStructure(): void { - /** @var Connection $db */ $db = \Pimcore\Db::get(); - $db->query(file_get_contents($this->getInstallSourcesPath() . '/sql/install.sql')); + $db->executeQuery(file_get_contents($this->getInstallSourcesPath() . '/sql/install.sql')); } protected function getInstallSourcesPath(): string diff --git a/tests/Functional.suite.dist.yml b/tests/Functional.suite.dist.yml new file mode 100644 index 0000000..081d345 --- /dev/null +++ b/tests/Functional.suite.dist.yml @@ -0,0 +1,14 @@ +actor: FunctionalTester +modules: + enabled: + - \Dachcom\Codeception\Support\Helper\PimcoreCore: + connect_db: true + rebootable_client: true + - \Dachcom\Codeception\Support\Helper\PimcoreBundleCore: + run_installer: true + - \Dachcom\Codeception\Support\Helper\Browser\PhpBrowser: + depends: \Dachcom\Codeception\Helper\PimcoreCore + - \Dachcom\Codeception\Support\Helper\PimcoreBackend + - \Dachcom\Codeception\Support\Helper\PimcoreUser + - \DachcomBundle\Test\Support\Helper\Jobs + - \Pimcore\Tests\Support\Helper\ClassManager \ No newline at end of file diff --git a/tests/functional/Admin/ObjectConnectorCest.php b/tests/Functional/Admin/ObjectConnectorCest.php similarity index 98% rename from tests/functional/Admin/ObjectConnectorCest.php rename to tests/Functional/Admin/ObjectConnectorCest.php index 8efcf7b..ded6036 100644 --- a/tests/functional/Admin/ObjectConnectorCest.php +++ b/tests/Functional/Admin/ObjectConnectorCest.php @@ -1,6 +1,6 @@ Date: Sat, 15 Jul 2023 23:08:19 +0200 Subject: [PATCH 2/9] start pimcore 11 support --- tests/_etc/config/app/config.yaml | 4 -- .../app/{system.yaml => system_settings.yaml} | 62 +++++++------------ 2 files changed, 23 insertions(+), 43 deletions(-) rename tests/_etc/config/app/{system.yaml => system_settings.yaml} (53%) diff --git a/tests/_etc/config/app/config.yaml b/tests/_etc/config/app/config.yaml index 7dfc011..53f2720 100755 --- a/tests/_etc/config/app/config.yaml +++ b/tests/_etc/config/app/config.yaml @@ -22,10 +22,6 @@ pimcore_admin: admin_csp_header: enabled: false -pimcore: - targeting: - enabled: false - framework: session: diff --git a/tests/_etc/config/app/system.yaml b/tests/_etc/config/app/system_settings.yaml similarity index 53% rename from tests/_etc/config/app/system.yaml rename to tests/_etc/config/app/system_settings.yaml index 52c5500..52951c7 100755 --- a/tests/_etc/config/app/system.yaml +++ b/tests/_etc/config/app/system_settings.yaml @@ -1,63 +1,47 @@ pimcore: general: timezone: Europe/Berlin - language: en - valid_languages: 'en,de' - fallback_languages: - en: '' - de: '' - path_variable: '' domain: 'localhost' redirect_to_maindomain: false - default_language: en disable_usage_statistics: true debug_admin_translations: false - instance_identifier: '' + language: en + default_language: en + valid_languages: + - en + - de + fallback_languages: + en: '' + de: '' documents: + allow_trailing_slash: 'no' + generate_preview: false versions: - steps: 10 days: null + steps: 10 error_pages: - default: /404 - allow_trailing_slash: 'no' - generate_preview: false + default: '/error' + localized: + en: '' + de: '' objects: versions: - steps: 10 days: null + steps: 10 assets: versions: - steps: 10 days: null - icc_rgb_profile: '' - icc_cmyk_profile: '' - hide_edit_image: false - disable_tree_preview: true + steps: 10 email: debug: - email_addresses: opensource@dachcom.ch - full_page_cache: - exclude_cookie: '' - enabled: false - lifetime: null - exclude_patterns: '' - httpclient: - adapter: Socket - proxy_host: '' - proxy_port: '' - proxy_user: '' - proxy_pass: '' - applicationlog: - mail_notification: - send_log_summary: false - filter_priority: null - mail_receiver: '' - archive_treshold: '30' - archive_alternative_database: '' - delete_archive_threshold: '6' + email_addresses: shagspiel@dachcom.ch pimcore_admin: + assets: + hide_edit_image: true + disable_tree_preview: true branding: + login_screen_invert_colors: false color_login_screen: '' color_admin_interface: '' + color_admin_interface_background: '' login_screen_custom_image: '' - login_screen_invert_colors: false From c38848b35e50c1f74b7afa50bdf5f2c049c8946c Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Sat, 15 Jul 2023 23:12:07 +0200 Subject: [PATCH 3/9] fix test namespace --- tests/Functional.suite.dist.yml | 2 +- tests/Support/Helper/Jobs.php | 2 +- tests/_envs/github.yml | 2 +- tests/_envs/local.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/Functional.suite.dist.yml b/tests/Functional.suite.dist.yml index 081d345..412ce94 100644 --- a/tests/Functional.suite.dist.yml +++ b/tests/Functional.suite.dist.yml @@ -7,7 +7,7 @@ modules: - \Dachcom\Codeception\Support\Helper\PimcoreBundleCore: run_installer: true - \Dachcom\Codeception\Support\Helper\Browser\PhpBrowser: - depends: \Dachcom\Codeception\Helper\PimcoreCore + depends: \Dachcom\Codeception\Support\Helper\PimcoreCore - \Dachcom\Codeception\Support\Helper\PimcoreBackend - \Dachcom\Codeception\Support\Helper\PimcoreUser - \DachcomBundle\Test\Support\Helper\Jobs diff --git a/tests/Support/Helper/Jobs.php b/tests/Support/Helper/Jobs.php index 60a01fa..c18b8a4 100644 --- a/tests/Support/Helper/Jobs.php +++ b/tests/Support/Helper/Jobs.php @@ -4,7 +4,7 @@ use Codeception\Module; use Codeception\TestInterface; -use Dachcom\Codeception\Helper\PimcoreCore; +use Dachcom\Codeception\Support\Helper\PimcoreCore; use JobsBundle\Connector\ConnectorServiceInterface; use JobsBundle\Manager\ConnectorContextManagerInterface; use JobsBundle\Manager\ContextDefinitionManagerInterface; diff --git a/tests/_envs/github.yml b/tests/_envs/github.yml index efc6673..ca9cafc 100644 --- a/tests/_envs/github.yml +++ b/tests/_envs/github.yml @@ -1,6 +1,6 @@ modules: config: - \Dachcom\Codeception\Helper\Browser\WebDriver: + \Dachcom\Codeception\Support\Helper\Browser\WebDriver: browser: chrome port: 9515 restart: true diff --git a/tests/_envs/local.yml b/tests/_envs/local.yml index 8012f3c..abd7179 100644 --- a/tests/_envs/local.yml +++ b/tests/_envs/local.yml @@ -1,6 +1,6 @@ modules: config: - \Dachcom\Codeception\Helper\Browser\WebDriver: + \Dachcom\Codeception\Support\Helper\Browser\WebDriver: browser: chrome port: 4444 restart: true From 4c4ccc855fb544b2ad00e1e8de6bc2d4c449ad98 Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Sat, 15 Jul 2023 23:15:57 +0200 Subject: [PATCH 4/9] fix test namespace --- .github/workflows/php-stan.yml | 2 +- tests/Functional/Admin/ObjectConnectorCest.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/php-stan.yml b/.github/workflows/php-stan.yml index dac65a1..26b9c3d 100644 --- a/.github/workflows/php-stan.yml +++ b/.github/workflows/php-stan.yml @@ -15,7 +15,7 @@ jobs: TEST_PROJECT_ROOT_DIR: "${{ github.workspace }}" PIMCORE_CODECEPTION_FRAMEWORK: "${{ github.workspace }}/pimcore-codeception-framework" - PIMCORE_CODECEPTION_VERSION: "2.0" + PIMCORE_CODECEPTION_VERSION: "3.0" APP_ENV: test PIMCORE_TEST_DB_DSN: "mysql://root:root@127.0.0.1:3306/dachcom_bundle_test" diff --git a/tests/Functional/Admin/ObjectConnectorCest.php b/tests/Functional/Admin/ObjectConnectorCest.php index ded6036..94d7727 100644 --- a/tests/Functional/Admin/ObjectConnectorCest.php +++ b/tests/Functional/Admin/ObjectConnectorCest.php @@ -2,7 +2,7 @@ namespace DachcomBundle\Test\Support\Functional\Admin; -use DachcomBundle\Test\FunctionalTester; +use DachcomBundle\Test\Support\FunctionalTester; class ObjectConnectorCest { From 550304b8e00513a662a792f9b8f268b5b207d2ef Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Fri, 4 Aug 2023 13:59:25 +0200 Subject: [PATCH 5/9] juse new bundle structure --- UPGRADE.md | 3 ++- composer.json | 2 +- .../doctrine/model/ConnectorContextItem.orm.yml | 0 .../doctrine/model/ConnectorEngine.orm.yml | 0 .../doctrine/model/ContextDefinition.orm.yml | 0 .../config => config}/doctrine/model/LogEntry.orm.yml | 0 .../Resources/config => config}/external/seo.yaml | 0 .../Resources => config}/install/sql/install.sql | 0 .../install/translations/admin.csv | 0 .../Resources/config => config}/pimcore/config.yaml | 0 .../Resources/config => config}/pimcore/routing.yaml | 0 .../serialization/ConnectorContextItem.yaml | 0 .../serialization/ConnectorEngine.yaml | 0 .../serialization/ContextDefinition.yaml | 0 .../Resources/config => config}/services.yaml | 0 .../services/connector_definition.yaml | 0 .../Resources/config => config}/services/context.yaml | 0 .../config => config}/services/controller.yaml | 2 +- .../Resources/config => config}/services/install.yaml | 0 .../config => config}/services/maintenance.yaml | 0 .../Resources/config => config}/services/manager.yaml | 0 .../config => config}/services/registry.yaml | 0 .../config => config}/services/repository.yaml | 0 .../config => config}/services/services.yaml | 0 .../Resources/public => public}/css/admin.css | 0 .../public => public}/img/jobs_connector_options.svg | 0 .../public => public}/img/jobs_icon_white.svg | 0 .../js/connector/abstractConnector.js | 0 .../public => public}/js/connector/facebook.js | 0 .../public => public}/js/connector/google.js | 0 .../js/coreExtension/data/jobConnectorContext.js | 0 .../js/coreExtension/tags/jobConnectorContext.js | 0 .../Resources/public => public}/js/plugin.js | 0 .../Resources/public => public}/js/settingsPanel.js | 0 .../Connector/ConnectorDefinitionInterface.php | 0 .../ConnectorEngineConfigurationInterface.php | 0 src/{JobsBundle => }/Connector/ConnectorService.php | 0 .../Connector/ConnectorServiceInterface.php | 0 .../Connector/Facebook/ConnectorDefinition.php | 0 .../Connector/Facebook/EngineConfiguration.php | 0 .../Connector/Facebook/FeedGenerator.php | 0 .../Connector/Facebook/FeedTransformerDefinition.php | 0 .../Connector/Facebook/ItemTransformerDefinition.php | 0 .../Connector/Google/ConnectorDefinition.php | 0 .../Connector/Google/FeedGenerator.php | 0 .../Connector/Google/ItemTransformerDefinition.php | 0 src/{JobsBundle => }/Context/ContextService.php | 0 .../Context/ContextServiceInterface.php | 0 src/{JobsBundle => }/Context/ResolvedItem.php | 0 .../Context/ResolvedItemInterface.php | 0 .../Resolver/ContextItemsResolverInterface.php | 0 .../Context/Resolver/DynamicRouteRequestResolver.php | 0 .../Context/Resolver/FeedResolver.php | 0 .../Context/Resolver/PimcoreObjectResolver.php | 0 .../Context/Resolver/SeoQueueResolver.php | 0 .../Controller/Admin/LogController.php | 0 .../Controller/Admin/SettingsController.php | 0 .../Controller/FacebookController.php | 0 .../Controller/ProviderController.php | 0 .../CoreExtension/JobConnectorContext.php | 0 .../Compiler/ConnectorDefinitionPass.php | 0 .../Compiler/ContextItemsResolverPass.php | 0 .../DependencyInjection/Configuration.php | 0 .../DependencyInjection/JobsExtension.php | 2 +- .../EventListener/Admin/AssetListener.php | 0 .../EventListener/Maintenance/CleanUpLogsTask.php | 0 src/{JobsBundle => }/Feed/FeedGeneratorInterface.php | 0 src/{JobsBundle => }/JobsBundle.php | 11 ++++++----- .../Manager/ConnectorContextManager.php | 0 .../Manager/ConnectorContextManagerInterface.php | 0 src/{JobsBundle => }/Manager/ConnectorManager.php | 0 .../Manager/ConnectorManagerInterface.php | 0 .../Manager/ContextDefinitionManager.php | 0 .../Manager/ContextDefinitionManagerInterface.php | 0 src/{JobsBundle => }/Manager/LogManager.php | 0 src/{JobsBundle => }/Manager/LogManagerInterface.php | 0 src/{JobsBundle => }/Migrations/.gitkeep | 0 src/{JobsBundle => }/Model/ConnectorContextItem.php | 0 .../Model/ConnectorContextItemInterface.php | 0 src/{JobsBundle => }/Model/ConnectorEngine.php | 0 .../Model/ConnectorEngineInterface.php | 0 src/{JobsBundle => }/Model/ContextDefinition.php | 0 .../Model/ContextDefinitionInterface.php | 0 src/{JobsBundle => }/Model/LogEntry.php | 0 src/{JobsBundle => }/Model/LogEntryInterface.php | 0 src/{JobsBundle => }/Normalizer/EntityNormalizer.php | 0 .../Registry/ConnectorDefinitionRegistry.php | 0 .../Registry/ConnectorDefinitionRegistryInterface.php | 0 .../Registry/ContextItemsResolverRegistry.php | 0 .../ContextItemsResolverRegistryInterface.php | 0 .../Repository/ConnectorContextItemRepository.php | 0 .../ConnectorContextItemRepositoryInterface.php | 0 .../Repository/ConnectorEngineRepository.php | 0 .../Repository/ConnectorEngineRepositoryInterface.php | 0 .../Repository/ContextDefinitionRepository.php | 0 .../ContextDefinitionRepositoryInterface.php | 0 src/{JobsBundle => }/Repository/LogRepository.php | 0 .../Repository/LogRepositoryInterface.php | 0 .../Seo/Extractor/GoogleForJobsExtractor.php | 0 .../Seo/ResourceProcessor/GoogleJobsProcessor.php | 0 src/{JobsBundle => }/Service/EnvironmentService.php | 0 .../Service/EnvironmentServiceInterface.php | 0 src/{JobsBundle => }/Service/LinkGeneratorService.php | 0 .../Service/LinkGeneratorServiceInterface.php | 0 src/{JobsBundle => }/Tool/FeedIdHelper.php | 0 src/{JobsBundle => }/Tool/Install.php | 2 +- .../ItemTransformerDefinitionInterface.php | 0 .../Transformer/ItemTransformerInterface.php | 0 .../Resources/views => templates}/layout.html.twig | 0 .../translations => translations}/admin.de.yaml | 0 .../translations => translations}/admin.en.yaml | 0 111 files changed, 12 insertions(+), 10 deletions(-) rename {src/JobsBundle/Resources/config => config}/doctrine/model/ConnectorContextItem.orm.yml (100%) rename {src/JobsBundle/Resources/config => config}/doctrine/model/ConnectorEngine.orm.yml (100%) rename {src/JobsBundle/Resources/config => config}/doctrine/model/ContextDefinition.orm.yml (100%) rename {src/JobsBundle/Resources/config => config}/doctrine/model/LogEntry.orm.yml (100%) rename {src/JobsBundle/Resources/config => config}/external/seo.yaml (100%) rename {src/JobsBundle/Resources => config}/install/sql/install.sql (100%) rename {src/JobsBundle/Resources => config}/install/translations/admin.csv (100%) rename {src/JobsBundle/Resources/config => config}/pimcore/config.yaml (100%) rename {src/JobsBundle/Resources/config => config}/pimcore/routing.yaml (100%) rename {src/JobsBundle/Resources/config => config}/serialization/ConnectorContextItem.yaml (100%) rename {src/JobsBundle/Resources/config => config}/serialization/ConnectorEngine.yaml (100%) rename {src/JobsBundle/Resources/config => config}/serialization/ContextDefinition.yaml (100%) rename {src/JobsBundle/Resources/config => config}/services.yaml (100%) rename {src/JobsBundle/Resources/config => config}/services/connector_definition.yaml (100%) rename {src/JobsBundle/Resources/config => config}/services/context.yaml (100%) rename {src/JobsBundle/Resources/config => config}/services/controller.yaml (79%) rename {src/JobsBundle/Resources/config => config}/services/install.yaml (100%) rename {src/JobsBundle/Resources/config => config}/services/maintenance.yaml (100%) rename {src/JobsBundle/Resources/config => config}/services/manager.yaml (100%) rename {src/JobsBundle/Resources/config => config}/services/registry.yaml (100%) rename {src/JobsBundle/Resources/config => config}/services/repository.yaml (100%) rename {src/JobsBundle/Resources/config => config}/services/services.yaml (100%) rename {src/JobsBundle/Resources/public => public}/css/admin.css (100%) rename {src/JobsBundle/Resources/public => public}/img/jobs_connector_options.svg (100%) rename {src/JobsBundle/Resources/public => public}/img/jobs_icon_white.svg (100%) rename {src/JobsBundle/Resources/public => public}/js/connector/abstractConnector.js (100%) rename {src/JobsBundle/Resources/public => public}/js/connector/facebook.js (100%) rename {src/JobsBundle/Resources/public => public}/js/connector/google.js (100%) rename {src/JobsBundle/Resources/public => public}/js/coreExtension/data/jobConnectorContext.js (100%) rename {src/JobsBundle/Resources/public => public}/js/coreExtension/tags/jobConnectorContext.js (100%) rename {src/JobsBundle/Resources/public => public}/js/plugin.js (100%) rename {src/JobsBundle/Resources/public => public}/js/settingsPanel.js (100%) rename src/{JobsBundle => }/Connector/ConnectorDefinitionInterface.php (100%) rename src/{JobsBundle => }/Connector/ConnectorEngineConfigurationInterface.php (100%) rename src/{JobsBundle => }/Connector/ConnectorService.php (100%) rename src/{JobsBundle => }/Connector/ConnectorServiceInterface.php (100%) rename src/{JobsBundle => }/Connector/Facebook/ConnectorDefinition.php (100%) rename src/{JobsBundle => }/Connector/Facebook/EngineConfiguration.php (100%) rename src/{JobsBundle => }/Connector/Facebook/FeedGenerator.php (100%) rename src/{JobsBundle => }/Connector/Facebook/FeedTransformerDefinition.php (100%) rename src/{JobsBundle => }/Connector/Facebook/ItemTransformerDefinition.php (100%) rename src/{JobsBundle => }/Connector/Google/ConnectorDefinition.php (100%) rename src/{JobsBundle => }/Connector/Google/FeedGenerator.php (100%) rename src/{JobsBundle => }/Connector/Google/ItemTransformerDefinition.php (100%) rename src/{JobsBundle => }/Context/ContextService.php (100%) rename src/{JobsBundle => }/Context/ContextServiceInterface.php (100%) rename src/{JobsBundle => }/Context/ResolvedItem.php (100%) rename src/{JobsBundle => }/Context/ResolvedItemInterface.php (100%) rename src/{JobsBundle => }/Context/Resolver/ContextItemsResolverInterface.php (100%) rename src/{JobsBundle => }/Context/Resolver/DynamicRouteRequestResolver.php (100%) rename src/{JobsBundle => }/Context/Resolver/FeedResolver.php (100%) rename src/{JobsBundle => }/Context/Resolver/PimcoreObjectResolver.php (100%) rename src/{JobsBundle => }/Context/Resolver/SeoQueueResolver.php (100%) rename src/{JobsBundle => }/Controller/Admin/LogController.php (100%) rename src/{JobsBundle => }/Controller/Admin/SettingsController.php (100%) rename src/{JobsBundle => }/Controller/FacebookController.php (100%) rename src/{JobsBundle => }/Controller/ProviderController.php (100%) rename src/{JobsBundle => }/CoreExtension/JobConnectorContext.php (100%) rename src/{JobsBundle => }/DependencyInjection/Compiler/ConnectorDefinitionPass.php (100%) rename src/{JobsBundle => }/DependencyInjection/Compiler/ContextItemsResolverPass.php (100%) rename src/{JobsBundle => }/DependencyInjection/Configuration.php (100%) rename src/{JobsBundle => }/DependencyInjection/JobsExtension.php (99%) rename src/{JobsBundle => }/EventListener/Admin/AssetListener.php (100%) rename src/{JobsBundle => }/EventListener/Maintenance/CleanUpLogsTask.php (100%) rename src/{JobsBundle => }/Feed/FeedGeneratorInterface.php (100%) rename src/{JobsBundle => }/JobsBundle.php (90%) rename src/{JobsBundle => }/Manager/ConnectorContextManager.php (100%) rename src/{JobsBundle => }/Manager/ConnectorContextManagerInterface.php (100%) rename src/{JobsBundle => }/Manager/ConnectorManager.php (100%) rename src/{JobsBundle => }/Manager/ConnectorManagerInterface.php (100%) rename src/{JobsBundle => }/Manager/ContextDefinitionManager.php (100%) rename src/{JobsBundle => }/Manager/ContextDefinitionManagerInterface.php (100%) rename src/{JobsBundle => }/Manager/LogManager.php (100%) rename src/{JobsBundle => }/Manager/LogManagerInterface.php (100%) rename src/{JobsBundle => }/Migrations/.gitkeep (100%) rename src/{JobsBundle => }/Model/ConnectorContextItem.php (100%) rename src/{JobsBundle => }/Model/ConnectorContextItemInterface.php (100%) rename src/{JobsBundle => }/Model/ConnectorEngine.php (100%) rename src/{JobsBundle => }/Model/ConnectorEngineInterface.php (100%) rename src/{JobsBundle => }/Model/ContextDefinition.php (100%) rename src/{JobsBundle => }/Model/ContextDefinitionInterface.php (100%) rename src/{JobsBundle => }/Model/LogEntry.php (100%) rename src/{JobsBundle => }/Model/LogEntryInterface.php (100%) rename src/{JobsBundle => }/Normalizer/EntityNormalizer.php (100%) rename src/{JobsBundle => }/Registry/ConnectorDefinitionRegistry.php (100%) rename src/{JobsBundle => }/Registry/ConnectorDefinitionRegistryInterface.php (100%) rename src/{JobsBundle => }/Registry/ContextItemsResolverRegistry.php (100%) rename src/{JobsBundle => }/Registry/ContextItemsResolverRegistryInterface.php (100%) rename src/{JobsBundle => }/Repository/ConnectorContextItemRepository.php (100%) rename src/{JobsBundle => }/Repository/ConnectorContextItemRepositoryInterface.php (100%) rename src/{JobsBundle => }/Repository/ConnectorEngineRepository.php (100%) rename src/{JobsBundle => }/Repository/ConnectorEngineRepositoryInterface.php (100%) rename src/{JobsBundle => }/Repository/ContextDefinitionRepository.php (100%) rename src/{JobsBundle => }/Repository/ContextDefinitionRepositoryInterface.php (100%) rename src/{JobsBundle => }/Repository/LogRepository.php (100%) rename src/{JobsBundle => }/Repository/LogRepositoryInterface.php (100%) rename src/{JobsBundle => }/Seo/Extractor/GoogleForJobsExtractor.php (100%) rename src/{JobsBundle => }/Seo/ResourceProcessor/GoogleJobsProcessor.php (100%) rename src/{JobsBundle => }/Service/EnvironmentService.php (100%) rename src/{JobsBundle => }/Service/EnvironmentServiceInterface.php (100%) rename src/{JobsBundle => }/Service/LinkGeneratorService.php (100%) rename src/{JobsBundle => }/Service/LinkGeneratorServiceInterface.php (100%) rename src/{JobsBundle => }/Tool/FeedIdHelper.php (100%) rename src/{JobsBundle => }/Tool/Install.php (91%) rename src/{JobsBundle => }/Transformer/ItemTransformerDefinitionInterface.php (100%) rename src/{JobsBundle => }/Transformer/ItemTransformerInterface.php (100%) rename {src/JobsBundle/Resources/views => templates}/layout.html.twig (100%) rename {src/JobsBundle/Resources/translations => translations}/admin.de.yaml (100%) rename {src/JobsBundle/Resources/translations => translations}/admin.en.yaml (100%) diff --git a/UPGRADE.md b/UPGRADE.md index 2547d08..ab0487f 100644 --- a/UPGRADE.md +++ b/UPGRADE.md @@ -3,7 +3,8 @@ ## Migrating from Version 2.x to Version 3.0.0 ### Global Changes -TBD +- Recommended folder structure by symfony adopted + *** JobsBundle 2.x Upgrade Notes: https://github.com/dachcom-digital/pimcore-jobs/blob/2.x/UPGRADE.md diff --git a/composer.json b/composer.json index 5e5e772..66977db 100755 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ ], "autoload": { "psr-4": { - "JobsBundle\\": "src/JobsBundle" + "JobsBundle\\": "src/" } }, "autoload-dev": { diff --git a/src/JobsBundle/Resources/config/doctrine/model/ConnectorContextItem.orm.yml b/config/doctrine/model/ConnectorContextItem.orm.yml similarity index 100% rename from src/JobsBundle/Resources/config/doctrine/model/ConnectorContextItem.orm.yml rename to config/doctrine/model/ConnectorContextItem.orm.yml diff --git a/src/JobsBundle/Resources/config/doctrine/model/ConnectorEngine.orm.yml b/config/doctrine/model/ConnectorEngine.orm.yml similarity index 100% rename from src/JobsBundle/Resources/config/doctrine/model/ConnectorEngine.orm.yml rename to config/doctrine/model/ConnectorEngine.orm.yml diff --git a/src/JobsBundle/Resources/config/doctrine/model/ContextDefinition.orm.yml b/config/doctrine/model/ContextDefinition.orm.yml similarity index 100% rename from src/JobsBundle/Resources/config/doctrine/model/ContextDefinition.orm.yml rename to config/doctrine/model/ContextDefinition.orm.yml diff --git a/src/JobsBundle/Resources/config/doctrine/model/LogEntry.orm.yml b/config/doctrine/model/LogEntry.orm.yml similarity index 100% rename from src/JobsBundle/Resources/config/doctrine/model/LogEntry.orm.yml rename to config/doctrine/model/LogEntry.orm.yml diff --git a/src/JobsBundle/Resources/config/external/seo.yaml b/config/external/seo.yaml similarity index 100% rename from src/JobsBundle/Resources/config/external/seo.yaml rename to config/external/seo.yaml diff --git a/src/JobsBundle/Resources/install/sql/install.sql b/config/install/sql/install.sql similarity index 100% rename from src/JobsBundle/Resources/install/sql/install.sql rename to config/install/sql/install.sql diff --git a/src/JobsBundle/Resources/install/translations/admin.csv b/config/install/translations/admin.csv similarity index 100% rename from src/JobsBundle/Resources/install/translations/admin.csv rename to config/install/translations/admin.csv diff --git a/src/JobsBundle/Resources/config/pimcore/config.yaml b/config/pimcore/config.yaml similarity index 100% rename from src/JobsBundle/Resources/config/pimcore/config.yaml rename to config/pimcore/config.yaml diff --git a/src/JobsBundle/Resources/config/pimcore/routing.yaml b/config/pimcore/routing.yaml similarity index 100% rename from src/JobsBundle/Resources/config/pimcore/routing.yaml rename to config/pimcore/routing.yaml diff --git a/src/JobsBundle/Resources/config/serialization/ConnectorContextItem.yaml b/config/serialization/ConnectorContextItem.yaml similarity index 100% rename from src/JobsBundle/Resources/config/serialization/ConnectorContextItem.yaml rename to config/serialization/ConnectorContextItem.yaml diff --git a/src/JobsBundle/Resources/config/serialization/ConnectorEngine.yaml b/config/serialization/ConnectorEngine.yaml similarity index 100% rename from src/JobsBundle/Resources/config/serialization/ConnectorEngine.yaml rename to config/serialization/ConnectorEngine.yaml diff --git a/src/JobsBundle/Resources/config/serialization/ContextDefinition.yaml b/config/serialization/ContextDefinition.yaml similarity index 100% rename from src/JobsBundle/Resources/config/serialization/ContextDefinition.yaml rename to config/serialization/ContextDefinition.yaml diff --git a/src/JobsBundle/Resources/config/services.yaml b/config/services.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services.yaml rename to config/services.yaml diff --git a/src/JobsBundle/Resources/config/services/connector_definition.yaml b/config/services/connector_definition.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/connector_definition.yaml rename to config/services/connector_definition.yaml diff --git a/src/JobsBundle/Resources/config/services/context.yaml b/config/services/context.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/context.yaml rename to config/services/context.yaml diff --git a/src/JobsBundle/Resources/config/services/controller.yaml b/config/services/controller.yaml similarity index 79% rename from src/JobsBundle/Resources/config/services/controller.yaml rename to config/services/controller.yaml index 8a286c8..b871d2d 100644 --- a/src/JobsBundle/Resources/config/services/controller.yaml +++ b/config/services/controller.yaml @@ -1,7 +1,7 @@ services: JobsBundle\Controller\: - resource: '../../Controller' + resource: '../../src/Controller' public: true autowire: true autoconfigure: true diff --git a/src/JobsBundle/Resources/config/services/install.yaml b/config/services/install.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/install.yaml rename to config/services/install.yaml diff --git a/src/JobsBundle/Resources/config/services/maintenance.yaml b/config/services/maintenance.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/maintenance.yaml rename to config/services/maintenance.yaml diff --git a/src/JobsBundle/Resources/config/services/manager.yaml b/config/services/manager.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/manager.yaml rename to config/services/manager.yaml diff --git a/src/JobsBundle/Resources/config/services/registry.yaml b/config/services/registry.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/registry.yaml rename to config/services/registry.yaml diff --git a/src/JobsBundle/Resources/config/services/repository.yaml b/config/services/repository.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/repository.yaml rename to config/services/repository.yaml diff --git a/src/JobsBundle/Resources/config/services/services.yaml b/config/services/services.yaml similarity index 100% rename from src/JobsBundle/Resources/config/services/services.yaml rename to config/services/services.yaml diff --git a/src/JobsBundle/Resources/public/css/admin.css b/public/css/admin.css similarity index 100% rename from src/JobsBundle/Resources/public/css/admin.css rename to public/css/admin.css diff --git a/src/JobsBundle/Resources/public/img/jobs_connector_options.svg b/public/img/jobs_connector_options.svg similarity index 100% rename from src/JobsBundle/Resources/public/img/jobs_connector_options.svg rename to public/img/jobs_connector_options.svg diff --git a/src/JobsBundle/Resources/public/img/jobs_icon_white.svg b/public/img/jobs_icon_white.svg similarity index 100% rename from src/JobsBundle/Resources/public/img/jobs_icon_white.svg rename to public/img/jobs_icon_white.svg diff --git a/src/JobsBundle/Resources/public/js/connector/abstractConnector.js b/public/js/connector/abstractConnector.js similarity index 100% rename from src/JobsBundle/Resources/public/js/connector/abstractConnector.js rename to public/js/connector/abstractConnector.js diff --git a/src/JobsBundle/Resources/public/js/connector/facebook.js b/public/js/connector/facebook.js similarity index 100% rename from src/JobsBundle/Resources/public/js/connector/facebook.js rename to public/js/connector/facebook.js diff --git a/src/JobsBundle/Resources/public/js/connector/google.js b/public/js/connector/google.js similarity index 100% rename from src/JobsBundle/Resources/public/js/connector/google.js rename to public/js/connector/google.js diff --git a/src/JobsBundle/Resources/public/js/coreExtension/data/jobConnectorContext.js b/public/js/coreExtension/data/jobConnectorContext.js similarity index 100% rename from src/JobsBundle/Resources/public/js/coreExtension/data/jobConnectorContext.js rename to public/js/coreExtension/data/jobConnectorContext.js diff --git a/src/JobsBundle/Resources/public/js/coreExtension/tags/jobConnectorContext.js b/public/js/coreExtension/tags/jobConnectorContext.js similarity index 100% rename from src/JobsBundle/Resources/public/js/coreExtension/tags/jobConnectorContext.js rename to public/js/coreExtension/tags/jobConnectorContext.js diff --git a/src/JobsBundle/Resources/public/js/plugin.js b/public/js/plugin.js similarity index 100% rename from src/JobsBundle/Resources/public/js/plugin.js rename to public/js/plugin.js diff --git a/src/JobsBundle/Resources/public/js/settingsPanel.js b/public/js/settingsPanel.js similarity index 100% rename from src/JobsBundle/Resources/public/js/settingsPanel.js rename to public/js/settingsPanel.js diff --git a/src/JobsBundle/Connector/ConnectorDefinitionInterface.php b/src/Connector/ConnectorDefinitionInterface.php similarity index 100% rename from src/JobsBundle/Connector/ConnectorDefinitionInterface.php rename to src/Connector/ConnectorDefinitionInterface.php diff --git a/src/JobsBundle/Connector/ConnectorEngineConfigurationInterface.php b/src/Connector/ConnectorEngineConfigurationInterface.php similarity index 100% rename from src/JobsBundle/Connector/ConnectorEngineConfigurationInterface.php rename to src/Connector/ConnectorEngineConfigurationInterface.php diff --git a/src/JobsBundle/Connector/ConnectorService.php b/src/Connector/ConnectorService.php similarity index 100% rename from src/JobsBundle/Connector/ConnectorService.php rename to src/Connector/ConnectorService.php diff --git a/src/JobsBundle/Connector/ConnectorServiceInterface.php b/src/Connector/ConnectorServiceInterface.php similarity index 100% rename from src/JobsBundle/Connector/ConnectorServiceInterface.php rename to src/Connector/ConnectorServiceInterface.php diff --git a/src/JobsBundle/Connector/Facebook/ConnectorDefinition.php b/src/Connector/Facebook/ConnectorDefinition.php similarity index 100% rename from src/JobsBundle/Connector/Facebook/ConnectorDefinition.php rename to src/Connector/Facebook/ConnectorDefinition.php diff --git a/src/JobsBundle/Connector/Facebook/EngineConfiguration.php b/src/Connector/Facebook/EngineConfiguration.php similarity index 100% rename from src/JobsBundle/Connector/Facebook/EngineConfiguration.php rename to src/Connector/Facebook/EngineConfiguration.php diff --git a/src/JobsBundle/Connector/Facebook/FeedGenerator.php b/src/Connector/Facebook/FeedGenerator.php similarity index 100% rename from src/JobsBundle/Connector/Facebook/FeedGenerator.php rename to src/Connector/Facebook/FeedGenerator.php diff --git a/src/JobsBundle/Connector/Facebook/FeedTransformerDefinition.php b/src/Connector/Facebook/FeedTransformerDefinition.php similarity index 100% rename from src/JobsBundle/Connector/Facebook/FeedTransformerDefinition.php rename to src/Connector/Facebook/FeedTransformerDefinition.php diff --git a/src/JobsBundle/Connector/Facebook/ItemTransformerDefinition.php b/src/Connector/Facebook/ItemTransformerDefinition.php similarity index 100% rename from src/JobsBundle/Connector/Facebook/ItemTransformerDefinition.php rename to src/Connector/Facebook/ItemTransformerDefinition.php diff --git a/src/JobsBundle/Connector/Google/ConnectorDefinition.php b/src/Connector/Google/ConnectorDefinition.php similarity index 100% rename from src/JobsBundle/Connector/Google/ConnectorDefinition.php rename to src/Connector/Google/ConnectorDefinition.php diff --git a/src/JobsBundle/Connector/Google/FeedGenerator.php b/src/Connector/Google/FeedGenerator.php similarity index 100% rename from src/JobsBundle/Connector/Google/FeedGenerator.php rename to src/Connector/Google/FeedGenerator.php diff --git a/src/JobsBundle/Connector/Google/ItemTransformerDefinition.php b/src/Connector/Google/ItemTransformerDefinition.php similarity index 100% rename from src/JobsBundle/Connector/Google/ItemTransformerDefinition.php rename to src/Connector/Google/ItemTransformerDefinition.php diff --git a/src/JobsBundle/Context/ContextService.php b/src/Context/ContextService.php similarity index 100% rename from src/JobsBundle/Context/ContextService.php rename to src/Context/ContextService.php diff --git a/src/JobsBundle/Context/ContextServiceInterface.php b/src/Context/ContextServiceInterface.php similarity index 100% rename from src/JobsBundle/Context/ContextServiceInterface.php rename to src/Context/ContextServiceInterface.php diff --git a/src/JobsBundle/Context/ResolvedItem.php b/src/Context/ResolvedItem.php similarity index 100% rename from src/JobsBundle/Context/ResolvedItem.php rename to src/Context/ResolvedItem.php diff --git a/src/JobsBundle/Context/ResolvedItemInterface.php b/src/Context/ResolvedItemInterface.php similarity index 100% rename from src/JobsBundle/Context/ResolvedItemInterface.php rename to src/Context/ResolvedItemInterface.php diff --git a/src/JobsBundle/Context/Resolver/ContextItemsResolverInterface.php b/src/Context/Resolver/ContextItemsResolverInterface.php similarity index 100% rename from src/JobsBundle/Context/Resolver/ContextItemsResolverInterface.php rename to src/Context/Resolver/ContextItemsResolverInterface.php diff --git a/src/JobsBundle/Context/Resolver/DynamicRouteRequestResolver.php b/src/Context/Resolver/DynamicRouteRequestResolver.php similarity index 100% rename from src/JobsBundle/Context/Resolver/DynamicRouteRequestResolver.php rename to src/Context/Resolver/DynamicRouteRequestResolver.php diff --git a/src/JobsBundle/Context/Resolver/FeedResolver.php b/src/Context/Resolver/FeedResolver.php similarity index 100% rename from src/JobsBundle/Context/Resolver/FeedResolver.php rename to src/Context/Resolver/FeedResolver.php diff --git a/src/JobsBundle/Context/Resolver/PimcoreObjectResolver.php b/src/Context/Resolver/PimcoreObjectResolver.php similarity index 100% rename from src/JobsBundle/Context/Resolver/PimcoreObjectResolver.php rename to src/Context/Resolver/PimcoreObjectResolver.php diff --git a/src/JobsBundle/Context/Resolver/SeoQueueResolver.php b/src/Context/Resolver/SeoQueueResolver.php similarity index 100% rename from src/JobsBundle/Context/Resolver/SeoQueueResolver.php rename to src/Context/Resolver/SeoQueueResolver.php diff --git a/src/JobsBundle/Controller/Admin/LogController.php b/src/Controller/Admin/LogController.php similarity index 100% rename from src/JobsBundle/Controller/Admin/LogController.php rename to src/Controller/Admin/LogController.php diff --git a/src/JobsBundle/Controller/Admin/SettingsController.php b/src/Controller/Admin/SettingsController.php similarity index 100% rename from src/JobsBundle/Controller/Admin/SettingsController.php rename to src/Controller/Admin/SettingsController.php diff --git a/src/JobsBundle/Controller/FacebookController.php b/src/Controller/FacebookController.php similarity index 100% rename from src/JobsBundle/Controller/FacebookController.php rename to src/Controller/FacebookController.php diff --git a/src/JobsBundle/Controller/ProviderController.php b/src/Controller/ProviderController.php similarity index 100% rename from src/JobsBundle/Controller/ProviderController.php rename to src/Controller/ProviderController.php diff --git a/src/JobsBundle/CoreExtension/JobConnectorContext.php b/src/CoreExtension/JobConnectorContext.php similarity index 100% rename from src/JobsBundle/CoreExtension/JobConnectorContext.php rename to src/CoreExtension/JobConnectorContext.php diff --git a/src/JobsBundle/DependencyInjection/Compiler/ConnectorDefinitionPass.php b/src/DependencyInjection/Compiler/ConnectorDefinitionPass.php similarity index 100% rename from src/JobsBundle/DependencyInjection/Compiler/ConnectorDefinitionPass.php rename to src/DependencyInjection/Compiler/ConnectorDefinitionPass.php diff --git a/src/JobsBundle/DependencyInjection/Compiler/ContextItemsResolverPass.php b/src/DependencyInjection/Compiler/ContextItemsResolverPass.php similarity index 100% rename from src/JobsBundle/DependencyInjection/Compiler/ContextItemsResolverPass.php rename to src/DependencyInjection/Compiler/ContextItemsResolverPass.php diff --git a/src/JobsBundle/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php similarity index 100% rename from src/JobsBundle/DependencyInjection/Configuration.php rename to src/DependencyInjection/Configuration.php diff --git a/src/JobsBundle/DependencyInjection/JobsExtension.php b/src/DependencyInjection/JobsExtension.php similarity index 99% rename from src/JobsBundle/DependencyInjection/JobsExtension.php rename to src/DependencyInjection/JobsExtension.php index 57e7bca..5619bc9 100644 --- a/src/JobsBundle/DependencyInjection/JobsExtension.php +++ b/src/DependencyInjection/JobsExtension.php @@ -15,7 +15,7 @@ public function load(array $configs, ContainerBuilder $container): void $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); - $loader = new YamlFileLoader($container, new FileLocator([__DIR__ . '/../Resources/config'])); + $loader = new YamlFileLoader($container, new FileLocator([__DIR__ . '/../../config'])); $loader->load('services.yaml'); $persistenceConfig = $config['persistence']['doctrine']; diff --git a/src/JobsBundle/EventListener/Admin/AssetListener.php b/src/EventListener/Admin/AssetListener.php similarity index 100% rename from src/JobsBundle/EventListener/Admin/AssetListener.php rename to src/EventListener/Admin/AssetListener.php diff --git a/src/JobsBundle/EventListener/Maintenance/CleanUpLogsTask.php b/src/EventListener/Maintenance/CleanUpLogsTask.php similarity index 100% rename from src/JobsBundle/EventListener/Maintenance/CleanUpLogsTask.php rename to src/EventListener/Maintenance/CleanUpLogsTask.php diff --git a/src/JobsBundle/Feed/FeedGeneratorInterface.php b/src/Feed/FeedGeneratorInterface.php similarity index 100% rename from src/JobsBundle/Feed/FeedGeneratorInterface.php rename to src/Feed/FeedGeneratorInterface.php diff --git a/src/JobsBundle/JobsBundle.php b/src/JobsBundle.php similarity index 90% rename from src/JobsBundle/JobsBundle.php rename to src/JobsBundle.php index 3576eb9..7356321 100644 --- a/src/JobsBundle/JobsBundle.php +++ b/src/JobsBundle.php @@ -29,6 +29,11 @@ public function build(ContainerBuilder $container): void $container->addCompilerPass(new ContextItemsResolverPass()); } + public function getPath(): string + { + return \dirname(__DIR__); + } + protected function getComposerPackageName(): string { return self::PACKAGE_NAME; @@ -52,10 +57,6 @@ protected function getNamespaceName(): string protected function getNameSpacePath(): string { - return sprintf( - '%s/Resources/config/doctrine/%s', - $this->getPath(), - 'model' - ); + return realpath(sprintf('%s/config/doctrine/%s', $this->getPath(), 'model')); } } diff --git a/src/JobsBundle/Manager/ConnectorContextManager.php b/src/Manager/ConnectorContextManager.php similarity index 100% rename from src/JobsBundle/Manager/ConnectorContextManager.php rename to src/Manager/ConnectorContextManager.php diff --git a/src/JobsBundle/Manager/ConnectorContextManagerInterface.php b/src/Manager/ConnectorContextManagerInterface.php similarity index 100% rename from src/JobsBundle/Manager/ConnectorContextManagerInterface.php rename to src/Manager/ConnectorContextManagerInterface.php diff --git a/src/JobsBundle/Manager/ConnectorManager.php b/src/Manager/ConnectorManager.php similarity index 100% rename from src/JobsBundle/Manager/ConnectorManager.php rename to src/Manager/ConnectorManager.php diff --git a/src/JobsBundle/Manager/ConnectorManagerInterface.php b/src/Manager/ConnectorManagerInterface.php similarity index 100% rename from src/JobsBundle/Manager/ConnectorManagerInterface.php rename to src/Manager/ConnectorManagerInterface.php diff --git a/src/JobsBundle/Manager/ContextDefinitionManager.php b/src/Manager/ContextDefinitionManager.php similarity index 100% rename from src/JobsBundle/Manager/ContextDefinitionManager.php rename to src/Manager/ContextDefinitionManager.php diff --git a/src/JobsBundle/Manager/ContextDefinitionManagerInterface.php b/src/Manager/ContextDefinitionManagerInterface.php similarity index 100% rename from src/JobsBundle/Manager/ContextDefinitionManagerInterface.php rename to src/Manager/ContextDefinitionManagerInterface.php diff --git a/src/JobsBundle/Manager/LogManager.php b/src/Manager/LogManager.php similarity index 100% rename from src/JobsBundle/Manager/LogManager.php rename to src/Manager/LogManager.php diff --git a/src/JobsBundle/Manager/LogManagerInterface.php b/src/Manager/LogManagerInterface.php similarity index 100% rename from src/JobsBundle/Manager/LogManagerInterface.php rename to src/Manager/LogManagerInterface.php diff --git a/src/JobsBundle/Migrations/.gitkeep b/src/Migrations/.gitkeep similarity index 100% rename from src/JobsBundle/Migrations/.gitkeep rename to src/Migrations/.gitkeep diff --git a/src/JobsBundle/Model/ConnectorContextItem.php b/src/Model/ConnectorContextItem.php similarity index 100% rename from src/JobsBundle/Model/ConnectorContextItem.php rename to src/Model/ConnectorContextItem.php diff --git a/src/JobsBundle/Model/ConnectorContextItemInterface.php b/src/Model/ConnectorContextItemInterface.php similarity index 100% rename from src/JobsBundle/Model/ConnectorContextItemInterface.php rename to src/Model/ConnectorContextItemInterface.php diff --git a/src/JobsBundle/Model/ConnectorEngine.php b/src/Model/ConnectorEngine.php similarity index 100% rename from src/JobsBundle/Model/ConnectorEngine.php rename to src/Model/ConnectorEngine.php diff --git a/src/JobsBundle/Model/ConnectorEngineInterface.php b/src/Model/ConnectorEngineInterface.php similarity index 100% rename from src/JobsBundle/Model/ConnectorEngineInterface.php rename to src/Model/ConnectorEngineInterface.php diff --git a/src/JobsBundle/Model/ContextDefinition.php b/src/Model/ContextDefinition.php similarity index 100% rename from src/JobsBundle/Model/ContextDefinition.php rename to src/Model/ContextDefinition.php diff --git a/src/JobsBundle/Model/ContextDefinitionInterface.php b/src/Model/ContextDefinitionInterface.php similarity index 100% rename from src/JobsBundle/Model/ContextDefinitionInterface.php rename to src/Model/ContextDefinitionInterface.php diff --git a/src/JobsBundle/Model/LogEntry.php b/src/Model/LogEntry.php similarity index 100% rename from src/JobsBundle/Model/LogEntry.php rename to src/Model/LogEntry.php diff --git a/src/JobsBundle/Model/LogEntryInterface.php b/src/Model/LogEntryInterface.php similarity index 100% rename from src/JobsBundle/Model/LogEntryInterface.php rename to src/Model/LogEntryInterface.php diff --git a/src/JobsBundle/Normalizer/EntityNormalizer.php b/src/Normalizer/EntityNormalizer.php similarity index 100% rename from src/JobsBundle/Normalizer/EntityNormalizer.php rename to src/Normalizer/EntityNormalizer.php diff --git a/src/JobsBundle/Registry/ConnectorDefinitionRegistry.php b/src/Registry/ConnectorDefinitionRegistry.php similarity index 100% rename from src/JobsBundle/Registry/ConnectorDefinitionRegistry.php rename to src/Registry/ConnectorDefinitionRegistry.php diff --git a/src/JobsBundle/Registry/ConnectorDefinitionRegistryInterface.php b/src/Registry/ConnectorDefinitionRegistryInterface.php similarity index 100% rename from src/JobsBundle/Registry/ConnectorDefinitionRegistryInterface.php rename to src/Registry/ConnectorDefinitionRegistryInterface.php diff --git a/src/JobsBundle/Registry/ContextItemsResolverRegistry.php b/src/Registry/ContextItemsResolverRegistry.php similarity index 100% rename from src/JobsBundle/Registry/ContextItemsResolverRegistry.php rename to src/Registry/ContextItemsResolverRegistry.php diff --git a/src/JobsBundle/Registry/ContextItemsResolverRegistryInterface.php b/src/Registry/ContextItemsResolverRegistryInterface.php similarity index 100% rename from src/JobsBundle/Registry/ContextItemsResolverRegistryInterface.php rename to src/Registry/ContextItemsResolverRegistryInterface.php diff --git a/src/JobsBundle/Repository/ConnectorContextItemRepository.php b/src/Repository/ConnectorContextItemRepository.php similarity index 100% rename from src/JobsBundle/Repository/ConnectorContextItemRepository.php rename to src/Repository/ConnectorContextItemRepository.php diff --git a/src/JobsBundle/Repository/ConnectorContextItemRepositoryInterface.php b/src/Repository/ConnectorContextItemRepositoryInterface.php similarity index 100% rename from src/JobsBundle/Repository/ConnectorContextItemRepositoryInterface.php rename to src/Repository/ConnectorContextItemRepositoryInterface.php diff --git a/src/JobsBundle/Repository/ConnectorEngineRepository.php b/src/Repository/ConnectorEngineRepository.php similarity index 100% rename from src/JobsBundle/Repository/ConnectorEngineRepository.php rename to src/Repository/ConnectorEngineRepository.php diff --git a/src/JobsBundle/Repository/ConnectorEngineRepositoryInterface.php b/src/Repository/ConnectorEngineRepositoryInterface.php similarity index 100% rename from src/JobsBundle/Repository/ConnectorEngineRepositoryInterface.php rename to src/Repository/ConnectorEngineRepositoryInterface.php diff --git a/src/JobsBundle/Repository/ContextDefinitionRepository.php b/src/Repository/ContextDefinitionRepository.php similarity index 100% rename from src/JobsBundle/Repository/ContextDefinitionRepository.php rename to src/Repository/ContextDefinitionRepository.php diff --git a/src/JobsBundle/Repository/ContextDefinitionRepositoryInterface.php b/src/Repository/ContextDefinitionRepositoryInterface.php similarity index 100% rename from src/JobsBundle/Repository/ContextDefinitionRepositoryInterface.php rename to src/Repository/ContextDefinitionRepositoryInterface.php diff --git a/src/JobsBundle/Repository/LogRepository.php b/src/Repository/LogRepository.php similarity index 100% rename from src/JobsBundle/Repository/LogRepository.php rename to src/Repository/LogRepository.php diff --git a/src/JobsBundle/Repository/LogRepositoryInterface.php b/src/Repository/LogRepositoryInterface.php similarity index 100% rename from src/JobsBundle/Repository/LogRepositoryInterface.php rename to src/Repository/LogRepositoryInterface.php diff --git a/src/JobsBundle/Seo/Extractor/GoogleForJobsExtractor.php b/src/Seo/Extractor/GoogleForJobsExtractor.php similarity index 100% rename from src/JobsBundle/Seo/Extractor/GoogleForJobsExtractor.php rename to src/Seo/Extractor/GoogleForJobsExtractor.php diff --git a/src/JobsBundle/Seo/ResourceProcessor/GoogleJobsProcessor.php b/src/Seo/ResourceProcessor/GoogleJobsProcessor.php similarity index 100% rename from src/JobsBundle/Seo/ResourceProcessor/GoogleJobsProcessor.php rename to src/Seo/ResourceProcessor/GoogleJobsProcessor.php diff --git a/src/JobsBundle/Service/EnvironmentService.php b/src/Service/EnvironmentService.php similarity index 100% rename from src/JobsBundle/Service/EnvironmentService.php rename to src/Service/EnvironmentService.php diff --git a/src/JobsBundle/Service/EnvironmentServiceInterface.php b/src/Service/EnvironmentServiceInterface.php similarity index 100% rename from src/JobsBundle/Service/EnvironmentServiceInterface.php rename to src/Service/EnvironmentServiceInterface.php diff --git a/src/JobsBundle/Service/LinkGeneratorService.php b/src/Service/LinkGeneratorService.php similarity index 100% rename from src/JobsBundle/Service/LinkGeneratorService.php rename to src/Service/LinkGeneratorService.php diff --git a/src/JobsBundle/Service/LinkGeneratorServiceInterface.php b/src/Service/LinkGeneratorServiceInterface.php similarity index 100% rename from src/JobsBundle/Service/LinkGeneratorServiceInterface.php rename to src/Service/LinkGeneratorServiceInterface.php diff --git a/src/JobsBundle/Tool/FeedIdHelper.php b/src/Tool/FeedIdHelper.php similarity index 100% rename from src/JobsBundle/Tool/FeedIdHelper.php rename to src/Tool/FeedIdHelper.php diff --git a/src/JobsBundle/Tool/Install.php b/src/Tool/Install.php similarity index 91% rename from src/JobsBundle/Tool/Install.php rename to src/Tool/Install.php index b843d5b..6859dd4 100644 --- a/src/JobsBundle/Tool/Install.php +++ b/src/Tool/Install.php @@ -21,6 +21,6 @@ protected function installDbStructure(): void protected function getInstallSourcesPath(): string { - return __DIR__ . '/../Resources/install'; + return __DIR__ . '/../../config/install'; } } diff --git a/src/JobsBundle/Transformer/ItemTransformerDefinitionInterface.php b/src/Transformer/ItemTransformerDefinitionInterface.php similarity index 100% rename from src/JobsBundle/Transformer/ItemTransformerDefinitionInterface.php rename to src/Transformer/ItemTransformerDefinitionInterface.php diff --git a/src/JobsBundle/Transformer/ItemTransformerInterface.php b/src/Transformer/ItemTransformerInterface.php similarity index 100% rename from src/JobsBundle/Transformer/ItemTransformerInterface.php rename to src/Transformer/ItemTransformerInterface.php diff --git a/src/JobsBundle/Resources/views/layout.html.twig b/templates/layout.html.twig similarity index 100% rename from src/JobsBundle/Resources/views/layout.html.twig rename to templates/layout.html.twig diff --git a/src/JobsBundle/Resources/translations/admin.de.yaml b/translations/admin.de.yaml similarity index 100% rename from src/JobsBundle/Resources/translations/admin.de.yaml rename to translations/admin.de.yaml diff --git a/src/JobsBundle/Resources/translations/admin.en.yaml b/translations/admin.en.yaml similarity index 100% rename from src/JobsBundle/Resources/translations/admin.en.yaml rename to translations/admin.en.yaml From 52cb301cec4311954a48bd632b445f780d2459ff Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Fri, 4 Aug 2023 14:51:44 +0200 Subject: [PATCH 6/9] fix test paths --- .gitignore | 2 +- README.md | 2 +- docs/20_AvailableItemsResolver.md | 14 +++++++------- phpstan.neon | 2 +- tests/_etc/classes/TestClass.json | 8 ++++---- tests/_etc/config.yaml | 1 + 6 files changed, 15 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index 2c2f297..d4770f3 100644 --- a/.gitignore +++ b/.gitignore @@ -52,4 +52,4 @@ php-cgi.core /tests/_output/* /tests/_data/* !/tests/_data/.gitkeep -/tests/_support/_generated/* \ No newline at end of file +/tests/Support/_generated/* \ No newline at end of file diff --git a/README.md b/README.md index cabb7c7..8a1751e 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ This Bundle needs some preparation. Please check out the [Setup](docs/00_Setup.m - [Google For Jobs](./docs/Connectors/01_GoogleForJobs.md) - [Facebook Jobs](./docs/Connectors/02_FacebookJobs.md) - [Feeds](docs/11_Feeds.md) -- [Object Context](docs/12_ObjectContext.md) +- [Object Context](docs/12_ObjectContext.md)g - [Available Items Resolver](docs/20_AvailableItemsResolver.md) - [Custom Items Resolver](docs/21_CustomItemsResolver.md) (Expert) - [Logging](docs/22_Logging.md) diff --git a/docs/20_AvailableItemsResolver.md b/docs/20_AvailableItemsResolver.md index 4882e48..d8d84a1 100644 --- a/docs/20_AvailableItemsResolver.md +++ b/docs/20_AvailableItemsResolver.md @@ -4,13 +4,13 @@ After resolving them, they need to return an array with `ResolvedItem`. ## Dynamic Route Request Resolver -| Name | Description -|------|------------| -| `route_name` | Determinates, on which route the job object is available | -| `route_request_identifier` | Which request fragment owns the object identifier (For Example `/?id=123` would be `id` | -| `route_object_identifier` | Determinates, on which object attribute the request identifier should get applied on | -| `is_localized_field` | If true, the object fetcher will look up with `getByLocalizedfields` | -| `must_match_request_locale` | If true, the current request locale must match with the context definition locale | +| Name | Description | +|-----------------------------|-----------------------------------------------------------------------------------------| +| `route_name` | Determinates, on which route the job object is available | +| `route_request_identifier` | Which request fragment owns the object identifier (For Example `/?id=123` would be `id` | +| `route_object_identifier` | Determinates, on which object attribute the request identifier should get applied on | +| `is_localized_field` | If true, the object fetcher will look up with `getByLocalizedfields` | +| `must_match_request_locale` | If true, the current request locale must match with the context definition locale | ### Usage ````yaml diff --git a/phpstan.neon b/phpstan.neon index 26a096b..48b21ef 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -7,7 +7,7 @@ parameters: symfony: container_xml_path: %currentWorkingDirectory%/var/cache/test/TestKernelTestDebugContainer.xml constant_hassers: false - excludes_analyse: + excludePaths: # as long we don't install the dependencies :( - '*JobsBundle/Seo/Extractor/GoogleForJobsExtractor.php' - '*JobsBundle/Seo/ResourceProcessor/GoogleJobsProcessor.php' diff --git a/tests/_etc/classes/TestClass.json b/tests/_etc/classes/TestClass.json index 4b5217d..5294f7b 100644 --- a/tests/_etc/classes/TestClass.json +++ b/tests/_etc/classes/TestClass.json @@ -25,7 +25,7 @@ "bodyStyle": null, "datatype": "layout", "permissions": null, - "childs": [ + "children": [ { "fieldtype": "tabpanel", "border": false, @@ -41,7 +41,7 @@ "bodyStyle": "", "datatype": "layout", "permissions": null, - "childs": [ + "children": [ { "fieldtype": "panel", "labelWidth": 100, @@ -58,7 +58,7 @@ "bodyStyle": "", "datatype": "layout", "permissions": null, - "childs": [ + "children": [ { "fieldtype": "input", "width": null, @@ -106,7 +106,7 @@ "bodyStyle": "", "datatype": "layout", "permissions": null, - "childs": [ + "children": [ { "fieldtype": "jobConnectorContext", "height": null, diff --git a/tests/_etc/config.yaml b/tests/_etc/config.yaml index a892fd1..a6882c7 100644 --- a/tests/_etc/config.yaml +++ b/tests/_etc/config.yaml @@ -1,5 +1,6 @@ bundles: - { namespace: \Pimcore\Bundle\AdminBundle\PimcoreAdminBundle, priority: 60 } + - { namespace: \Pimcore\Bundle\SeoBundle\PimcoreSeoBundle, priority: 0, execute_installer: true } - { namespace: \JobsBundle\JobsBundle } setup_files: - { path: app/config.yaml, dest: ./config/ } From 85040c5493d70117d8571910334483d60de1f05b Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Fri, 4 Aug 2023 15:06:48 +0200 Subject: [PATCH 7/9] clean up --- README.md | 2 +- phpstan.neon | 4 ++-- src/Seo/Extractor/GoogleForJobsExtractor.php | 13 +++---------- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 8a1751e..cabb7c7 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ This Bundle needs some preparation. Please check out the [Setup](docs/00_Setup.m - [Google For Jobs](./docs/Connectors/01_GoogleForJobs.md) - [Facebook Jobs](./docs/Connectors/02_FacebookJobs.md) - [Feeds](docs/11_Feeds.md) -- [Object Context](docs/12_ObjectContext.md)g +- [Object Context](docs/12_ObjectContext.md) - [Available Items Resolver](docs/20_AvailableItemsResolver.md) - [Custom Items Resolver](docs/21_CustomItemsResolver.md) (Expert) - [Logging](docs/22_Logging.md) diff --git a/phpstan.neon b/phpstan.neon index 48b21ef..b24610d 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -9,8 +9,8 @@ parameters: constant_hassers: false excludePaths: # as long we don't install the dependencies :( - - '*JobsBundle/Seo/Extractor/GoogleForJobsExtractor.php' - - '*JobsBundle/Seo/ResourceProcessor/GoogleJobsProcessor.php' + - src/Seo/Extractor/GoogleForJobsExtractor.php + - src/Seo/ResourceProcessor/GoogleJobsProcessor.php ignoreErrors: # 3rd parties - '/.*Spatie\\SchemaOrg\\Graph.*/' diff --git a/src/Seo/Extractor/GoogleForJobsExtractor.php b/src/Seo/Extractor/GoogleForJobsExtractor.php index 1b45839..0532396 100644 --- a/src/Seo/Extractor/GoogleForJobsExtractor.php +++ b/src/Seo/Extractor/GoogleForJobsExtractor.php @@ -12,18 +12,11 @@ class GoogleForJobsExtractor implements ExtractorInterface { - protected EnvironmentService $environmentService; - protected ContextServiceInterface $contextService; - protected ConnectorServiceInterface $connectorService; - public function __construct( - EnvironmentServiceInterface $environmentService, - ContextServiceInterface $contextService, - ConnectorServiceInterface $connectorService + protected EnvironmentServiceInterface $environmentService, + protected ContextServiceInterface $contextService, + protected ConnectorServiceInterface $connectorService ) { - $this->environmentService = $environmentService; - $this->contextService = $contextService; - $this->connectorService = $connectorService; } public function supports(mixed $element): bool From 95e150e5b03220e54a4b13d08e787cd9d3497c12 Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Fri, 4 Aug 2023 15:11:55 +0200 Subject: [PATCH 8/9] remove include --- src/Seo/Extractor/GoogleForJobsExtractor.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Seo/Extractor/GoogleForJobsExtractor.php b/src/Seo/Extractor/GoogleForJobsExtractor.php index 0532396..6eaca65 100644 --- a/src/Seo/Extractor/GoogleForJobsExtractor.php +++ b/src/Seo/Extractor/GoogleForJobsExtractor.php @@ -2,7 +2,6 @@ namespace JobsBundle\Seo\Extractor; -use JobsBundle\Service\EnvironmentService; use JobsBundle\Service\EnvironmentServiceInterface; use SeoBundle\MetaData\Extractor\ExtractorInterface; use SeoBundle\Model\SeoMetaDataInterface; From dcb5561756490c0a71484ef68d2211264014605a Mon Sep 17 00:00:00 2001 From: Stefan Hagspiel Date: Fri, 4 Aug 2023 15:24:29 +0200 Subject: [PATCH 9/9] simplify test bootstrap --- tests/_bootstrap.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/tests/_bootstrap.php b/tests/_bootstrap.php index f4138ac..fc47a3e 100644 --- a/tests/_bootstrap.php +++ b/tests/_bootstrap.php @@ -1,8 +1,3 @@