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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
Sustituya las comprobaciones innecesarias de null con el nuevo operador seguro de PHP 8. Pulse Alt+Enter para realizar la transformación.
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.
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.
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.
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.
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.
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.
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.
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.
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!
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.
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.
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.
Eche un vistazo a Novedades en DataGrip 2021.2: todas estas funcionalidades también están disponibles en PhpStorm. Estos son solo algunos ejemplos.
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.
Nuestra finalización de código ha llegado a la consola de MongoDB.
Estas son solo algunas de las muchas mejoras adicionales en PhpStorm 2021.2:
dirname()
.