# Pruebas de PHPStan para `mbinv`

## Objetivo

Validar que la instalacion funciona y que los comandos base quedaron listos para usar.

## Prueba 1. Confirmar version de PHPStan

```powershell
Set-Location 'C:\xampp\htdocs\mbinv'
& 'C:\xampp\php\php.exe' 'tools\phpstan\vendor\bin\phpstan' --version
```

Resultado esperado:

- Debe mostrar `PHPStan - PHP Static Analysis Tool 0.12.100`

## Prueba 2. Analizar un archivo puntual

```powershell
Set-Location 'C:\xampp\htdocs\mbinv'
.\tools\phpstan.bat src\MB\ProductoBundle\Clases\Reportes\Habladores.php
```

Resultado esperado:

- Debe devolver `OK` o listar errores del archivo

## Prueba 3. Analizar una carpeta puntual

```powershell
Set-Location 'C:\xampp\htdocs\mbinv'
.\tools\phpstan.bat src\MB\ProductoBundle\Clases\Reportes
```

Resultado esperado:

- Debe avanzar el analisis y devolver errores si existen

## Prueba 4. Analizar todo `src`

```powershell
Set-Location 'C:\xampp\htdocs\mbinv'
$env:PHPSTAN_MEMORY_LIMIT = '1536M'
.\tools\phpstan.bat
```

Resultado esperado:

- Debe iniciar el analisis completo de `src`
- Puede tardar bastante por el tamano del proyecto
- En este repo puede fallar por memoria

## Prueba 5. Analizar todo `src` por lotes

```powershell
Set-Location 'C:\xampp\htdocs\mbinv'
$env:PHPSTAN_MEMORY_LIMIT = '1536M'
.\tools\phpstan-lotes.ps1
```

Resultado esperado:

- Debe ejecutar varios bloques uno por uno
- Debe imprimir un resumen final por chunk
- Es la prueba recomendada para este repo

## Prueba 6. Probar ruta de PHP personalizada

Usar solo si XAMPP esta en otra ruta.

```powershell
Set-Location 'C:\xampp\htdocs\mbinv'
$env:PHP_EXE = 'D:\xampp\php\php.exe'
.\tools\phpstan.bat src\MB\ProductoBundle\Clases\Reportes\Habladores.php
```

Resultado esperado:

- Si la ruta existe, debe correr PHPStan
- Si la ruta no existe, el wrapper intenta volver a `C:\xampp\php\php.exe`

## Prueba 7. Limpiar variables temporales

```powershell
Remove-Item Env:PHP_EXE -ErrorAction SilentlyContinue
Remove-Item Env:PHPSTAN_MEMORY_LIMIT -ErrorAction SilentlyContinue
```

## Notas

- El mensaje de `wmic` puede aparecer en Windows y no invalida la prueba por si solo.
- El warning sobre version vieja de PHPStan es esperado en esta instalacion.
