From ab4052d1f966a2c790d139e35ccf0f9e212ecf18 Mon Sep 17 00:00:00 2001 From: Pauljd Date: Tue, 8 Sep 2026 17:16:39 +0100 Subject: [PATCH] Add modular PHP checks --- modules/php.sh | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 modules/php.sh diff --git a/modules/php.sh b/modules/php.sh new file mode 100755 index 0000000..7d76915 --- /dev/null +++ b/modules/php.sh @@ -0,0 +1,64 @@ +#!/bin/bash +set -euo pipefail + +echo "========================" +echo " Davidson CI - PHP" +echo "========================" + +PHP_COUNT="${DAVIDSON_PHP_COUNT:-0}" + +if [ "$PHP_COUNT" -eq 0 ]; then + echo "No PHP files detected - skipping PHP module" + exit 0 +fi + +echo +echo "PHP files detected: $PHP_COUNT" +echo + +echo "→ PHP syntax" +find . \ + -type f \ + -name "*.php" \ + -not -path "./vendor/*" \ + -print0 | +xargs -0 -n1 php -l + +echo +echo "→ Composer" + +if [ -f composer.json ]; then + composer validate --no-check-publish + + if [ -f composer.lock ]; then + composer install \ + --no-interaction \ + --prefer-dist \ + --no-progress + else + echo "composer.json found but no composer.lock" + fi +else + echo "No composer.json - skipping Composer" +fi + +echo +echo "→ PHPStan" + +if [ -x vendor/bin/phpstan ]; then + vendor/bin/phpstan analyse +else + echo "PHPStan not installed - skipping" +fi + +echo +echo "→ PHPUnit" + +if [ -x vendor/bin/phpunit ]; then + vendor/bin/phpunit +else + echo "PHPUnit not installed - skipping" +fi + +echo +echo "PHP module completed successfully"