Novedades de PhpStorm 2022.3

PhpStorm 2022.3 es una actualización principal que incluye la nueva vista previa de la interfaz de usuario, compatibilidad con PHP 8.2, Code Vision para PHP, la vista previa de arreglos rápidos, compatibilidad con ParaTest, la vista renderizada para PHPDoc, Redis en herramientas de bases de datos y mucho más.

Nueva interfaz de usuarioVista previa

La nueva interfaz de usuario ya está a disposición de todos para que puedan probarla. Está desactivada de forma predeterminada porque aún está en fase beta/vista previa.

Puede cambiar a la nueva interfaz de usuario en Settings/Preferences | Appearance & Behavior | New UI Preview.

La nueva interfaz de usuario es más limpia, tiene menos distracciones y funciona más rápido, además de permitirle hacer la mayoría de las cosas como hasta ahora.

Experiencia de usuario

En esta versión encontrará muchas mejoras visuales adicionales. Está son algunas de las más notables.

Code Vision

Directamente en el editor, al lado del código PHP, puede ver información adicional sobre los símbolos PHP: clase, característica, interfaz, método o función.

Verá el número de usos; ya no es necesario hacer clic en un símbolo para averiguarlo.

Para las clases y las interfaces, verá el número de herederos e implementaciones, respectivamente.

También obtendrá información de Git sobre quién ha efectuado más cambios en una determinada parte del código, lo que le permitirá ver rápidamente quién es propietario del código y conoce más en profundidad esa parte del código.

Vista previa de arreglos rápidos

Puede arreglar algunos problemas de código de forma automática pulsando Alt+Intro.

Ahora podrá previsualizar el arreglo rápido o la intención propuestos antes de aplicarlos y ver al instante cómo se modificará su código.

Vista renderizada de PHPDoc

Ahora puede cambiar el aspecto de los bloques PHPDoc en PhpStorm 2022.3 con una opción que muestra un renderizado con un mejor aspecto y compatibilidad con el formato HTML. Esto hace que la lectura de código muy anotado sea más agradable y fácil.

Para activar la nueva vista renderizada, haga clic en el icono del medianil Icono del medianil de vista renderizada junto a cualquier bloque PHPDoc.

Para activar el renderizado de todos los comentarios de PHPDoc, haga clic con el botón derecho del ratón en el icono del medianil y seleccione Render All Doc Comments.

Documentación rápida mejorada

Si pulsa Ctrl+Q en cualquier función, clase o método, PhpStorm mostrará la documentación directamente en el editor.

Esta ventana emergente se ha renovado considerablemente. Ya no tiene que pasar al navegador y buscar la documentación, porque todo está en su IDE.

PHP 8.2

PhpStorm 2022.3 incorpora la compatibilidad completa con PHP 8.2. La mayoría de los cambios en el IDE encajarán orgánicamente en su flujo de trabajo de PhpStorm, así que solo mencionaremos las nuevas funcionalidades que es importante conocer.

Clases de solo lectura

Una clase de solo lectura es una forma rápida de declarar una clase que solo tiene propiedades de solo lectura. Puede utilizar estas clases para lograr una mayor integridad de los datos.

Para las clases de solo lectura, PhpStorm ofrece:

  • Un arreglo rápido para convertir una clase con propiedades de solo lectura en una clase de solo lectura.
  • Una inspección para asegurarse de que las clases de solo lectura solo pueden tener elementos secundarios de solo lectura.
  • Detección de propiedades redundantes de solo lectura en clases de solo lectura.
  • Comprobaciones de las propiedades estáticas y dinámicas prohibidas en las clases de solo lectura.

Propiedades dinámicas obsoletas

Al acceder a propiedades inexistentes en PHP 8.2 aparecerá un aviso de que han quedado obsoletas.

PhpStorm destaca estos usos y ofrece arreglos rápidos para los errores, ya sea añadiendo la propiedad o utilizando el atributo #[AllowDynamicProperties].

Mejoras en el sistema de tipos

PHP 8.2 añade la compatibilidad con tipos de forma normal disyuntiva, así como tipos independientes null, true y false. También hemos añadido la compatibilidad con todos ellos en PhpStorm.

Más funcionalidades obsoletas

PHP 8.2 ha eliminado algunas funcionalidades más, y PhpStorm le cubre las espaldas con las inspecciones correspondientes para detectarlas y arreglos rápidos para actualizar su código.

Interpolación de cadena ${} obsoleta

Si necesita utilizar una variable dentro de una cadena, solía haber tres formas posibles de interpolación. Una de ellas está ahora marcada como obsoleta y se eliminará en el futuro.

PhpStorm resaltará las ocurrencias, y puede usar un arreglo rápido Alt+Intro para actualizar el código.

Llamables parcialmente compatibles obsoletos

Varias formas de llamar a funciones se han quedado obsoletas en PHP 8.2.

PhpStorm resalta el código no válido, y puede usar un arreglo rápido Alt+Intro para actualizar su código.

PhpStorm puede escanear toda su base de código a la vez para detectar todos los posibles problemas. Vaya a Code | Analyze Code | Run Inspection by Name. A continuación, busque «dynamic property», por ejemplo, y PhpStorm hará el resto.

Bases de datos: compatibilidad con Redis

Se ha implementado una iteración preliminar de la tan esperada compatibilidad con Redis.

Depuración

Si tiene problemas configurando Xdebug, estas son algunas cosas que puede hacer ahora en PhpStorm para identificar el problema.

Validar el resultado de phpinfo()

Añada una llamada phpinfo() a su script o página PHP y copie el resultado de la función que ve en su navegador. A continuación, llame a Run / Web Server Debug Validation, y verá un cuadro de diálogo que le permite pegar el resultado de phpinfo() del paso anterior.

PhpStorm analizará la configuración del servidor y detectará los problemas más comunes.

Comprobar la configuración del servidor con un script

If the phpinfo() information didn’t help, you can use PhpStorm’s validation script on the server.

Depuración del valor de retorno con Xdebug

Xdebug 3.2 cuenta con un paso extra de depuración «return from function» que le permite inspeccionar el valor de retorno.

PhpStorm 2022.3 es compatible con esta nueva funcionalidad. Para activarla, pulse Step Into cuando esté en la última declaración de la función. Como resultado, se mostrará una variable adicional en Watches.

Integración con herramientas PHP

Ejecutar pruebas en paralelo con ParaTest

La tan esperada compatibilidad con las pruebas paralelas en PhpStorm por fin está aquí.

Para ejecutar pruebas en paralelo, es necesario marcar la opción Use Paratest en la configuración de ejecución de sus pruebas, y comprobar que la ruta al binario de ParaTest está configurada correctamente. Normalmente, si tiene ParaTest añadido a su composer.json, la ruta debería ser algo así: ./vendor/bin/paratest_for_phpstorm.

Utilizar formateadores externos para PHP

Ahora es posible seleccionar un formateador externo en Preferences | PHP | Quality Tools. You can now use FriendsOfPHP/PHP-CS-Fixer or squizlabs/PHP_CodeSniffer for this purpose.

Integración con Robo

A popular task runner for PHP, Robo, received the following extended support:

  • Una ventana de herramientas especial, Robo tasks, está disponible si hay una clase Robo en el proyecto.
  • Dentro del menú contextual está disponible una configuración de ejecución de tareas Robo, que se invoca desde un método Robo.
  • Cada método público dentro de una clase Robo tiene un icono del medianil para las respectivas configuraciones.

Compatibilidad con Prophecy

If you use the Prophecy mocking framework in your tests, working with it in PhpStorm will now be easier.

Más funcionalidades para PHP

Vista previa del formato de fecha

Ya no es necesario recordar o buscar los formatos date(). PhpStorm 2022.3 muestra una descripción emergente con una fecha de ejemplo cuando se pasa el ratón sobre una cadena de formato de fecha.

Además, al editar una cadena de formato de fecha, obtendrá un autocompletado con sugerencias para todos los caracteres que se reconocen como parámetros de formato.

Compatibilidad con la iteración sobre formas de matrices de listas

Support for array shape annotations was added in PhpStorm 2021.2, then in 2022.1, we added multiline and nested syntax support for array shapes.

La última pieza que faltaba se incluye en PhpStorm 2022.3: obtendrá finalización completa del código para los elementos en forma de matriz en los bucles.

Nueva solución Settings Sync

Hemos fusionado dos antiguas soluciones de sincronización (IDE Settings Sync y Settings Repository) en una sola: la nueva Settings Sync. Permite sincronizar de forma fiable la configuración entre diferentes IDE y máquinas.

Si no estaba usando una solución de sincronización de configuración antes, pero desea probar la nueva, puede activarla a través de Settings / Preferences | Settings Sync | Enable Settings Sync.

Docker

Docker ejecutable desde WSL sin Docker Desktop

Puede configurar este tipo de conexión en Settings / Preferences | Build, Execution, Deployment | Docker.

Nueva acción de contexto: Pull image

Llame a las acciones contextuales (Alt-Intro) en el nombre de la imagen resaltada y, a continuación, seleccione Pull Docker image para extraer una imagen necesaria sin ejecutarla desde Dockerfile, docker-compose.yml, o incluso desde las pruebas usando Testcontainers.

Compatibilidad con el tipo de archivo .dockerignore

Obtenga resaltado y finalización en archivos .dockerignore.

Compatibilidad con el formato heredoc en archivos Dockerfile

Utilice scripts multilínea directamente en sus Dockerfiles.

Conexiones Docker desde Docker Contexts

Set up additional Docker connections using Docker Contexts by calling the Add Service context menu in the Services view and selecting Docker Connections From Docker Contexts.

Cliente HTTP

Formatear solicitudes largas en HTTP Client

HTTP Client ofrece ahora mejores opciones de formateo para las solicitudes con URL largas. También puede utilizar la acción contextual Put query parameters on separate lines para dividir la consulta en fragmentos más pequeños en diferentes líneas.

Scripts presolicitud

HTTP Client ahora es compatible con bloques de scripts que se ejecutan antes de las solicitudes. Puede generar algunos datos antes de la ejecución de la solicitud y pasarlos a la solicitud posterior utilizando variables.

Nuevas API para gestores de JavaScript

PhpStorm ahora incorpora la API сrypto, de modo que es capaz de calcular los valores hash md5 o sha1 para una solicitud HTTP.

Ahora dispone de más funciones aleatorias, lo que resulta práctico para probar rápidamente la API.

Desarrollo web

Nuevas plantillas de proyectos para Next.js y Vite

Nuevas plantillas de proyectos para Next.js y Vite

El asistente New Project disponible en la pantalla Welcome de PhpStorm ahora incluye plantillas de proyecto para Vite y Next.js. También hemos actualizado la plantilla de proyecto para Vue para asegurarnos de que se ajusta a los estándares más recientes.

Code Vision para JavaScript y TypeScript

Code Vision para JavaScript y TypeScript

Los consejos insertados de Code Vision ahora también funcionan para JavaScript y TypeScript. Estos consejos facilitarán el seguimiento de los usos de varias clases, métodos, alias de tipos e interfaces en su código.

Actualizaciones de Vue

Actualizaciones de Vue

PhpStorm ahora puede ocuparse de las importaciones no resueltas y ofrecerá sugerencias para la importación de componentes Vue. También hemos agregado la compatibilidad con la sintaxis de desestructuración de props, hemos mejorado el comportamiento de la finalización de código y la comprobación de tipos para los props de los componentes de la biblioteca Vue, y hemos corregido varios problemas de Nuxt 3.

Compatibilidad con Vitest

Compatibilidad con Vitest

PhpStorm now supports Vitest, a Vite-native unit test framework! Puede ejecutar, reejecutar y depurar sus pruebas de todas las formas que cabría esperar, incluso a través de iconos del medianil. Además, el modo de inspección está activado con el escenario All tests de forma predeterminada. Las pruebas de instantáneas y la cobertura también son compatibles con el modo de inspección, lo que le permite obtener información casi instantánea sobre la cobertura durante la codificación.


Estos son los cambios más importantes de esta versión pero, por supuesto, hay muchos más. Consulte el anuncio de lanzamiento en el blog de PhpStorm para ver la lista completa de mejoras de esta versión.