# PHP Tools for Visual Studio

PHP Tools for Visual Studio es una extensión comercial para Microsoft Visual Studio, que añade la capacidad de trabajar con el lenguaje de programación PHP en el IDE. El plugin permite a los desarrolladores de software crear y gestionar proyectos en PHP (programas de ordenador, sitios de web, servicios web y aplicaciones web), depurar, y en general, mantener el código de fuente.
PHP Tools contiene un editor de código para PHP compatible con IntelliSense (el componente de finalización de código) así como también refactorización. Tiene un depurador integrado para depuración local y remota. También incluye otras herramientas como soporte integrado para paquetes de Composer, pruebas a través de PHPUnit, soporte para motores de plantilla PHP como Smarty y Twig, configuración e instalación automática de PHP o despliegue a través de SFTP, FTP, FTPS, File System or Web Deploy.
PHP Tools también cuenta con una versión para extender PHP en el IDE de Microsoft Visual Studio Code (llamado PHP Tools for VS Code). Este plugin permite editar, validar el código, refactorizar, depurar y hacer pruebas, entre otras, en Microsoft Visual Studio Code.

## Características

Todas las funciones de Visual Studio pueden ser utilizadas con PHP Tools, por ejemplo:
* IntelliSense
* Navegación
* Formato de Código
* Resaltado de sintaxis
* Refactorización
* Depuración

### Editor de código

Para hacer el código PHP legible, PHP Tools incluye un editor de código que es compatible con resaltado de sintaxis y finalización de código. Además, el editor reutiliza otros editores de lenguaje de Visual Studio como HTML, CSS, Javascript.
El editor de código utiliza de la determinación de tipos en PHP 5 y PHP 7 y los comentarios PHPDoc. Sin especificar el tipo de información, analiza los valores y expresiones para estimar el tipo resultante. Luego, la aplicación pronostica cuándo una expresión causará un error de ejecución. Estos errores generalmente indican un error tipográfico, un uso faltante o un nombre en el espacio de nombres no válido en el comentario de PHPDoc.

### Depurador

La mayoría de las funciones del depurador integrado de Visual Studio son compatibles con PHP Tools. El depurador consta de dos componentes principales: el componente de front-end (parte frontal) es el responsable de la comunicación visual con el usuario. El componente de back-end (parte de atrás) se enlaza directamente al núcleo de PHP. PHP Tools for Visual Studio proporciona el componente frontal y se comunica con la parte de atrás que es proporcionada por la extensión Xdebug . La comunicación utiliza el protocolo de depuración DBGp.
Al igual que en Visual Studio, el depurador permite establecer puntos de interrupción para detener la ejecución en un lugar determinado en el código y para poder observar los valores de variables cuando el programa está en pausa. Los puntos de interrupción pueden ser condicionales, lo que significa que el código se interrumpe cuando una expresión PHP dada se evalúa como verdadera. Además, puede interrumpirse cuando se ejecuta una excepción determinada o, de forma predeterminada, el programa se interrumpe cuando ocurre un error fatal, es decir, una excepción que impide que el programa continúe.
Una vez iniciado, el depurador tiene la capacidad de ejecutarse una línea a la vez: a esto se le denomina desplazarse con el depurador "paso a paso". Los comandos incluyen "paso a paso por instrucciones", "paso a paso por procedimientos" y "paso a paso para salir". Cuando el programa está en pausa, se puede desplazar el mouse sobre una variable, y el valor actual se mostrará como información sobre herramientas, donde puede modificarse. El depurador permite a los programadores cambiar el estado del programa que se ejecuta mediante la edición de los valores de las variables, permitiendo examinar rutas de ejecución alternativas.

### Pruebas

El Explorador de pruebas en PHP Tools es una ventana de Visual Studio que contiene una lista de casos de prueba organizados por proyectos, grupos o conjuntos de pruebas. El Explorador de pruebas permite ejecutar y depurar todas las pruebas, pruebas seleccionadas o pruebas enumeradas en un grupo o serie.

### Otras características

* Composer Manager : PHP Tools para Visual Studio es compatible con una gran cantidad de paquetes de PHP gracias a su integración con Composer (el software). Esta función le permite al usuario buscar, instalar, actualizar y administrar paquetes desde una interfaz gráfica de usuario.
* Twig Designer: el soporte para plantillas Twig incluye resaltado de sintaxis, verificación de errores, finalización de código y esquematización del código fuente. Está integrado en el sistema y sus funciones no requieren que el motor Twig esté instalado en el proyecto, pero, cuando está presente, algunas de estas funciones proporcionan información adicional.
* Editor de código Smarty: al igual que con Twig, el soporte para Smarty está incorporado y sus funciones no requieren que esté instalado en el proyecto. Sin embargo, puede instalarse a través de un paquete Composer, o su código fuente puede integrarse directamente en el proyecto.
* Manual de PHP en varios idiomas: PHP Tools contiene un manual de lenguaje PHP integrado para que el usuario consulte las referencias específicas.
* Validador de código: el código se analiza semánticamente para encontrar las excepciones que se producirán en tiempo de ejecución. Consulte la información sobre el editor de código más arriba si necesita más información.
* Publicación de proyectos: esta función ayuda a publicar proyectos en un servidor remoto. El usuario puede elegir entre implementar un proyecto completo o solamente un archivo. FTP, SFTP, FTPS, File System y Web Deploy (utilizado principalmente para Azure) están cubiertos.
* Refactorización: La refactorización puede cambiar el nombre de los identificadores en su lugar o con una vista previa detallada donde puede desactivar las ocurrencias individuales. Se usa para evitar errores tipográficos y mantener limpio el código al realizar modificaciones, cambiar el nombre de todo tipo de identificadores al escribir o usar el cuadro de diálogo para cambio de nombre.
* Recuperación de problemas de PHP: instala y configura automáticamente PHP para que se use correctamente en conjunto con Xdebug .
* Asistente para creación de proyectos nuevos: una aplicación que ayuda al usuario a generar nuevos proyectos de una manera rápida y fácil, creados a partir de una plantilla de proyecto previamente seleccionada.