From cea1090e9fbf98e2eee555a854b365d3ca57a275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20M=C3=BCller?= <p.mueller@pcsg.de> Date: Tue, 21 Aug 2018 12:16:12 +0200 Subject: [PATCH 01/13] Removed REST Provider from package.xml (cherry picked from commit 13c86c4aa021f718117cf27744177228b19ba642) --- package.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/package.xml b/package.xml index 6e005d7..96bb0aa 100644 --- a/package.xml +++ b/package.xml @@ -27,9 +27,5 @@ <name><![CDATA[PCSG - Computer & Internet Service OHG]]></name> <license><![CDATA[GPL-3.0+]]></license> </copyright> - - <provider> - <rest src="\QUI\APP\RestProvider"/> - </provider> </package> </quiqqer> \ No newline at end of file -- GitLab From 2f94d07d34a71c8031f12a84d9cd5d8165869302 Mon Sep 17 00:00:00 2001 From: Moritz Scholz <scholz@pcsg.de> Date: Thu, 30 Jan 2020 12:26:15 +0100 Subject: [PATCH 02/13] refactor: (auto) check out composer.json from dev-dev --- composer.json | 54 +++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/composer.json b/composer.json index 517d2a4..90fe0df 100644 --- a/composer.json +++ b/composer.json @@ -1,28 +1,26 @@ -{ - "name" : "quiqqer/slider", - "type" : "quiqqer-module", - "description" : "The package provides several sliders for QUIQQER.", - "version" : "dev-master", - "license" : "GPL-3.0+", - "authors" : [{ - "name": "Henning Leutz", - "email": "leutz@pcsg.de", - "homepage": "http://www.pcsg.de", - "role": "Developer" - }], - - "support" : { - "email" : "support@pcsg.de" - }, - - "require": { - "quiqqer/quiqqer" : "*@dev", - "quiqqer/gallery" : "*@dev" - }, - - "autoload": { - "psr-4" : { - "QUI\\Slider\\" : "src/QUI/Slider" - } - } -} +{ + "name": "quiqqer\/slider", + "type": "quiqqer-module", + "description": "The package provides several sliders for QUIQQER.", + "license": "GPL-3.0+", + "authors": [ + { + "name": "Henning Leutz", + "email": "leutz@pcsg.de", + "homepage": "http:\/\/www.pcsg.de", + "role": "Developer" + } + ], + "support": { + "email": "support@pcsg.de" + }, + "require": { + "quiqqer\/quiqqer": "*@dev", + "quiqqer\/gallery": "*@dev" + }, + "autoload": { + "psr-4": { + "QUI\\Slider\\": "src\/QUI\/Slider" + } + } +} \ No newline at end of file -- GitLab From f279a622a11b126655f5c0853a1a2e3cf0b3bb48 Mon Sep 17 00:00:00 2001 From: Jan Wennrich <jan.wennrich@pcsg.de> Date: Fri, 24 May 2024 17:10:47 +0200 Subject: [PATCH 03/13] chore: add .gitattributes file --- .gitattributes | 15 +++++++++++++++ .gitignore | 3 ++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9ab59b1 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,15 @@ + +# Ignore developer files when exporting +.gitattributes export-ignore +.gitignore export-ignore +.gitlab-ci.yml export-ignore +.phive export-ignore +captainhook.json export-ignore +phpcs.xml.dist export-ignore +phpstan-baseline.neon export-ignore +phpstan.dist.neon export-ignore +phpunit.dist.xml export-ignore +tests export-ignore + +# Explicitly set file type and line endings for PHP files, improves git diff output +*.php text eol=lf diff=php \ No newline at end of file diff --git a/.gitignore b/.gitignore index f4da208..e87e64d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ tools/ phpstan.neon .phpunit.result.cache -phpunit.xml \ No newline at end of file +phpunit.xml +tools/ -- GitLab From f83cf482aaf1ea34dc2250b1285bc5f7d60e6770 Mon Sep 17 00:00:00 2001 From: Jan Wennrich <jan.wennrich@pcsg.de> Date: Fri, 24 May 2024 17:10:47 +0200 Subject: [PATCH 04/13] chore: setup PHPStan for project tooling --- .gitignore | 2 ++ .phive/phars.xml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index e87e64d..bb11804 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ phpstan.neon .phpunit.result.cache phpunit.xml tools/ + +phpstan.neon diff --git a/.phive/phars.xml b/.phive/phars.xml index a1315a0..f909b52 100644 --- a/.phive/phars.xml +++ b/.phive/phars.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> <phive xmlns="https://phar.io/phive"> - <phar name="phpstan" version="^1.10.67" installed="1.10.67" location="./tools/phpstan" copy="false"/> + <phar name="phpstan" version="1.11.1" installed="1.11.1" location="./tools/phpstan" copy="false"/> </phive> -- GitLab From 398dfc61613a7dfabb0404faf3c4258eb9e94d86 Mon Sep 17 00:00:00 2001 From: Jan Wennrich <jan.wennrich@pcsg.de> Date: Fri, 24 May 2024 17:10:48 +0200 Subject: [PATCH 05/13] chore: setup PHPUnit for project tooling --- .gitignore | 4 ++++ .phive/phars.xml | 1 + phpunit.dist.xml | 8 ++++++++ tests/phpunit-bootstrap.php | 11 +++++++++++ 4 files changed, 24 insertions(+) create mode 100644 phpunit.dist.xml create mode 100644 tests/phpunit-bootstrap.php diff --git a/.gitignore b/.gitignore index bb11804..e25391c 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,7 @@ phpunit.xml tools/ phpstan.neon + +.phpunit.result.cache + +phpunit.xml diff --git a/.phive/phars.xml b/.phive/phars.xml index f909b52..6984891 100644 --- a/.phive/phars.xml +++ b/.phive/phars.xml @@ -1,4 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <phive xmlns="https://phar.io/phive"> <phar name="phpstan" version="1.11.1" installed="1.11.1" location="./tools/phpstan" copy="false"/> + <phar name="phpunit" version="^10.5.20" installed="10.5.20" location="./tools/phpunit" copy="false"/> </phive> diff --git a/phpunit.dist.xml b/phpunit.dist.xml new file mode 100644 index 0000000..f6c7bec --- /dev/null +++ b/phpunit.dist.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<phpunit bootstrap="tests/phpunit-bootstrap.php"> + <testsuites> + <testsuite name="Tests"> + <directory>tests/</directory> + </testsuite> + </testsuites> +</phpunit> diff --git a/tests/phpunit-bootstrap.php b/tests/phpunit-bootstrap.php new file mode 100644 index 0000000..eca92fd --- /dev/null +++ b/tests/phpunit-bootstrap.php @@ -0,0 +1,11 @@ +<?php + +if (!defined('QUIQQER_SYSTEM')) { + define('QUIQQER_SYSTEM', true); +} + +if (!defined('QUIQQER_AJAX')) { + define('QUIQQER_AJAX', true); +} + +require_once __DIR__ . '/../../../../bootstrap.php'; -- GitLab From 5da2164cfc2a53a0574636cacc9a6a24539ff2a6 Mon Sep 17 00:00:00 2001 From: Jan Wennrich <jan.wennrich@pcsg.de> Date: Fri, 24 May 2024 17:10:48 +0200 Subject: [PATCH 06/13] chore: setup PHP_CodeSniffer for project tooling --- .phive/phars.xml | 2 ++ phpcs.xml.dist | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 phpcs.xml.dist diff --git a/.phive/phars.xml b/.phive/phars.xml index 6984891..3c7dea3 100644 --- a/.phive/phars.xml +++ b/.phive/phars.xml @@ -2,4 +2,6 @@ <phive xmlns="https://phar.io/phive"> <phar name="phpstan" version="1.11.1" installed="1.11.1" location="./tools/phpstan" copy="false"/> <phar name="phpunit" version="^10.5.20" installed="10.5.20" location="./tools/phpunit" copy="false"/> + <phar name="phpcs" version="^3.10.1" installed="3.10.1" location="./tools/phpcs" copy="false"/> + <phar name="phpcbf" version="^3.10.1" installed="3.10.1" location="./tools/phpcbf" copy="false"/> </phive> diff --git a/phpcs.xml.dist b/phpcs.xml.dist new file mode 100644 index 0000000..d48084f --- /dev/null +++ b/phpcs.xml.dist @@ -0,0 +1,23 @@ +<?xml version="1.0"?> +<ruleset> + <!-- Use PSR-12 ruleset --> + <rule ref="PSR12"/> + + <!-- Only scan *.php files --> + <arg name="extensions" value="php"/> + + <!-- Ignore warnings --> + <arg name="warning-severity" value="0"/> + + <!-- Process 64 (or number of CPU cores) files in parallel --> + <arg name="parallel" value="64"/> + + <!-- Output relative file paths, by setting the current folder as the basepath --> + <arg name="basepath" value="."/> + + <!-- Show colored output --> + <arg name="colors"/> + + <!-- Scan everything in the current folder --> + <file>.</file> +</ruleset> -- GitLab From a5b2dcbc342195191915fa4884e4b23939ce8d9f Mon Sep 17 00:00:00 2001 From: Jan Wennrich <jan.wennrich@pcsg.de> Date: Fri, 24 May 2024 17:10:48 +0200 Subject: [PATCH 07/13] chore: setup CaptainHook for project tooling --- .phive/phars.xml | 1 + captainhook.json | 16 ++++++++++++++++ tests/captainhook-bootstrap.php | 3 +++ 3 files changed, 20 insertions(+) create mode 100644 captainhook.json create mode 100644 tests/captainhook-bootstrap.php diff --git a/.phive/phars.xml b/.phive/phars.xml index 3c7dea3..63a030f 100644 --- a/.phive/phars.xml +++ b/.phive/phars.xml @@ -4,4 +4,5 @@ <phar name="phpunit" version="^10.5.20" installed="10.5.20" location="./tools/phpunit" copy="false"/> <phar name="phpcs" version="^3.10.1" installed="3.10.1" location="./tools/phpcs" copy="false"/> <phar name="phpcbf" version="^3.10.1" installed="3.10.1" location="./tools/phpcbf" copy="false"/> + <phar name="captainhook" version="^5.23.0" installed="5.23.0" location="./tools/captainhook" copy="false"/> </phive> diff --git a/captainhook.json b/captainhook.json new file mode 100644 index 0000000..30f1064 --- /dev/null +++ b/captainhook.json @@ -0,0 +1,16 @@ +{ + "config": { + "bootstrap": "tests/captainhook-bootstrap.php" + }, + "pre-commit": { + "enabled": true, + "actions": [ + { + "action": "\\CaptainHook\\App\\Hook\\PHP\\Action\\Linting" + }, + { + "action": "composer test" + } + ] + } +} \ No newline at end of file diff --git a/tests/captainhook-bootstrap.php b/tests/captainhook-bootstrap.php new file mode 100644 index 0000000..1b61b73 --- /dev/null +++ b/tests/captainhook-bootstrap.php @@ -0,0 +1,3 @@ +<?php + +// This file is supposed to be empty, see https://github.com/captainhookphp/captainhook/issues/248 -- GitLab From 53b555f79949d11135e9a067b2e41702958b8412 Mon Sep 17 00:00:00 2001 From: Jan Wennrich <jan.wennrich@pcsg.de> Date: Fri, 24 May 2024 17:10:48 +0200 Subject: [PATCH 08/13] chore: add developer scripts to composer.json --- composer.json | 90 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 66 insertions(+), 24 deletions(-) diff --git a/composer.json b/composer.json index 61e1851..e5b1b50 100644 --- a/composer.json +++ b/composer.json @@ -1,26 +1,68 @@ { - "name": "quiqqer/slider", - "type": "quiqqer-module", - "description": "The package provides several sliders for QUIQQER.", - "license": "GPL-3.0+", - "authors": [ - { - "name": "Henning Leutz", - "email": "leutz@pcsg.de", - "homepage": "https://www.pcsg.de", - "role": "Developer" + "name": "quiqqer/slider", + "type": "quiqqer-module", + "description": "The package provides several sliders for QUIQQER.", + "license": "GPL-3.0+", + "authors": [ + { + "name": "Henning Leutz", + "email": "leutz@pcsg.de", + "homepage": "https://www.pcsg.de", + "role": "Developer" + } + ], + "support": { + "email": "support@pcsg.de" + }, + "require": { + "quiqqer/core": "^2", + "quiqqer/gallery": "^2" + }, + "autoload": { + "psr-4": { + "QUI\\Slider\\": "src/QUI/Slider" + } + }, + "scripts": { + "test": [ + "@dev:lint", + "@dev:phpunit" + ], + "dev:phpunit": "./tools/phpunit", + "dev:lint": [ + "@dev:lint:phpstan", + "@dev:lint:style" + ], + "dev:lint:phpstan": "./tools/phpstan", + "dev:lint:style": "./tools/phpcs", + "dev:lint:style:fix": "./tools/phpcbf", + "dev:init": [ + "@dev:init:check-requirements", + "@dev:init:tools", + "@dev:init:git-hooks" + ], + "dev:init:check-requirements": [ + "which composer > /dev/null || (echo 'Error: composer has to be globally installed'; exit 1)", + "which phive > /dev/null || (echo 'Error: PHIVE has to be globally installed'; exit 1)" + ], + "dev:init:tools": "phive install --temporary", + "dev:init:git-hooks": "./tools/captainhook install --only-enabled --force" + }, + "scripts-aliases": { + "test": [ + "dev:test" + ] + }, + "scripts-descriptions": { + "test": "Runs linting, static analysis, and unit tests.", + "dev:phpunit": "Run PHPUnit test suites", + "dev:lint": "Run PHPStan and code style check", + "dev:lint:phpstan": "Run PHPStan", + "dev:lint:style": "Run code style check (PHP_CodeSniffer)", + "dev:lint:style:fix": "Try to fix code style errors automatically", + "dev:init": "Initialize the developer tooling (tools and git hooks)", + "dev:init:check-requirements": "Check if the necessary requirements are met", + "dev:init:tools": "Install all developer tools (requires PHIVE)", + "dev:init:git-hooks": "Install all git hooks (may require tools to be installed)" } - ], - "support": { - "email": "support@pcsg.de" - }, - "require": { - "quiqqer/core": "^2", - "quiqqer/gallery": "^2" - }, - "autoload": { - "psr-4": { - "QUI\\Slider\\": "src/QUI/Slider" - } - } -} +} \ No newline at end of file -- GitLab From bbbad24e36a832997051e5342218d6f1946dd97a Mon Sep 17 00:00:00 2001 From: Jan Wennrich <jan.wennrich@pcsg.de> Date: Fri, 24 May 2024 17:10:48 +0200 Subject: [PATCH 09/13] ci: use quiqqer-package-bundle component --- .gitlab-ci.yml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b8d20ac..b5a64b4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,3 +1,17 @@ include: - - project: 'quiqqer/stabilization/semantic-release' - file: '/ci-templates/.gitlab-ci.yml' + - component: dev.quiqqer.com/quiqqer/stabilization/ci-cd-components/quiqqer-package-bundle/quiqqer-package-bundle@main + +# Remove the entire phpunit-php8.1 block, to allow PHPUnit to run on PHP 8.1 in your pipeline +phpunit-php8.1: + rules: + - when: never + +# Remove the entire phpunit-php8.2 block, to allow PHPUnit to run on PHP 8.2 in your pipeline +phpunit-php8.2: + rules: + - when: never + +# Remove the entire phpunit-php8.3 block, to allow PHPUnit to run on PHP 8.3 in your pipeline +phpunit-php8.3: + rules: + - when: never \ No newline at end of file -- GitLab From b9ffae7681ea0eda727105c7af79b4002978b5c7 Mon Sep 17 00:00:00 2001 From: Jan Wennrich <jan.wennrich@pcsg.de> Date: Fri, 24 May 2024 17:10:49 +0200 Subject: [PATCH 10/13] docs: add CONTRIBUTING.md file --- CONTRIBUTING.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..4a69a59 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,3 @@ +# Contributing + +This package follows the [QUIQQER contribution guidelines](https://dev.quiqqer.com/quiqqer/stabilization/documentation/-/wikis/home). \ No newline at end of file -- GitLab From f7e2d78b3aa58a13f00e5c630714c09ac1deaa0b Mon Sep 17 00:00:00 2001 From: Jan Wennrich <jan.wennrich@pcsg.de> Date: Fri, 2 Aug 2024 14:14:21 +0200 Subject: [PATCH 11/13] chore: set PHPStan to level 5 with baseline --- .phive/phars.xml | 2 +- phpstan-baseline.neon | 6 ++++++ phpstan.dist.neon | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.phive/phars.xml b/.phive/phars.xml index 63a030f..ebb5988 100644 --- a/.phive/phars.xml +++ b/.phive/phars.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <phive xmlns="https://phar.io/phive"> - <phar name="phpstan" version="1.11.1" installed="1.11.1" location="./tools/phpstan" copy="false"/> + <phar name="phpstan" version="1.11.8" installed="1.11.8" location="./tools/phpstan" copy="false"/> <phar name="phpunit" version="^10.5.20" installed="10.5.20" location="./tools/phpunit" copy="false"/> <phar name="phpcs" version="^3.10.1" installed="3.10.1" location="./tools/phpcs" copy="false"/> <phar name="phpcbf" version="^3.10.1" installed="3.10.1" location="./tools/phpcbf" copy="false"/> diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index e69de29..dc3ecdf 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -0,0 +1,6 @@ +parameters: + ignoreErrors: + - + message: "#^Cannot call method getImages\\(\\) on QUI\\\\Interfaces\\\\Projects\\\\Media\\\\File\\|false\\.$#" + count: 1 + path: src/QUI/Slider/Controls/Logo/Carousel.php diff --git a/phpstan.dist.neon b/phpstan.dist.neon index c17863f..6d1b456 100644 --- a/phpstan.dist.neon +++ b/phpstan.dist.neon @@ -2,7 +2,7 @@ includes: - phpstan-baseline.neon parameters: - level: 1 + level: 5 paths: - src bootstrapFiles: -- GitLab From 82c8c10b7ff88b52514797aa75a79ed3507cd7d4 Mon Sep 17 00:00:00 2001 From: Jan Wennrich <jan.wennrich@pcsg.de> Date: Fri, 2 Aug 2024 14:14:21 +0200 Subject: [PATCH 12/13] chore: upgrade CaptainHook to version ^5.23.3 --- .phive/phars.xml | 2 +- captainhook.json | 25 +++++++++++-------------- tests/captainhook-bootstrap.php | 3 --- 3 files changed, 12 insertions(+), 18 deletions(-) delete mode 100644 tests/captainhook-bootstrap.php diff --git a/.phive/phars.xml b/.phive/phars.xml index ebb5988..5bfa092 100644 --- a/.phive/phars.xml +++ b/.phive/phars.xml @@ -4,5 +4,5 @@ <phar name="phpunit" version="^10.5.20" installed="10.5.20" location="./tools/phpunit" copy="false"/> <phar name="phpcs" version="^3.10.1" installed="3.10.1" location="./tools/phpcs" copy="false"/> <phar name="phpcbf" version="^3.10.1" installed="3.10.1" location="./tools/phpcbf" copy="false"/> - <phar name="captainhook" version="^5.23.0" installed="5.23.0" location="./tools/captainhook" copy="false"/> + <phar name="captainhook" version="^5.23.3" installed="5.23.3" location="./tools/captainhook" copy="false"/> </phive> diff --git a/captainhook.json b/captainhook.json index 30f1064..3702e1a 100644 --- a/captainhook.json +++ b/captainhook.json @@ -1,16 +1,13 @@ { - "config": { - "bootstrap": "tests/captainhook-bootstrap.php" - }, - "pre-commit": { - "enabled": true, - "actions": [ - { - "action": "\\CaptainHook\\App\\Hook\\PHP\\Action\\Linting" - }, - { - "action": "composer test" - } - ] - } + "pre-commit": { + "enabled": true, + "actions": [ + { + "action": "\\CaptainHook\\App\\Hook\\PHP\\Action\\Linting" + }, + { + "action": "composer test" + } + ] + } } \ No newline at end of file diff --git a/tests/captainhook-bootstrap.php b/tests/captainhook-bootstrap.php deleted file mode 100644 index 1b61b73..0000000 --- a/tests/captainhook-bootstrap.php +++ /dev/null @@ -1,3 +0,0 @@ -<?php - -// This file is supposed to be empty, see https://github.com/captainhookphp/captainhook/issues/248 -- GitLab From a1edc7bb13bbcf00c98b87a21dd323460bb80ba9 Mon Sep 17 00:00:00 2001 From: Henning <leutz@pcsg.de> Date: Fri, 14 Feb 2025 08:27:53 +0100 Subject: [PATCH 13/13] fix: handle non-existing getImages method in Carousel class This commit addresses the issue where a call to the undefined method `getImages` on the possible `false` in `Carousel.php` was causing an error. A check is now in place before calling the method. Consequently, the phpstan-baseline.neon file has also been updated to remove the now unnecessary error suppression. Related: quiqqer/package-slider#28 --- phpstan-baseline.neon | 6 +----- src/QUI/Slider/Controls/Logo/Carousel.php | 10 +++++++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index dc3ecdf..1339890 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1,6 +1,2 @@ parameters: - ignoreErrors: - - - message: "#^Cannot call method getImages\\(\\) on QUI\\\\Interfaces\\\\Projects\\\\Media\\\\File\\|false\\.$#" - count: 1 - path: src/QUI/Slider/Controls/Logo/Carousel.php + ignoreErrors: \ No newline at end of file diff --git a/src/QUI/Slider/Controls/Logo/Carousel.php b/src/QUI/Slider/Controls/Logo/Carousel.php index 90fd763..a71b735 100644 --- a/src/QUI/Slider/Controls/Logo/Carousel.php +++ b/src/QUI/Slider/Controls/Logo/Carousel.php @@ -134,9 +134,13 @@ public function getBody(): string break; } - $images = $Folder->getImages([ - 'order' => $order - ]); + $images = []; + + if (method_exists($Folder, 'getImages')) { + $images = $Folder->getImages([ + 'order' => $order + ]); + } if ($this->getAttribute('max') && count($images) > $this->getAttribute('max')) { $images = array_slice($images, 0, $this->getAttribute('max')); -- GitLab