#!/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"