init
This commit is contained in:
+33
@@ -0,0 +1,33 @@
|
|||||||
|
# PHP
|
||||||
|
vendor/
|
||||||
|
composer.phar
|
||||||
|
.phpunit.result.cache
|
||||||
|
.phpunit.cache/
|
||||||
|
.php-cs-fixer.cache
|
||||||
|
|
||||||
|
# Symfony / Shopware
|
||||||
|
/var/
|
||||||
|
/public/bundles/
|
||||||
|
/public/assets/
|
||||||
|
/custom/
|
||||||
|
/src/Shopware/Platform
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.*.local
|
||||||
|
|
||||||
|
# Agent skills (symlinked via skills.sh, tracked through skills-lock.json)
|
||||||
|
/.agents/
|
||||||
|
/.claude/
|
||||||
|
/.qwen/
|
||||||
|
/.opencode/
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
*.swp
|
||||||
|
|
||||||
|
# OS
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
{
|
||||||
|
"name": "aeon/dump-manager",
|
||||||
|
"description": "Export database dumps for Shopware 6 environments.",
|
||||||
|
"type": "shopware-platform-plugin",
|
||||||
|
"license": "MIT",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"keywords": [
|
||||||
|
"shopware",
|
||||||
|
"shopware6",
|
||||||
|
"plugin",
|
||||||
|
"dump",
|
||||||
|
"database",
|
||||||
|
"developer-tools"
|
||||||
|
],
|
||||||
|
"homepage": "https://git.arthurerlich.de/haylan/AeonDumpManager",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Arthur Erlich",
|
||||||
|
"homepage": "https://arthurerlich.de",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://git.arthurerlich.de/haylan/AeonDumpManager/issues",
|
||||||
|
"source": "https://git.arthurerlich.de/haylan/AeonDumpManager"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^8.1",
|
||||||
|
"shopware/core": "~6.6.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^10.0"
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
"shopware-plugin-class": "AeonDumpManager\\AeonDumpManager",
|
||||||
|
"copyright": "(c) by Arthur Erlich",
|
||||||
|
"label": {
|
||||||
|
"de-DE": "Aeon Dump Manager",
|
||||||
|
"en-GB": "Aeon Dump Manager"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"de-DE": "Verwaltet Datenbank-Dumps für Shopware 6 Entwicklungsumgebungen.",
|
||||||
|
"en-GB": "Manages database dumps for Shopware 6 development environments."
|
||||||
|
},
|
||||||
|
"manufacturerLink": {
|
||||||
|
"de-DE": "https://arthurerlich.de",
|
||||||
|
"en-GB": "https://arthurerlich.de"
|
||||||
|
},
|
||||||
|
"supportLink": {
|
||||||
|
"de-DE": "https://git.arthurerlich.de/haylan/AeonDumpManager/issues",
|
||||||
|
"en-GB": "https://git.arthurerlich.de/haylan/AeonDumpManager/issues"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"AeonDumpManager\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload-dev": {
|
||||||
|
"psr-4": {
|
||||||
|
"AeonDumpManager\\Tests\\": "tests/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minimum-stability": "stable"
|
||||||
|
}
|
||||||
+23
@@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
|
||||||
|
bootstrap="tests/TestBootstrap.php"
|
||||||
|
executionOrder="random">
|
||||||
|
<coverage>
|
||||||
|
<include>
|
||||||
|
<directory>./src/</directory>
|
||||||
|
</include>
|
||||||
|
</coverage>
|
||||||
|
<php>
|
||||||
|
<ini name="error_reporting" value="-1"/>
|
||||||
|
<server name="KERNEL_CLASS" value="Shopware\Core\Kernel"/>
|
||||||
|
<env name="APP_ENV" value="test"/>
|
||||||
|
<env name="APP_DEBUG" value="1"/>
|
||||||
|
<env name="SYMFONY_DEPRECATIONS_HELPER" value="weak"/>
|
||||||
|
</php>
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="AeonDumpManager Testsuite">
|
||||||
|
<directory>tests</directory>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
</phpunit>
|
||||||
@@ -0,0 +1,269 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"skills": {
|
||||||
|
"symfony:api-platform-dto-resources": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/api-platform-dto-resources/SKILL.md",
|
||||||
|
"computedHash": "0b5a49ef3b26381320570fc65262fe60f467869af7e9f34ea4b0f48762af2512"
|
||||||
|
},
|
||||||
|
"symfony:api-platform-filters": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/api-platform-filters/SKILL.md",
|
||||||
|
"computedHash": "b0a911aeb39f7e9788470356ebbab960d2a025da92452ee508e67192a387d020"
|
||||||
|
},
|
||||||
|
"symfony:api-platform-resources": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/api-platform-resources/SKILL.md",
|
||||||
|
"computedHash": "5d313ce0217ef198c5543728c4d0672c48fe1e9f0f0ffe8ae89e07c5c3cf30fb"
|
||||||
|
},
|
||||||
|
"symfony:api-platform-security": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/api-platform-security/SKILL.md",
|
||||||
|
"computedHash": "0c7a91b33c470450a699940c083cccea5256ea28a83b4a0acffd8575fedee4ec"
|
||||||
|
},
|
||||||
|
"symfony:api-platform-serialization": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/api-platform-serialization/SKILL.md",
|
||||||
|
"computedHash": "658ead8e467c493e429e39f4ff5465ecece42fdb49a2abbba708fd42535d4223"
|
||||||
|
},
|
||||||
|
"symfony:api-platform-state-providers": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/api-platform-state-providers/SKILL.md",
|
||||||
|
"computedHash": "2ef06b1eba9cc3619d3d50bb5c48f313d0d864d1cd18fef3767d5e3e705a8706"
|
||||||
|
},
|
||||||
|
"symfony:api-platform-tests": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/api-platform-tests/SKILL.md",
|
||||||
|
"computedHash": "351654fffb8b216acca349ff18053f4fdfba630f1678f8827a7ab3faeea258c8"
|
||||||
|
},
|
||||||
|
"symfony:api-platform-versioning": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/api-platform-versioning/SKILL.md",
|
||||||
|
"computedHash": "0249c23a63075fb29bea006561b873f56530838505cc6c2d56c6c75b0630271a"
|
||||||
|
},
|
||||||
|
"symfony:bootstrap-check": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/bootstrap-check/SKILL.md",
|
||||||
|
"computedHash": "b0770d00e974d3077f0dbab3aaab5b644a67cce72f099a9363fd68a6e7262b43"
|
||||||
|
},
|
||||||
|
"symfony:brainstorming": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/brainstorming/SKILL.md",
|
||||||
|
"computedHash": "33d085759b6c70252df183c9589e86d1819807b371d3cbc08a7629469dc5b024"
|
||||||
|
},
|
||||||
|
"symfony:config-env-parameters": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/config-env-parameters/SKILL.md",
|
||||||
|
"computedHash": "29c30ab73cf591f6940991e1e297836499e1760d390d0fea4faffbf9bc0d42d0"
|
||||||
|
},
|
||||||
|
"symfony:controller-cleanup": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/controller-cleanup/SKILL.md",
|
||||||
|
"computedHash": "e581ac4fa9f7e59035e17a96cdb306ae6fb4c1fe2bb2ddea75fbc8b3c61b7a7f"
|
||||||
|
},
|
||||||
|
"symfony:cqrs-and-handlers": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/cqrs-and-handlers/SKILL.md",
|
||||||
|
"computedHash": "eae9fd4fb0ba0e470e460c5bd5c64064a4a06b64b52398d199c54eb58fe283bc"
|
||||||
|
},
|
||||||
|
"symfony:daily-workflow": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/daily-workflow/SKILL.md",
|
||||||
|
"computedHash": "de275687dca8eaec1c7f28f395494585a6ebb56dd2fcadfce16ccd9730db3ab2"
|
||||||
|
},
|
||||||
|
"symfony:doctrine-batch-processing": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/doctrine-batch-processing/SKILL.md",
|
||||||
|
"computedHash": "1c25ad982501efe1e1284f94e89661e83eaf67e60f6e9a86e021c2c8b8c65885"
|
||||||
|
},
|
||||||
|
"symfony:doctrine-events": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/doctrine-events/SKILL.md",
|
||||||
|
"computedHash": "0543f6b3a9077b53624fb034cf88a5aadc57e14b37138c82beaa13fdad155fe9"
|
||||||
|
},
|
||||||
|
"symfony:doctrine-fetch-modes": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/doctrine-fetch-modes/SKILL.md",
|
||||||
|
"computedHash": "8020117b42ddc00e9165ca9cf9cd7e1e2d0cf688fb5fdd10a82b05a91bd0fe5e"
|
||||||
|
},
|
||||||
|
"symfony:doctrine-fixtures-foundry": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/doctrine-fixtures-foundry/SKILL.md",
|
||||||
|
"computedHash": "dbaa95893400a1be733ff779539986ba52fdd8431e9c5298fcaad1d69c9053a7"
|
||||||
|
},
|
||||||
|
"symfony:doctrine-migrations": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/doctrine-migrations/SKILL.md",
|
||||||
|
"computedHash": "f567cc35a98fe8ac6e6632d4da5990f974d4028c9517672586c42a3528861425"
|
||||||
|
},
|
||||||
|
"symfony:doctrine-relations": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/doctrine-relations/SKILL.md",
|
||||||
|
"computedHash": "cecba41492de5efed7b2b0d53c3d198c79c063d5232e18e3ce7b6342cecac69d"
|
||||||
|
},
|
||||||
|
"symfony:doctrine-transactions": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/doctrine-transactions/SKILL.md",
|
||||||
|
"computedHash": "1682b0b3fa1dc53db39471751467528d132bd72842b9d9e5d4c1dcb28bfcd1a2"
|
||||||
|
},
|
||||||
|
"symfony:e2e-panther-playwright": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/e2e-panther-playwright/SKILL.md",
|
||||||
|
"computedHash": "37071992ee5e27b3c0922f509d1ff0708912ec17f9149e81f4befd2f7d246284"
|
||||||
|
},
|
||||||
|
"symfony:effective-context": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/effective-context/SKILL.md",
|
||||||
|
"computedHash": "1e5fa157148bde5a3e48b7f2c275880e915781e43667d8b621cc1acdcafd04d9"
|
||||||
|
},
|
||||||
|
"symfony:executing-plans": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/executing-plans/SKILL.md",
|
||||||
|
"computedHash": "deff91ba8c9c68e7f1b63ae9c91638ebe14e63e9503cb48303a5e1aa0edea288"
|
||||||
|
},
|
||||||
|
"symfony:form-types-validation": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/form-types-validation/SKILL.md",
|
||||||
|
"computedHash": "3c1264ac1883e8d332181128b9bf620ed32ddd443ade6c42abc35eee178dfd03"
|
||||||
|
},
|
||||||
|
"symfony:functional-tests": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/functional-tests/SKILL.md",
|
||||||
|
"computedHash": "fe487c7a86acc172e4d2d9130d04f7377f3950ce654d095f64a25829b9811435"
|
||||||
|
},
|
||||||
|
"symfony:interfaces-and-autowiring": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/interfaces-and-autowiring/SKILL.md",
|
||||||
|
"computedHash": "18efd79e2b99806aaf7e3311391191e3041fede2e347d474a3c592af5b6e43e7"
|
||||||
|
},
|
||||||
|
"symfony:messenger-retry-failures": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/messenger-retry-failures/SKILL.md",
|
||||||
|
"computedHash": "760b7115b9c1c7c4ec0042b21d91bdd6a58ba9b451452485eae71e5057332e29"
|
||||||
|
},
|
||||||
|
"symfony:ports-and-adapters": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/ports-and-adapters/SKILL.md",
|
||||||
|
"computedHash": "e426df4395f29814ab6e89b703cd961c303958c4a832a575550e563d1cf8300c"
|
||||||
|
},
|
||||||
|
"symfony:quality-checks": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/quality-checks/SKILL.md",
|
||||||
|
"computedHash": "603a2a61a4515727f2de2a93d5ef7fcc6bb24da6b3d096f58724b81f18b437a4"
|
||||||
|
},
|
||||||
|
"symfony:rate-limiting": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/rate-limiting/SKILL.md",
|
||||||
|
"computedHash": "061cdadeb1e21fb322712c9951a2dc09acc8613376faf1002951b151d7369862"
|
||||||
|
},
|
||||||
|
"symfony:runner-selection": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/runner-selection/SKILL.md",
|
||||||
|
"computedHash": "238744ad7e55f67f29e3e0de838e8d675e4cf51a58fddc2056b0bf27b43c2b5d"
|
||||||
|
},
|
||||||
|
"symfony:strategy-pattern": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/strategy-pattern/SKILL.md",
|
||||||
|
"computedHash": "fe487cd678da11650e325c8f28b29a81e84b4938cfe4e42641b68c7bb622d377"
|
||||||
|
},
|
||||||
|
"symfony:symfony-cache": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/symfony-cache/SKILL.md",
|
||||||
|
"computedHash": "92bfade421c2190100ba603b9d0d05d260594be3b4725ba98a9c8963433d7a97"
|
||||||
|
},
|
||||||
|
"symfony:symfony-messenger": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/symfony-messenger/SKILL.md",
|
||||||
|
"computedHash": "4f7d3772433a2a03d570a3957d0a84f7f3d86782b273c14a8a75dae3aceb1e4d"
|
||||||
|
},
|
||||||
|
"symfony:symfony-scheduler": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/symfony-scheduler/SKILL.md",
|
||||||
|
"computedHash": "8978979cf09c166b3a68dc6f64f47f38ce805ef654f55c3e913e41fbee502096"
|
||||||
|
},
|
||||||
|
"symfony:symfony-voters": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/symfony-voters/SKILL.md",
|
||||||
|
"computedHash": "c9e782244caedf9787041d001ba90383b02a6a0e03f4645a699f6cbc204637f6"
|
||||||
|
},
|
||||||
|
"symfony:tdd-with-pest": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/tdd-with-pest/SKILL.md",
|
||||||
|
"computedHash": "c5eb112bf920982639a4ad5b5eec8341a97c31fa6d693b94cc28eb5ed01e6667"
|
||||||
|
},
|
||||||
|
"symfony:tdd-with-phpunit": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/tdd-with-phpunit/SKILL.md",
|
||||||
|
"computedHash": "484f05f7a16bf1e161eb4d2770b693526eb156f2a7502ea5833f64f5ef83e233"
|
||||||
|
},
|
||||||
|
"symfony:test-doubles-mocking": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/test-doubles-mocking/SKILL.md",
|
||||||
|
"computedHash": "943d6a81a333d1a3a454510cf972c38181428a6d6186d1a19cfbe99ea7ffe3e1"
|
||||||
|
},
|
||||||
|
"symfony:twig-components": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/twig-components/SKILL.md",
|
||||||
|
"computedHash": "ee7c1f99558ff8d28bbbb92fe47c41abc772ac76ef512ce645dbb88956cc20e5"
|
||||||
|
},
|
||||||
|
"symfony:using-symfony-superpowers": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/using-symfony-superpowers/SKILL.md",
|
||||||
|
"computedHash": "8666a5b730f5cd8d1b66d07bfdf2afee3bdf0b41acc2a3d699a2bcff55c4151b"
|
||||||
|
},
|
||||||
|
"symfony:value-objects-and-dtos": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/value-objects-and-dtos/SKILL.md",
|
||||||
|
"computedHash": "6db6bab1d41959b7e31ca3f5793548e057765b0bd1768b3f584357f49b7a92bb"
|
||||||
|
},
|
||||||
|
"symfony:writing-plans": {
|
||||||
|
"source": "dev-toolings/superpowers-symfony",
|
||||||
|
"sourceType": "github",
|
||||||
|
"skillPath": "skills/writing-plans/SKILL.md",
|
||||||
|
"computedHash": "13387e37e27958478548530a78d130b8cc31fddc9f2903525e07ae1d3c7e80c0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
<?php declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace AeonDumpManager;
|
||||||
|
|
||||||
|
use Shopware\Core\Framework\Plugin;
|
||||||
|
use Shopware\Core\Framework\Plugin\Context\ActivateContext;
|
||||||
|
use Shopware\Core\Framework\Plugin\Context\DeactivateContext;
|
||||||
|
use Shopware\Core\Framework\Plugin\Context\InstallContext;
|
||||||
|
use Shopware\Core\Framework\Plugin\Context\UninstallContext;
|
||||||
|
use Shopware\Core\Framework\Plugin\Context\UpdateContext;
|
||||||
|
|
||||||
|
class AeonDumpManager extends Plugin
|
||||||
|
{
|
||||||
|
public function install(InstallContext $installContext): void
|
||||||
|
{
|
||||||
|
// Do stuff such as creating a new payment method
|
||||||
|
}
|
||||||
|
|
||||||
|
public function uninstall(UninstallContext $uninstallContext): void
|
||||||
|
{
|
||||||
|
parent::uninstall($uninstallContext);
|
||||||
|
|
||||||
|
if ($uninstallContext->keepUserData()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove or deactivate the data created by the plugin
|
||||||
|
}
|
||||||
|
|
||||||
|
public function activate(ActivateContext $activateContext): void
|
||||||
|
{
|
||||||
|
// Activate entities, such as a new payment method
|
||||||
|
// Or create new entities here, because now your plugin is installed and active for sure
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deactivate(DeactivateContext $deactivateContext): void
|
||||||
|
{
|
||||||
|
// Deactivate entities, such as a new payment method
|
||||||
|
// Or remove previously created entities
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(UpdateContext $updateContext): void
|
||||||
|
{
|
||||||
|
// Update necessary stuff, mostly non-database related
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postInstall(InstallContext $installContext): void
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postUpdate(UpdateContext $updateContext): void
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace AeonDumpManager\Command;
|
||||||
|
|
||||||
|
use Symfony\Component\Console\Attribute\AsCommand;
|
||||||
|
use Symfony\Component\Console\Command\Command;
|
||||||
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
|
|
||||||
|
#[AsCommand(
|
||||||
|
name: 'aeon:example',
|
||||||
|
description: 'Add a short description for your command',
|
||||||
|
)]
|
||||||
|
class ExampleCommand extends Command
|
||||||
|
{
|
||||||
|
// Provides a description, printed out in bin/console
|
||||||
|
protected function configure(): void
|
||||||
|
{
|
||||||
|
$this->setDescription('Does something very special.');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Actual code executed in the command
|
||||||
|
protected function execute(InputInterface $input, OutputInterface $output): int
|
||||||
|
{
|
||||||
|
$output->writeln('It works!');
|
||||||
|
|
||||||
|
// Exit code 0 for success
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
// Import admin module
|
||||||
|
import './module/swag-example';
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
// <plugin root>/src/Resources/app/administration/src/module/swag-example/index.js
|
||||||
|
import './page/swag-example-list';
|
||||||
|
import './page/swag-example-detail';
|
||||||
|
import './page/swag-example-create';
|
||||||
|
import deDE from './snippet/de-DE';
|
||||||
|
import enGB from './snippet/en-GB';
|
||||||
|
|
||||||
|
Shopware.Module.register('swag-example', {
|
||||||
|
type: 'plugin',
|
||||||
|
name: 'Example',
|
||||||
|
title: 'swag-example.general.mainMenuItemGeneral',
|
||||||
|
description: 'sw-property.general.descriptionTextModule',
|
||||||
|
color: '#ff3d58',
|
||||||
|
icon: 'default-shopping-paper-bag-product',
|
||||||
|
|
||||||
|
snippets: {
|
||||||
|
'de-DE': deDE,
|
||||||
|
'en-GB': enGB
|
||||||
|
},
|
||||||
|
|
||||||
|
routes: {
|
||||||
|
list: {
|
||||||
|
component: 'swag-example-list',
|
||||||
|
path: 'list'
|
||||||
|
},
|
||||||
|
detail: {
|
||||||
|
component: 'swag-example-detail',
|
||||||
|
path: 'detail/:id',
|
||||||
|
meta: {
|
||||||
|
parentPath: 'swag.example.list'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
create: {
|
||||||
|
component: 'swag-example-create',
|
||||||
|
path: 'create',
|
||||||
|
meta: {
|
||||||
|
parentPath: 'swag.example.list'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
navigation: [{
|
||||||
|
label: 'swag-example.general.mainMenuItemGeneral',
|
||||||
|
color: '#ff3d58',
|
||||||
|
path: 'swag.example.list',
|
||||||
|
icon: 'default-shopping-paper-bag-product',
|
||||||
|
position: 100
|
||||||
|
}]
|
||||||
|
});
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"swag-example": {
|
||||||
|
"general": {
|
||||||
|
"mainMenuItemGeneral": "My custom module",
|
||||||
|
"descriptionTextModule": "Manage this custom module here"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"swag-example": {
|
||||||
|
"general": {
|
||||||
|
"mainMenuItemGeneral": "My custom module",
|
||||||
|
"descriptionTextModule": "Manage this custom module here"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/shopware/shopware/trunk/src/Core/System/SystemConfig/Schema/config.xsd">
|
||||||
|
|
||||||
|
<card>
|
||||||
|
<title>Minimal configuration</title>
|
||||||
|
|
||||||
|
<input-field type="number">
|
||||||
|
<name>maxDumps</name>
|
||||||
|
<label>Maximum allowed dumps to exist</label>
|
||||||
|
<defaultValue>6</defaultValue>
|
||||||
|
</input-field>
|
||||||
|
<input-field type="number">
|
||||||
|
<name>retantionDays</name>
|
||||||
|
<label>How many Days the dumps kept in the Storage. 0 Means unlimited</label>
|
||||||
|
<defaultValue>0</defaultValue>
|
||||||
|
</input-field>
|
||||||
|
</card>
|
||||||
|
|
||||||
|
</config>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
|
||||||
|
<container xmlns="http://symfony.com/schema/dic/services"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||||
|
|
||||||
|
<services>
|
||||||
|
|
||||||
|
<service id="AeonDumpManager\Command\ExampleCommand">
|
||||||
|
<tag name="console.command"/>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<service id="AeonDumpManager\ScheduledTask\ExampleTask">
|
||||||
|
<tag name="shopware.scheduled.task"/>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
</services>
|
||||||
|
</container>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?php declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace AeonDumpManager\ScheduledTask;
|
||||||
|
|
||||||
|
use Shopware\Core\Framework\MessageQueue\ScheduledTask\ScheduledTask;
|
||||||
|
|
||||||
|
class ExampleTask extends ScheduledTask
|
||||||
|
{
|
||||||
|
public static function getTaskName(): string
|
||||||
|
{
|
||||||
|
return 'swag.example_task';
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getDefaultInterval(): int
|
||||||
|
{
|
||||||
|
return 300; // 5 minutes
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<?php declare(strict_types=1);
|
||||||
|
|
||||||
|
use Shopware\Core\TestBootstrapper;
|
||||||
|
|
||||||
|
$loader = (new TestBootstrapper())
|
||||||
|
->addCallingPlugin()
|
||||||
|
->addActivePlugins('AeonDumpManager')
|
||||||
|
->setForceInstallPlugins(true)
|
||||||
|
->bootstrap()
|
||||||
|
->getClassLoader();
|
||||||
|
|
||||||
|
$loader->addPsr4('AeonDumpManager\\Tests\\', __DIR__);
|
||||||
Reference in New Issue
Block a user