tree -L 2 .
├── script.sh
├── yourCode
│ └── System
└── Dockerfile
| # Usa la imagen base de PHP que necesites | |
| FROM php:8.4-cli | |
| # Instala git y unzip, necesarios para Composer | |
| RUN apt-get update && apt-get install -y git unzip | |
| # Instala Composer | |
| RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer | |
| # Instala PHPCS y el estándar PHPCompatibility con versiones recientes | |
| RUN composer global require "squizlabs/php_codesniffer=*" "wimg/php-compatibility=*" | |
| # Crea un enlace simbólico para que el comando 'phpcs' sea accesible | |
| RUN ln -s /root/.composer/vendor/bin/phpcs /usr/local/bin/phpcs | |
| # Configura el estándar PHPCompatibility para que sea accesible | |
| RUN phpcs --config-set installed_paths /root/.composer/vendor/wimg/php-compatibility | |
| # Define un punto de entrada para el contenedor | |
| ENTRYPOINT ["phpcs"] |
| Define la versión de PHP contra la que quieres probar la compatibilidad | |
| TEST_VERSION="5.3-8.4" | |
| # Define la ruta de la imagen Docker de PHPCS | |
| DOCKER_IMAGE="my_app" | |
| # Define el directorio base de tu código dentro del contenedor | |
| CODE_DIR="/app/yourCode/System" | |
| # Define el archivo de salida para el informe | |
| REPORT_FILE="compatibilidad_reporte.txt" | |
| # Borra el archivo de reporte anterior si existe | |
| > $REPORT_FILE | |
| echo "Iniciando análisis de compatibilidad para la versión de PHP ${TEST_VERSION}..." | |
| echo "Los resultados se guardarán en ${REPORT_FILE}" | |
| echo "----------------------------------------------------" >> $REPORT_FILE | |
| # Usa find para buscar todos los archivos .php en el directorio especificado | |
| find .yourCode/System -name "*.php" | while read -r file; do | |
| # Muestra el archivo que se está analizando | |
| echo "Analizando ${file}..." | |
| # Construye la ruta del archivo dentro del contenedor | |
| # La ruta local "./codigo/..." se convierte en "/app/codigo/..." | |
| container_file="/app/${file}" | |
| # Ejecuta el comando Docker para analizar el archivo | |
| # La salida de error y stdout se redirigen a un archivo | |
| echo ">>> ${file} <<<" >> $REPORT_FILE | |
| docker run --rm -v "$(pwd):/app" ${DOCKER_IMAGE} --standard=PHPCompatibility --runtime-set testVersion ${TEST_VERSION} ${container_file} >> $REPORT_FILE | |
| # Agrega una línea en blanco para mejorar la legibilidad del informe | |
| echo "" >> $REPORT_FILE | |
| done | |
| echo "Análisis completado. Revisa el archivo ${REPORT_FILE} para ver los resultados." |