Novedades de PhpStorm 2021.2

PhpStorm 2021.2 es una importante actualización que introduce compatibilidad preliminar con genéricos en PHP, enums en PHP 8.1, anotaciones de forma vectorial de una línea, y mejora del formateo automático del código PHP, así como nuevas inspecciones y refactorizaciones.

Genéricos para PHP

Por el momento, PHP no ofrece compatibilidad con los genéricos a nivel de lenguaje, pero su uso a través de anotaciones ya ha cobrado bastante popularidad. Hacen que el código sea más seguro y predecible cuando se trabaja con colecciones, contenedores, fábricas y otras aplicaciones.

Genéricos para PHP

Hemos añadido compatibilidad con los genéricos a través de la anotación @template. Así, trabajar con colecciones es más sencillo en muchos casos, ya que las sugerencias contendrán elementos del tipo esperado.

Para los patrones de fábrica, ahora puede utilizar la anotación class-string<T> y obtendrá una mejor finalización del código.

Esta compatibilidad preliminar con los genéricos no es completa y tiene limitaciones conocidas. Puede obtener más información al respecto en esta entrada del blog.

PHP 8.1 Enums

Se espera que la nueva versión 8.1 del intérprete de PHP se lance a finales de 2021. Pero, como siempre, estamos empezando a implementar el apoyo temprano.

Una de las características más esperadas de la versión PHP 8.1 son las enums.

Con PhpStorm 2021.2, puede empezar a utilizar enums inmediatamente. El IDE ofrece sugerencias de código y validación para protegerle de un uso incorrecto.

Una enum en PHP contiene un conjunto de casos, puede tener métodos, y puede utilizarse como un consejo de tipo; en todos estos casos, PhpStorm proporcionará resaltado de errores y sugerencias adecuadas para ahorrarle tiempo.

Backed Enums

Los casos de Enum pueden tener equivalentes escalares. Esto es útil si necesita guardar una enum en un almacén de datos. Estas enums se conocen como backed enums.

Con un arreglo rápido, puede añadir una declaración de tipo escalar a una backed enum.

Las enums también funcionan bien con otras funcionalidades, como las condiciones y las expresiones de coincidencia.

Más información

Formas vectoriales

Formas vectoriales

Si hay vectores tipo objeto en su código, ahora puede definir su estructura con esta anotación PHPDoc: array{key: type, key: type, ...}.

PhpStorm proporciona finalización del código para estas matrices anotadas, reduciendo el tiempo que se dedica a la rutina de escribir y protegiéndole de los errores.

La compatibilidad se limita a las definiciones de formas vectoriales de una línea. Para estructuras más grandes, suele ser mejor utilizar objetos y clases reales.

Refactorización mejorada de Extraer Método

Una de las refactorizaciones de PhpStorm más utilizadas, Extract Method (extraer método), acaba de mejorar.

Permite dividir los métodos grandes en unidades más pequeñas, y también elimina el código duplicado.

Para utilizar esta refactorización, seleccione cualquier fragmento de código y presione ⌘⌥M (Cmd+Alt+M / Ctrl+Alt+M).

Refactorización de código duplicado

PhpStorm cuenta con una inspección de fragmentos de código duplicados. Destaca cualquier fragmento de código que sea muy similar: el formato, los nombres de las variables y el orden de las declaraciones pueden ser diferentes siempre que el resultado final sea el mismo.

Esta inspección destaca las primeras líneas de fragmentos duplicados. Ahora puede refactorizar rápidamente dicho código pulsando Alt+Enter en la línea resaltada e invocando la refactorización de Extract Method desde el arreglo rápido del código duplicado.

PhpStorm también puede encontrar duplicados de fragmentos de código más pequeños en el ámbito actual (método, clase o archivo) durante la refactorización. Seleccione un fragmento de código y, a continuación, llame a la refactorización con ⌘⌥M(Cmd+Alt+M / Ctrl+Alt+M). Verá la casilla Review and replace duplicates en la parte inferior del diálogo.

Nuevo selector inteligente de fragmentos de código

Nuevo selector inteligente de fragmentos de código

También puede invocar la refactorización Extract method sin seleccionar ningún código. En este caso, PhpStorm sugiere una lista de posibles fragmentos de código. Las sugerencias se filtran y contienen solo los segmentos que tienen sentido para refactorizar.

Mejoras en la selección Expand

Probablemente ya sepa que puede seleccionar un fragmento de código con la acción Expand / Shrink selection ⌥+Up / ⌥+Down (Ctrl+W / Ctrl+Shift+W). Esta es una de las formas más rápidas de seleccionar el código para su refactorización.

Esta versión incorpora una pequeña pero útil actualización: la posibilidad de seleccionar bloques sin llaves.

¡La refactorización Extract Method presenta todavía más mejoras! Eche un vistazo a los detalles en esta entrada del blog.

Inspecciones y arreglos rápidos

Cada versión incluye una gran cantidad de inspecciones para reducir el tiempo que dedica a buscar errores y solucionarlos. Pulse Alt+Enter en cualquier código resaltado en PhpStorm para aplicar una corrección.

La condición puede ser sustituida por `?->`

La condición puede ser sustituida por `?->`

Sustituya las comprobaciones innecesarias de null con el nuevo operador seguro de PHP 8. Pulse Alt+Enter para realizar la transformación.

Utilizar la constante desde una clase donde está definida

Utilizar la constante desde una clase donde está definida

PhpStorm resaltará las constantes a las que se accede a través de la subclase o subinterfaz en lugar de la entidad donde se define la constante. Sustituya el nombre de la entidad por aquel en que está definida la constante utilizando el arreglo rápido Alt+Enter.

Condiciones redundantes en las expresiones lógicas

Condiciones redundantes en las expresiones lógicas

PhpStorm evaluará ahora partes de las condiciones para identificar cualquier redundancia. Esto puede resultar útil cuando las comprobaciones no son obvias y no se puede saber cuáles son redundantes con solo mirarlas.

Inspecciones de oportunidades de refactorización

Hemos añadido un nuevo grupo de inspecciones en la sección PHP de Settings / Preferences | Editor | Inspections.

Este grupo incluye inspecciones que pueden ayudar a identificar buenos candidatos para la refactorización. Estas inspecciones están deshabilitadas por defecto, pero incluso en este estado deshabilitado, verá un icono adicional de medianil cerca del código que detectan (en lugar de subrayarlo en el editor).

Al hacer clic en el icono del medianil se invoca la refactorización sugerida.

Estas inspecciones son combinaciones de varias métricas de calidad de código: complejidad ciclomática, profundidad de anidad, número de variables utilizadas, número total de líneas y muchas otras.

Puede encontrar la lista de métricas utilizadas en la descripción de cada inspección.

Más información

IDE

Ejecutar las pruebas antes de la confirmación

Ejecutar las pruebas antes de la confirmación

Hemos ampliado la lista de posibles acciones previas a la confirmación con la capacidad de ejecutar pruebas. Marque la casilla de verificación Run Tests y seleccione la configuración que desee ejecutar. Es útil para que el código sea verificado antes de hacerlo en el VCS.

Ahora puede personalizar las opciones de Analyze code y Cleanup haciendo clic en Choose profile junto a ellas.

Acciones al guardar

Acciones al guardar

Hemos añadido una nueva página de configuración en Preferences / Settings | Tools | Actions on Save.

Allí encontrará una lista de acciones que se pueden desencadenar con Ctrl + S o con el guardado automático implícito. Estas acciones incluyen comprobaciones de código, reformateo, limpieza del código, implementación y muchas otras.

Show Diff unificado

Show Diff unificado

PhpStorm abrirá una comparación diff entre los archivos iniciales y los modificados en el editor predeterminado, sin importar dónde haya invocado la acción Show Diff. Si el seguimiento de los cambios en una ventana aparte es más cómodo para usted, simplemente arrastre y suelte el archivo que desee desde el editor.

Revisiones de búsqueda de texto en el historial local

Revisiones de búsqueda de texto en el historial local

El historial local Local History ha sido el héroe olvidado de muchos desarrolladores, y ahora se ha mejorado para permitirle encontrar rápidamente el texto que necesita en las revisiones locales utilizando el campo de búsqueda del diálogo Local History.

Revisiones de búsqueda de texto en el historial local

Firma GPG

PhpStorm 2021.2 ofrece una forma de asegurar sus confirmaciones. Ahora puede habilitar la firma de confirmaciones de Git con GPG. Solo tiene que ir a Settings | Version Control | Git y hacer clic en el botón Configure GPG Key.

Interfaz de usuario traducida

Interfaz de usuario traducida a chino, japonés y coreano

A partir de esta versión, puede disfrutar de la interfaz de usuario de PhpStorm completamente traducida a chino, coreano y japonés. La localización está disponible como complementos de paquetes de idiomas no incluidos, que puede instalar fácilmente en su IDE*. Más de 1,5 millones de usuarios han empezado a utilizar la versión de acceso anticipado parcialmente localizada de nuestros paquetes de idiomas. ¡Ahora, puede disfrutar de la experiencia completa de localización!

Tecnologías web

Todas las nuevas funcionalidades y mejoras de WebStorm 2021.2 también están disponibles en PhpStorm 2021.2, y están listas para usar o con complementos gratuitos en el Marketplace de complementos.

Renombrar la refactorización de los vínculos React useState

Renombrar la refactorización de los vínculos React useState

PhpStorm puede ahora renombrar tanto los valores como las funciones de useState. Coloque el signo de intercalación en un valor de estado y pulse ⇧F6/Mayús+F6 o vaya a Refactor | Rename desde el menú contextual del botón derecho.

Importación automática de require()

Importación automática de require()

PhpStorm ahora puede añadir las declaraciones de importación que faltan cuando se utiliza la finalización de código al trabajar con módulos CommonJS.

Herramientas para bases de datos

Eche un vistazo a Novedades en DataGrip 2021.2: todas estas funcionalidades también están disponibles en PhpStorm. Estos son solo algunos ejemplos.

Fuente de datos DDL

Fuente de datos DDL

Ahora es posible generar una fuente de datos DDL basada en una real. Los archivos DDL se crearán en el disco y la nueva fuente de datos se basará en ellos. De este modo, siempre podrá regenerar estos archivos y actualizar la fuente de datos DDL.

Finalización de campos y operadores para MongoDB

Finalización de campos y operadores para MongoDB

Nuestra finalización de código ha llegado a la consola de MongoDB.

Otras mejoras

Estas son solo algunas de las muchas mejoras adicionales en PhpStorm 2021.2:

  • Previsualice archivos HTML y PHP en un navegador utilizando el servidor web incorporado de PhpStorm. PhpStorm ahora puede recargar automáticamente las páginas abiertas al guardar.
  • Ahora es más fácil reorganizar las ventanas de herramientas. Pase el ratón por encima de la ventana de la herramienta que desee mover, arrástrela y suéltela donde quiera situarla.
  • PhpStorm limpia automáticamente los directorios de cachés y registros que fueron actualizados por última vez hace más de 180 días. También puede limpiar manualmente mediante Help | Delete Leftover IDE Directories.
  • Se han añadido nuevas opciones de terminal para establecer una forma de cursor y para utilizar Opción como tecla meta.
  • Se ha añadido una nueva página de configuración avanzada que ofrece opciones para ajustar PhpStorm en Preferences.
  • Se ha mejorado significativamente la velocidad de carga de FTP para grandes colecciones de archivos.
  • Se ha añadido compatibilidad con el parámetro de niveles en dirname().
  • Se han resuelto todos los problemas pendientes con el formateo del código PHP.