Novedades de PhpStorm 2023.3

Los aspectos más destacados de esta importante actualización incluyen:

  • AI Assistant ya ha finalizado su fase de versión preliminar
  • Compatibilidad con Pest
  • Compatibilidad con PHP 8.3
  • Compatibilidad mejorada con Symfony
  • Mejoras en la calidad de vida de la interfaz de usuario

AI Assistant ya ha finalizado su versión preliminar Disponible para el público general

AI Assistant de JetBrains ya está disponible para todos con una serie de funcionalidades nuevas y mejoradas para aumentar su productividad en los IDE de JetBrains.

Finalización de código basada en LLM

Finalización de código basada en LLM

AI Assistant ya puede generar bloques de código de varias líneas por usted. Solo tiene que comenzar a escribir en una nueva línea y, si hay una sugerencia del LLM disponible, aparecerá un fragmento de código en gris. Pulse Tab para aceptar la sugerencia.

Actualmente, estas sugerencias están disponibles dentro de los contextos de clase o dentro de las definiciones de funciones.

Generación de código de prueba

Generación de código de prueba

AI Assistant también es capaz de generar pruebas para los métodos de las clases. Con el signo de intercalación situado sobre el método de la clase que desea cubrir con pruebas de unidad, solo tiene que pulsar Alt+Intro, seleccionar AI Assistant y elegir Generate Unit Tests.

Generación de código en el editor

Generación de código en el editor

Anteriormente, podía utilizar el chat de inteligencia artificial para generar fragmentos de código. Ahora existe la acción AI Assistant | Generate code... que abre una consulta directamente dentro del editor. Se le pedirá que introduzca una descripción del código que desea generar. Una vez que lo haga, AI Assistant le ofrecerá sugerencias, y usted podrá aceptarlas todas o parte de ellas.

Explicaciones de errores basadas en IA en la consola

Explicaciones de errores basadas en IA en la consola

A veces, cuando ejecuta un script PHP o configuración de ejecución, o ejecuta una acción de Composer, la tarea falla por alguna razón. AI Assistant puede ayudarle a descubrir la causa del problema. Haga clic en el botón Explain with AI en una traza de pila o mensaje de error para obtener una explicación generada por IA.

Utilice AI Assistant en PhpStorm como función complementaria con una suscripción a JetBrains AI Service.

Actualizaciones de Pest

PhpStorm now supports the Pest test framework out of the box. We recently agreed with the original author of the Pest plugin to take over its development and bundle it in PhpStorm. You can read the details in our recent blog post.

Pruebas con Pest

Al igual que las pruebas con PHPUnit, las pruebas con Pest pueden ejecutarse ahora directamente desde PhpStorm. Cuando sitúe el signo de intercalación dentro de una prueba y active la ventana de ejecución, se creará una configuración de ejecución para esa prueba específica. Puede situar el signo de intercalación en el archivo, pero no dentro de ninguna prueba en particular, para desencadenar todas las pruebas de ese archivo.

Aserciones

Con esta nueva compatibilidad con Pest, puede escribir aserciones llamando a funciones o métodos en $this. También mejora el autocompletado en las funciones de prueba, para que pueda ver qué aserciones están disponibles mientras escribe.

Expectativas personalizadas

En Pest, puede escribir expectativas personalizadas para reducir las comprobaciones rutinarias en sus pruebas. PhpStorm puede ayudarle a encontrar usos de expectativas personalizadas y a renombrarlas.

Compatibilidad con PHP 8.3

PhpStorm 2023.3 incorpora la compatibilidad completa con PHP 8.3. La mayoría de los cambios en el IDE se integrarán orgánicamente en su flujo de trabajo de PhpStorm sin que lo note, por lo que solo mencionaremos las nuevas funcionalidades que le vendrá bien conocer para poder aprovecharlas.

Atributo Override

Atributo #[\Override]

PHP 8.3 introduce el nuevo atributo #[\Override]. Se puede utilizar para mostrar explícitamente su intención al anular un método. El motor PHP es capaz de comprobar si un método marcado con #[\Override] realmente anula el método principal, y lanza una excepción si no es así. PhpStorm 2023.3 le avisa con antelación de estos casos.

Añadir sugerencia de atributo Override

PhpStorm también sugiere añadir el atributo #[\Override] cuando sea aplicable.

Función json_validate() Función json_validate()

Nueva función json_validate()

PHP 8.3 añade la nueva función json_validate() a la biblioteca estándar. Anteriormente, la única forma de validar si una cadena era un JSON válido era descodificarla y detectar si generaba algún error. PhpStorm es capaz de detectar estos patrones y sugerir su sustitución por una llamada a la función json_validate(). Esto puede resultar práctico si solo necesita saber si la entrada es un JSON válido, ya que utiliza menos memoria en comparación con la descodificación de la cadena.

Constantes de clase por tipos

Constantes de clase por tipos

En PHP 8.3, puede declarar tipos para las constantes de clase. Se pueden utilizar todas las declaraciones de tipo excepto void, callable y never.

Para las constantes de clase por tipos, PhpStorm indica:

  • Sugerencias para insertar los tipos adecuados
  • Finalización de consejos de tipo
  • Comprobaciones de compatibilidad con el tipo del valor predeterminado
  • Comprobaciones de redeclaración de tipos al sobrescribir una constante en una clase secundaria
Desusos Desusos

Desusos

PHP 8.3 ha eliminado algunas funcionalidades, y PhpStorm le cubre las espaldas con las inspecciones correspondientes para detectarlas.

Compatibilidad con Symfony

PhpStorm 2023.3 incorpora varias mejoras para los desarrolladores que usan Symfony.

Asistente New Project

Asistente New Project

Un nuevo inicializador de proyectos incorporado para Symfony permite crear nuevos proyectos Symfony con los tipos y versiones que desee directamente desde la pantalla Welcome.

Compatibilidad con Doctrine Query Language en QueryBuilder

Compatibilidad con Doctrine Query Language en QueryBuilder

Ahora puede disfrutar de compatibilidad completa del IDE con DQL dentro de las llamadas a métodos de QueryBuilder. Entre sus funcionalidades se incluyen el resaltado, la finalización de campos, la posibilidad de resolver a la clase modelo de destino y mucho más.

Conversión de anotaciones a atributos para Symfony y Doctrine

Conversión de anotaciones a atributos para Symfony y Doctrine

Following the introduction of attributes in PHP 8.0, Doctrine annotations are being deprecated and will soon be removed. Para ayudarle a realizar el cambio, PhpStorm 2023.3 incluye una funcionalidad para convertir las anotaciones de Doctrine en atributos.

PhpStorm también admite la conversión de anotaciones de Symfony a sus atributos correspondientes, como #[Required], #[Route], etc.

Otras actualizaciones de PHP

Opción de excluir archivos de bibliotecas externas de su proyecto

Opción de excluir archivos de bibliotecas externas de su proyecto

Como novedad experimental, también hemos añadido la posibilidad de excluir directorios procedentes de bibliotecas indexadas. Excluir este tipo de archivos de su proyecto le ayudará a evitar problemas de definiciones múltiples y a mejorar el rendimiento de la indexación.

Estilos específicos para los tipos genéricos

Estilos específicos para los tipos genéricos

Seguimos trabajando para mejorar la experiencia de uso de los genéricos. En PhpStorm 2023.3, ahora es posible establecer un código de colores para los genéricos, lo que facilita la distinción entre tipos genéricos.

Posibilidad de plegar atributos PHP multilínea

Posibilidad de plegar atributos PHP multilínea

Con el aumento de la adopción de atributos, a veces puede resultar difícil leer código anotado con largos atributos multilínea de un marco de trabajo determinado. En PhpStorm 2023.3, esto ya no debería ser un problema, ya que ahora puede plegar los atributos multilínea.

Conversión de metadatos PHPUnit de PHPDoc a atributos

Conversión de metadatos PHPUnit de PHPDoc a atributos

PHPUnit 10 introduced support for attributes for adding metadata to test classes and test methods, as well as tested code units. Hemos implementado una inspección y un arreglo rápido que le ayudarán a migrar a este nuevo estilo desde las antiguas anotaciones PHPDoc.

Sistemas de control de versiones

El visor diff todo en uno

PhpStorm 2023.3 presenta una forma renovada de revisar los cambios. Ahora, en lugar de recorrer cada archivo uno por uno, puede ver todos los archivos modificados a partir de un conjunto de cambios en un único marco por el que puede desplazarse. Este nuevo visor diff es accesible desde la ventana de la herramienta Git Log, y actualmente funciona con las revisiones de JetBrains Space. Estamos trabajando para que sea compatible con GitLab y GitHub.

Depurador

Depurador

La nueva opción de inserción Run to Cursor de PhpStorm 2023.3 le permite ejecutar rápidamente hasta una línea específica de código mientras depura. Una vez suspendido el programa, puede pasar el ratón por encima de la línea de código hasta la que desee ejecutar y utilizar la ventana emergente Run to Cursor. Puede lograr el mismo resultado mediante el acceso directo de teclado Alt + F9 tras situar el signo de intercalación en la línea deseada.

Interfaz de usuario

Opción de ocultar la barra de herramientas principal en el modo de visualización predeterminado

Opción de ocultar la barra de herramientas principal en el modo de visualización predeterminado

En respuesta a sus comentarios sobre la nueva interfaz de usuario, hemos hecho posible ocultar la barra de herramientas principal cuando se utiliza el modo de visualización predeterminado del IDE, al igual que en la antigua interfaz de usuario. Para eliminar la barra de herramientas, seleccione View | Appearance y desmarque la opción Toolbar.

Opción para volver al diseño predeterminado de la ventana de herramientas

Opción para volver al diseño predeterminado de la ventana de herramientas

Con el lanzamiento de PhpStorm 2023.1, hemos introducido la posibilidad de guardar varios diseños de ventanas de herramientas y cambiar entre ellos, parar mejorar así la personalización de su espacio de trabajo. En PhpStorm 2023.3, ampliamos esta funcionalidad con la opción Default layout, una forma rápida de revertir la apariencia de su espacio de trabajo a su estado predeterminado. Este diseño no es personalizable, y se puede acceder a él a través de Window | Layouts.

Pestañas del editor codificadas por colores predeterminadas

Pestañas del editor codificadas por colores predeterminadas

Para facilitar el trabajo con diversos tipos de archivos en el editor al mismo tiempo, hemos introducido de modo predeterminado un código de colores para las pestañas del editor, que replica su aspecto en la ventana de herramientas Project.

Mejoras de TypeScript

Mejoras de TypeScript

Repleto de funcionalidades WebStorm, PhpStorm aborda ahora algunas de las frustrantes incoherencias que se producen al añadir declaraciones import type, y facilita el trabajo con verbatimModuleSyntax. Hemos añadido la opción de configurar el tipo de declaración de TypeScript import type. También hemos mejorado el comportamiento del campo exports de package.json para los archivos TypeScript.

Cierre de etiqueta individual de HTML a JSX

Actualizaciones de HTML

Ahora, cuando pegue código HTML en un archivo JSX, PhpStorm no solo convertirá los atributos, sino que también cerrará automáticamente las etiquetas individuales por usted. Puede configurar esta opción en Settings | Editor | General | Smart Keys | JavaScript.

Compatibilidad con @property de CSS personalizadas

Mejoras de CSS

To support the new @property API for creating custom CSS properties, PhpStorm 2023.3 now offers inspections and completion features for explicitly defining CSS custom properties, allowing you to check and restrict property types, establish default values, and determine inheritance possibilities for custom properties.

Mejoras para Vue 3

Mejoras para Vue 3

Hemos añadido la compatibilidad con defineSlots para proporcionar finalización y navegación para el nombre slot, así como la refactorización Rename. También hemos incorporado la compatibilidad con la finalización de propiedades con defineExpose. En PhpStorm 2023.3, las importaciones requeridas para los componentes se añadirán basándose en el nombre especificado por la función defineOptions.