Novedades de PhpStorm 2023.1

PhpStorm 2023.1 es una actualización principal que incluye integración con 3v4l.org, mejor rendimiento, nueva interfaz de usuario mejorada, depurador DFA para PHP, compatibilidad con proyectos multi-composer.json y mucho más.

Nueva interfaz de usuario Beta

En la versión anterior introdujimos una nueva interfaz de usuario que estaba desactivada de forma predeterminada. En esta versión, seguimos perfeccionando la nueva interfaz de usuario basándonos tanto en sus comentarios como en nuestras investigaciones. Vea algunas de las mejoras a continuación.

Para activar la nueva interfaz de usuario, vaya a Preferences / Settings | Appearance & Behavior | New UI.

Modo Compact

El modo Compact mejora la experiencia de usuario de la nueva interfaz de usuario en pantallas más pequeñas. Hace que las barras de herramientas y los encabezados de las ventanas de herramientas sean más limpios, reduce los espacios y los caracteres de relleno, y reduce los iconos y los botones para ayudarle a centrarse en el código y no en los controles.

Para activar el modo Compact, vaya al menú View y seleccione <0>Appearance | Compact Mode.

Panel de nombre de archivo visible cuando las pestañas están ocultas en la nueva interfaz de usuario

El nombre del archivo abierto en ese momento se muestra ahora en un panel cuando las pestañas del editor están ocultas.

División vertical de las ventanas de herramientas

Este ajuste de la nueva interfaz de usuario le permite dividir el área de la ventana de herramientas en 2 ventanas y disponerlas de forma que pueda ver ambas ventanas de herramientas al mismo tiempo. Esto es algo que se podía hacer en la antigua interfaz de usuario, pero que faltaba en la nueva versión.

Para añadir una ventana de herramientas a esta zona y colocarla en la parte inferior, arrastre su icono por la barra lateral y suéltelo bajo el separador. Como alternativa, puede hacer clic con el botón derecho del ratón en el icono y asignar la nueva ubicación de la ventana de herramientas mediante la acción Move to.

Pestañas de proyecto en la nueva interfaz de usuario en macOS

Al abrir varios proyectos en la misma ventana, los usuarios de macOS ahora pueden cambiar fácilmente entre ellos utilizando las pestañas de proyecto que aparecen bajo la barra de herramientas principal.

De forma predeterminada en macOS, las pestañas de las ventanas solo están habilitadas en el modo de pantalla completa. Si desea habilitarlas permanentemente, ajuste las preferencias del sistema de la siguiente manera:

Widget Run rediseñado para la nueva interfaz de usuario

En respuesta a los comentarios que hemos recibido sobre la nueva interfaz de usuario del IDE, hemos rediseñado el widget Run de la cabecera de la ventana principal para que su aspecto sea discreto y más agradable a la vista.

PHP

Ejecutar archivos PHP scratch en 3v4l.org

PhpStorm 2023.1 natively integrates with 3v4l.org and allows you to run PHP scratch files on any desired PHP version without installing anything on your local machine.

Cree un nuevo archivo PHP scratch pulsando Ctrl+Alt+Mayús+Insert.

Elija la versión de PHP que desee en el menú desplegable y pulse el botón Run. Verá el resultado del script junto al editor.

If you find 3v4l.org useful, consider supporting its author with a donation here: github.com/sponsors/SjonHortensius.

Mejoras de rendimiento

En esta versión, hemos introducido varias mejoras significativas del rendimiento. Continuaremos con este esfuerzo en las próximas actualizaciones. Esto es lo que puede esperar de esta versión.

Índices compartidos para paquetes PHP populares

Algunos paquetes PHP son tan populares que no tiene sentido recompilar su índice en cada instancia de PhpStorm. En su lugar, ya hemos calculado para usted los índices de muchos paquetes PHP populares, como PHPUnit, aws/aws-sdk-php, doctrine/orm, laravel/framework, symfony/* y otros.

Ahora, cuando abre un proyecto PHP indexado, PhpStorm comprueba composer.json para ver cuáles de las dependencias especificadas tienen un índice compartido precompilado.

PhpStorm puede descargar el índice o recompilarlo localmente, dependiendo de si su CPU y RAM son más rápidas que su conexión a Internet.

También puede generar sus propios índices compartidos para sus proyectos privados. Obtenga más información sobre cómo hacerlo aquí.

Antes:

Después:

Acción Go to Class disponible durante la indexación

Como parte de nuestro esfuerzo por mejorar el rendimiento, estamos trabajando para garantizar que el mayor número posible de acciones estén disponibles durante la indexación.

Go to Class (Ctrl+O o Navigate | Class...) es una de las acciones más populares para navegar por el código. En esta versión, está disponible en cualquier momento, incluso mientras se recompila su índice. Anteriormente, mostraba una lista vacía hasta que finalizaba la indexación.

El anotador se ejecuta durante la indexación

Otra acción que ahora está disponible incluso cuando la indexación aún está en curso es la anotación del código.

Esto significa que muchos errores y palabras clave serán resaltados por PhpStorm antes de tiempo para hacer su flujo de trabajo más fluido y menos lento.

El proceso Scanning files to index es ahora inteligente

El IDE se abre ahora mucho más rápido porque PhpStorm utiliza las cachés existentes del proyecto de la sesión anterior y busca cualquier archivo nuevo para indexarlo. Si no se encuentra ningún cambio tras el análisis, el IDE estará listo para trabajar de inmediato.

Inspecciones más rápidas

Hemos trabajado para mejorar el rendimiento de todas las inspecciones, especialmente las más pesadas. Algunas de ellas son ahora un 30-40 % más rápidas, mientras que para otras, el aumento del rendimiento no es tan drástico, pero el efecto combinado sigue siendo notable. Vea en el vídeo siguiente una comparación con las versiones anteriores.

Plantillas de Blade

Hemos mejorado drásticamente el rendimiento del resaltado dentro de las etiquetas @php...@endphp. Todas las palabras clave y constructs se resaltan ahora mucho más rápido, independientemente de la complejidad del código.

Nueva sugerencia del IDE para reconfigurar los ajustes de Windows Defender para un mejor rendimiento

Las comprobaciones de protección en tiempo real de Windows Defender pueden disminuir significativamente la velocidad del IDE. Para evitarlo, PhpStorm sugiere ahora añadir ciertas carpetas a la lista de exclusiones de Defender.

La notificación ofrece la opción de reconfigurar estos ajustes automáticamente o consultar primero las instrucciones de configuración de Defender y hacerlo manualmente.

Depurador con análisis de flujo de datos

Los usuarios que prefieren Xdebug para depurar aplicaciones PHP pueden disfrutar ahora de una funcionalidad más avanzada, denominada depurador de análisis de flujo de datos (DFA). Le permite ver por adelantado ramas de código que nunca se ejecutarán, sin tener que recorrer paso a paso el código con el depurador.

PhpStorm muestra ahora el resultado precalculado de las condiciones en la incrustación de la derecha antes de que se ejecute el código. Esto le permite hacerse una idea de la situación del código sin necesidad de profundizar. Las ramas que no se ejecutarán aparecerán en gris durante la sesión de depuración.

Desactivar el DFA durante la depuración

Si no le interesa esta información adicional durante la depuración, puede hacer clic con el botón derecho del ratón en cualquier incrustación de valor precalculado y desactivar la función DFA para la sesión de depuración actual.

Si desea desactivar la funcionalidad de forma permanente, puede hacerlo en Preferences/Settings | PHP | Debug | Xdebug.

Limitaciones

Actualmente, PhpStorm no precalcula los valores de las propiedades debido a limitaciones técnicas. Se trata de un área de futuro desarrollo.

Compatibilidad con todas las etiquetas PHPStan y Psalm

Todas las etiquetas PHPStan y Psalm existentes se analizan ahora correctamente en PhpStorm. Esto hace que el código muy anotado sea más legible.

Compatibilidad con proyectos multicompositor y multiproveedor

Anteriormente, PhpStorm trataba cualquier proyecto abierto como un único espacio. Sin embargo, cada vez vemos más casos en los que hay varias aplicaciones en el mismo proyecto, todas con sus propias dependencias composer.json.

Hemos implementado una base para admitir este tipo de proyectos con varios archivos composer.json y directorios de proveedores. Esto aporta las siguientes mejoras:

  • Los directorios excluidos están configurados correctamente; esto mejora el rendimiento general porque ejecutamos menos análisis e inspecciones. También hace que la resolución múltiple sea más estable.
  • Las raíces PSR se detectan correctamente: las refactorizaciones como Move Class funcionan como se espera cuando se arrastran y sueltan clases entre aplicaciones del proyecto.
  • Las extensiones que faltan en composer.json se notifican correctamente por aplicación.

Nuevas inspecciones

Inspecciones personalizadas de búsqueda y sustitución basadas en Regexp

Ya puede utilizar expresiones regulares para crear sus propias inspecciones de búsqueda y reemplazo. Estas inspecciones pueden ser especialmente útiles para resaltar problemas de estilo y formato o cuestiones sencillas relacionadas con el código.

Vaya a Settings/Preferences | Editor | Inspections y pulse el icono +. Seleccione Add RegExp Search Inspection (o Replace) en la lista y se le dirigirá a un cuadro de diálogo en el que podrá configurar su nueva inspección.

Para inspecciones más avanzadas que pueden implicar comprobaciones de jerarquía de tipos, puede utilizar las inspecciones Structural Search and Replace (SSR). Learn more about them in the docs, or check out the example in the video.

Inspecciones PHP integradas

Cada versión de PhpStorm viene con una serie de nuevas inspecciones listas para usar. PhpStorm 2023.1 no es una excepción, así que aquí tiene algunas que merece la pena mencionar:

Anulación de método/extensión de clase marcada como @final

Puede marcar las clases con la palabra clave final, dando lugar a un error grave en caso de infracción. Un enfoque más suave sería añadir la etiqueta PHPDoc @final.

En este caso, PhpStorm resaltará la herencia incorrecta, pero el código no producirá un error durante la ejecución.

Tipos de retorno incompatibles

Con un nuevo arreglo rápido en PhpStorm 2023.1, ahora puede añadir un tipo de retorno compatible para los métodos de las clases secundarias, o cambiarlo si es incompatible.

La aserción puede sustituirse por assertTrue/assertFalse.

Múltiples instancias de isset() de acceso a matrices u objetos anidados pueden sustituirse por una sola.

Añada global para las variables a las que se accede desde otros archivos.

Mejoras en la calidad de vida de PHP

Rutas y referencias de clase clicables para los resultados de var_dump() / dd() en el terminal

Queremos mejorar la experiencia de depuración para los usuarios que prefieren el enfoque «dump and die». Como primer paso, ya hemos activado las rutas de los archivos y las referencias a clases. Al hacer clic en ellos, se abre el archivo correspondiente en el editor.

Descripciones de los modos de apertura de archivos en la ventana emergente de finalización

En la versión anterior de PhpStorm, añadimos descripciones para diferentes formatos en las funciones fecha-hora.

Todas las funciones que aceptan modos de archivo, tienen ahora una descripción detallada de ellas en un desplegable de finalización. Ya no tendrá que recordar lo que significan r+, a y w.

Más plantillas activas

Hemos introducido más plantillas activas, incluidas fun para la plantilla de funciones y fori para bucles indexados.

Experiencia de usuario

Zoom completo en el IDE

Ahora es posible ampliar y reducir PhpStorm en su conjunto, cambiando el tamaño de todos los elementos de la interfaz de usuario simultáneamente. En el menú principal, seleccione View | Appearance y ajuste la escala del IDE.

Esto podría ser útil para demostraciones, transmisiones en directo, reuniones en línea o presentaciones.

Dotando a estas acciones de accesos directos únicos, le resultará más sencillo invocarlas. Vaya a la ventana Search Actions (Ctrl+Mayus+A), escriba «zoom ide» y asigne un acceso directo tras pulsar Alt+Intro.

Opción para guardar varios diseños de ventanas de herramientas

Ahora puede guardar y gestionar varios diseños de ventanas de herramientas y cambiar entre ellos cuando sea necesario. Compruebe las nuevas acciones en Window | Layouts para guardar, actualizar y activar los diseños.

Nuevo ajuste Remember size for each tool window

La nueva casilla de verificación Remember size for each tool window está disponible en Settings/Preferences | Appearance & Behavior | Appearance | Tool Windows. Le permite unificar la anchura de las ventanas de herramientas laterales o conservar la posibilidad de ajustar libremente sus tamaños a medida que personaliza su diseño.

Editor

Fill Paragraph para archivos Markdown

Los archivos Markdown admiten ahora la acción del editor Fill Paragraph, que le permite dividir fragmentos largos de texto en líneas de igual longitud.

Para ello, coloque el signo de intercalación dentro del párrafo que desee modificar y elija la acción en el menú Edit. También puede utilizar Find Action (Ctrl+Mayus+A) para buscar el comando Fill Paragraph y ejecutarlo.

Nueva página de configuración de Smart Keys para Markdown

Hemos añadido una página a Settings/Preferences | Editor | General | Smart Keys donde puede configurar y cambiar sus preferencias de Markdown.

Esta página debería facilitarle la gestión de sus preferencias, ya que dispone de casillas de verificación independientes para las distintas funcionalidades del editor. Anteriormente, solo había una casilla de verificación en Settings/Preferences | Languages & Frameworks.

Opción para mostrar los espacios en blanco solo en el código seleccionado

Hay una nueva casilla de verificación Selection en Settings/Preferences | Editor | General | Appearance | Show Whitespace que le permite configurar este ajuste para que el IDE muestre los espacios en blanco como pequeños puntos solo cuando seleccione código.

VCS / Git / GitHub

Sugerencias de color sobre el estado del VCS en la ventana de herramientas Structure

En la ventana de herramientas Structure, hemos añadido sugerencias de color para los cambios.

Esto significa que ahora puede ver qué propiedades, métodos y funciones se han modificado o añadido.

Ventana emergente de ramas mejorada

Ahora es más fácil moverse entre las ramas porque se almacenan en listas que pueden ampliarse.

Autocompletado en la ventana emergente Create New Branch

Con PhpStorm 2023.1 EAP #1, implementamos el autocompletado en la ventana emergente Create New Branch. Una vez que empiece a escribir un nombre para su nueva rama, el IDE le sugerirá prefijos relevantes basándose en los nombres de las ramas locales existentes.

Comprobaciones de confirmación en segundo plano

Las comprobaciones de confirmación se realizan ahora en segundo plano después de confirmar pero antes de enviar. Esto debería acelerar el proceso general de confirmación.

Flujo de trabajo de revisión de código mejorado para GitHub

Investigando descubrimos que el escenario más común de uso de solicitudes de incorporación de cambios es cuando un usuario acude primero a GitHub, y luego se remite al IDE en los casos en los que es necesario navegar completamente por el código.

Para facilitar este flujo de trabajo, hemos reelaborado la ventana de herramientas Pull Request. Ahora cuenta con una pestaña dedicada para cada solicitud de incorporación de cambios que abra. La pestaña muestra instantáneamente la lista de archivos modificados, pero ahora ofrece menos distracciones que antes. Esto le permite centrarse mejor en la tarea actual.

Ahora también hay un botón específico para ejecutar fácilmente la acción que se considere más importante dado el estado actual de la solicitud de incorporación de cambios.

Mejoras en Docker

Registro fusionado desde todos los contenedores Docker Compose

La pestaña Dashboard del nodo Docker Compose reúne ahora los registros de todos los contenedores Docker Compose y los muestra todos en un mismo lugar. También se actualizan en tiempo real.

Compatibilidad con Azure Container Registry

Ahora puede conectarse fácilmente a Azure Container Registry. Vaya a Preferences / Settings | Build, Execution, Deployment | Docker | Docker Registry y configúrelo seleccionando la opción Docker V2 en el campo de entrada Registry.

Nuevo ajuste para aplicar la opción de montaje :z a los volúmenes enlazados en SELinux

Ahora puede añadir el indicador de configuración :z a los montajes enlazados de Docker, lo que le permite conectar volúmenes a contenedores Docker en estaciones de trabajo SELinux.

Para activar esta función, vaya a Preferences / Settings | Advanced Settings | Docker.

Web

Compatibilidad con Astro

Long-awaited Astro support has landed in PhpStorm! Para ello, deberá contar con el nuevo complemento Astro, que puede instalarse desde Preferences/Settings | Plugins. El complemento ofrece funciones básicas, como el resaltado de sintaxis, la finalización de código con importaciones automáticas, refactorizaciones, navegación, formateo correcto y mucho más.

Compatibilidad con TypeScript en plantillas Vue

Hemos añadido la compatibilidad con TypeScript en las plantillas Vue. Se activa al establecer el atributo lang de una etiqueta script en ts. Anteriormente, JavaScript se utilizaba independientemente del atributo lang de la etiqueta script. PhpStorm proporcionará ahora compatibilidad con inline casting, acotado de tipos mejorado, e información correcta sobre tipos inferidos en la documentación rápida en plantillas de Vue Single-File Components.

Configuración de Tailwind CSS

En esta versión, hemos añadido la compatibilidad con opciones de configuración, como la finalización de nombres de clase personalizados en la opción classAttributes, o experimentales como tailwindCSS.experimental.configFile.

Puede configurar estas opciones en Preferences / Settings | Languages & Frameworks | Style Sheets | Tailwind CSS.


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