Novedades de PhpStorm 2020.1

Disfrute de una enorme productividad con esta gran actualización de IDE

Soporte innovador para composer.json

Gestione fácilmente las dependencias: ahora todas las acciones están disponibles directamente en el editor de un archivo composer.json.

Funciones flecha

Gestión de las dependencias

Hemos deshabilitado el antiguo cuadro de diálogo Manage dependencies porque trabajar con los paquetes desde dentro del archivo composer.json es mucho más sencillo.

Para añadir un nuevo paquete, puede empezar a escribir su nombre en la sección require(-dev) o pulsar Ctrl+Espacio y elegir el que necesita de la lista de sugerencias.

También se enumerarán todas las versiones disponibles del paquete concreto.

Crear un nuevo archivo composer.json

Crear un nuevo archivo composer.json

Cuando empieza un nuevo proyecto, puede crear un archivo composer.json utilizando la plantilla en el IDE. Haga clic con el botón derecho en el árbol del proyecto y seleccione New -> composer.json File.

Actualizar e instalar paquetes

Actualizar e instalar paquetes

Si existe una dependencia que se especifique en composer.json, pero que aún no se haya instalado, PhpStorm la detectará y la resaltará.

Pulse Alt+Intro para instalarla y seleccione Update package o Update all packages.

Navegación a los archivos y carpetas

Navegar a los archivos y carpetas

Puede utilizar Ctrl+clic en un paquete para que PhpStorm resalte la carpeta de dicho paquete debajo del directorio de proveedor en el árbol del proyecto. Para los archivos, esto los abrirá en el editor.

Igualmente, Ctrl+clic o Ctrl+B le sirve para abrir cualquier enlace en composer.json en un navegador.

Composición y ejecución de scripts

Composición y ejecución de scripts

Cada entrada de la sección de scripts tiene un icono de reproducción en el medianil y si hace clic en él se ejecuta el script al instante.

Al añadir una nueva entrada de script, el autocompletado ahora es compatible con las referencias de script, los archivos binarios del directorio proveedor/bin y cualquier archivoPHP de la fuente de su proyecto.

Cobertura de código con PCOV y PHPDBG

PSR-12

Además de Xdebug, ahora es posible utilizar una extensión PHP ligera krakjoe/pcov o o el PHPDBG integrado para generar informes de cobertura mucho más rápido.

Puede crear una configuración de ejecución para las pruebas. En los ajustes de la configuración de ejecución, hay una lista desplegable en la que puede elegir su controlador de cobertura preferido: Xdebug, PCOV o PHPDBG.

Seleccione su controlador preferido, haga clic en el botón Run with Coverage en la barra de herramientas principal y observe los resultados de la cobertura.

Herramientas PHPUnit

WSL añadiendo intérprete

PhpStorm 2020.1 cuenta con herramientas que le ayudan a actualizarse a la versión más reciente de PHPUnit de un modo rápido y sencillo.

Cada elemento en desuso se resaltará en el editor. Coloque el cursor encima de un elemento en desuso y pulse Alt+Intro; a continuación, seleccione su arreglo rápido preferido de la lista que aparece. También puede elegirlo en la parte inferior de la ventana de descripción del error.

Para crear rápidamente una nueva clase de prueba PHPUnit, ahora puede utilizar la intención Create new PHP Test pulsando Alt+Intro en el nombre de una clase.

Mejoras en las inferencias de tipo PHP

La base de PhpStorm (el motor de inferencia de tipo) ha recibido algunas mejoras interesantes.

Propiedades por tipos

Detección de una etiqueta @var redundante

Si la etiqueta @var con la información de tipo es redundante y PhpStorm ya conoce el tipo correcto de la variable, se resaltará esta etiqueta. Puede eliminarla con el arreglo rápido Remove @var pulsando Alt+Intro.

Funciones flecha

Mejor rastreo de null

Rastrear la aceptación de valores null es una tarea difícil, y solía haber algunos lugares en los que PhpStorm no podía detectarlos. En la versión 2020.1 esto ya no sucede. PhpStorm le permite saber si una variable es null o no, y le ayuda a evitar problemas con la aceptación de valores null.

Separador literal numérico

Finalización en array_map/filter

Ahora existe una opción de finalización completa para las variables de parámetros dentro de las clausuras que se transmiten a las funciones array_map() y array_filter().

Operador ternario anidado

Inferencia de un tipo de vector no genérico a partir de un inicializador

Si lanza una iteración en un vector con un conjunto conocido de elementos, ya no necesita una etiqueta @var adicional para especificar el tipo, ya que PhpStorm lo propagará automáticamente.

Y hay más

Clasificación asistida por aprendizaje automático para la finalización de código

Clasificación asistida por aprendizaje automático para la finalización de código

Ya en la versión 2019.3 introdujimos la clasificación asistida por aprendizaje automático de las opciones de finalización para PHP. Esta funcionalidad mejora la finalización de código reorganizando los elementos en la ventana emergente de finalización para que los elementos más relevantes aparezcan antes.

De forma predeterminada, la finalización asistida por aprendizaje automático está deshabilitada. Para habilitarla, seleccione las casillas de verificación Rank completion suggestions based on Machine Learning y PHP en Preferences/Settings | Editor | General | Code Completion.

Refactorización Move method

Refactorización Move method

Mover un método de una clase a otra ahora es más sencillo, ya que se puede hacer con una sola acción atómica.

Coloque el cursor sobre un método y pulse F6 (o Ctrl+T, 3). A continuación, elija una clase de destino y habrá terminado.

Quitar PHPDoc con simples anotaciones de tipo

Quitar PHPDoc con simples anotaciones de tipo

Si un bloque PHPDoc solo tiene etiquetas @param con tipos, se puede quitar completamente y utilizar declaraciones de tipo nativo para los parámetros.

Pulse Alt+Intro y seleccione el arreglo rápido Remove redundant PHPDoc comment.

Buscar expresiones ternarias redundantes

Buscar expresiones ternarias redundantes

PhpStorm resaltará cualquier expresión ternaria que pueda reducirse y simplificarse. Al utilizar un arreglo rápido (Alt+Intro), puede reemplazarla por una expresión simple equivalente.

Eliminar las ocurrencias redundantes de pass-by-reference

Eliminar las ocurrencias redundantes de pass-by-reference

La utilización de pass-by-reference puede provocar consecuencias inesperadas. PhpStorm 2020.1 detecta y resalta los parámetros que se marcan innecesariamente como passed-by-reference.

Lo mismo es válido para los valores by-ref redundantes en los bucles foreach.

Metadatos

Se puede ampliar el “reconocimiento de código” de PhpStorm proporcionando información adicional en un archivo especial, .phpstorm.meta.php. Esta área ha recibido varias mejoras.

Índice de parámetros en override, map y type

Índice de parámetros en override, map y type

Previamente, con las directivas override(), map() y type(), solo era posible ajustar el comportamiento del primer parámetro de las funciones. En PhpStorm 2020.1, se ha solucionado este problema, y ahora es posible especificar el índice del parámetro explícitamente.

Funciones flecha

Compatibilidad con el acceso a la propiedad mediante __get

Si tenía que recibir algunos objetos mediante el método mágico __get(), lo más probable es que perdiera la información de tipo. En lugar de utilizar una etiqueta @var o @property, ahora puede especificar esta información en un archivo .phpstorm.meta.php. Esto puede funcionar incluso si el tipo no se conoce de antemano.

Puntos de salida personalizados

Puntos de salida personalizados

PhpStorm considera que las funciones die() y exit(), o cualquier función que arroje una excepción, terminan las llamadas. Pero en las aplicaciones, puede que haya otras funciones personalizadas que deban considerarse como “puntos de salida”, por ejemplo, en funciones de depuración como dd(). Ahora es posible marcar cualquier función como punto de salida.

Finalización para las claves en objetos ArrayAccess

Finalización para las claves en objetos ArrayAccess

La asistencia en los metadatos hace posible conservar el acceso a la finalización de código incluso si quería utilizar un objeto como contenedor de vector para otros objetos. No obstante, la finalización no estaba disponible para las claves. La versión 2020.1 soluciona este problema.

Icono del medianil para funciones con metaanulaciones

Icono del medianil para funciones con metaanulaciones

Por último, en el editor ahora verá si el archivo .phpstorm.meta.php ha modificado un comportamiento con las directivas override(), exitPoint() o expectArguments(). Y como el proyecto puede contener cualquier cantidad de tales metaarchivos, al hacer clic en el icono abrirá el que se utiliza en este lugar específico.

Cliente HTTP

Depuración PHP en el cliente HTTP

Depuración PHP en el cliente HTTP

Al desarrollar aplicaciones web o extremos API, ahora puede empezar a depurar fácilmente sin salir de la ventana de PhpStorm.

Para hacerlo, cree o abra un archivo .http, añada una solicitud y, a continuación, utilice la intención Alt+Intro para ejecutar PHP Debug. Esto añadirá una cookie XDEBUG_SESSION a la solicitud y funciona de manera similar a la extensión de navegador Xdebug.

Tecnologías web

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

Nuevas intenciones e inspecciones inteligentes para JavaScript y TypeScript

Nuevas intenciones e inspecciones inteligentes para JavaScript y TypeScript

¡Utilice las nuevas intenciones e inspecciones inteligentes (Alt+Intro) para ahorrar tiempo al escribir código! Por ejemplo, ahora puede convertir rápidamente el código existente en encadenamiento opcional y/o fusión nula, la sintaxis introducida en las versiones más recientes de JavaScript y TypeScript.

Compatibilidad con la API de Composition y Vuex para Vue.js

Compatibilidad con la API de Composition y Vuex para Vue.js

Con la compatibilidad lista para usar con la biblioteca Vuex y la API de Composition del próximo Vue 3, puede crear aplicaciones Vue.js geniales incluso con más fluidez.

Ejecutar Prettier al guardar

Ejecutar Prettier al guardar

Con la nueva opción Run on save for files, WebStorm aplicará el formato Prettier a todos los archivos especificados en la configuración del IDE y editados en el proyecto en cuanto guarde dichos archivos. Ya no será necesario un monitor de archivos o un complemento de terceros.

IDE

Corrector ortográfico y gramatical inteligente

Corrector ortográfico y gramatical inteligente

El complemento para la corrección ortográfica y gramatical Grazie ahora está disponible y listo para usar. Obtenga un resaltado instantáneo de errores tipográficos y ortográficos y corríjalos con una acción de arreglo rápido, como hace con cualquier otro error del código.

El corrector ortográfico está habilitado de forma predeterminada en los archivos Markdown. Para sacar provecho de estas verificaciones en cualquier comentario PHPDoc, las cadenas HEREDOC/NOWDOC o literales de cadena en los archivos PHP, tendrá que habilitarlo en Preferences/Settings | Editor | Proofreading | Grammar.

Si quiere realizar comprobaciones gramaticales más profundas, puede habilitar la inspección Grammar en Preferences/Settings | Editor | Inspections -> Proofreading.

Utilización de PhpStorm para modificaciones rápidas

Utilización de PhpStorm para modificaciones rápidas

Un nuevo modo LightEdit permite utilizar PhpStorm como editor ligero similar a un bloc de notas para hacer cambios rápidos en los archivos sin tener que abrir el IDE por completo.

Para probarlo, abra un archivo desde la línea de comando (consulte Working with IDE features from command line para obtener instrucciones adicionales) o desde el sistema de administración de archivos de su sistema operativo. Y si PhpStorm no se está ejecutando aún, el archivo se abrirá en el modo LightEdit.

Personalización del formato de fecha

Sesiones de terminal divididas vertical u horizontalmente

Ahora es posible abrir un número ilimitado de sesiones de terminal de una vez y observar el resultado de todas simultáneamente sin cambiar entre pestañas.

Puede invocar el menú contextual desde el terminal para crear, navegar y cerrar una sesión de terminal dividida.

Configuración de SSH unificada

Configuración de SSH unificada

Todas las conexiones de SSH se han reagrupado en un solo lugar en Preferences/Settings | Tools | SSH Configurations.

Esto permite crear una conexión en un lugar y reutilizarla en cualquier lugar en el IDE, por ejemplo, en la configuración de implementación, para el intérprete PHP remoto mediante SSH o como terminal SSH.

Apariencia

Tema claro actualizado

Tema claro actualizado

El tema claro se ha unificado para todos los sistemas operativos y ahora se denomina IntelliJ Light. Si prefiere volver al tema antiguo, puede cambiarlo en Preferences/Settings | Appearance & Behavior | Appearance | Theme.

Personalización del formato de fecha

Nueva fuente por defecto

JetBrains Mono es un tipo de letra gratuito y de código abierto que hemos creado especialmente para los desarrolladores con el fin de facilitar la lectura de código. Y ahora la utilizamos como la fuente por defecto del editor.

Modo de desarrollo sin distracciones

Modo de desarrollo sin distracciones

El nuevo modo Zen combina el modo sin distracciones con el modo en pantalla completa para que pueda centrarse en su código.

Para probar el modo Zen, vaya a View | Appearance | Enter Zen Mode.

Control de versiones

Rediseño del cuadro de diálogo para Git Rebase

Rediseño del cuadro de diálogo para Git Rebase

El cuadro de diálogo Interactively Rebase from Here ahora es totalmente interactivo y permite controlar todos los aspectos del proceso de rebase:

  • Seleccionar la acción que quiere realizar en cada confirmación en su rama.
  • Consultar un gráfico que muestra qué acciones se han aplicado.
  • Ver los detalles de las confirmaciones.
  • Consultar un diff y revisar o restablecer los cambios de ser necesario.
Insertar cualquier rama

Modificaciones en el flujo de confirmación

Para mejorar el flujo de las confirmaciones, hemos desarrollado una nueva ventana de herramientas Commit para gestionar todas las tareas relacionadas con las confirmaciones. Aparece habilitado de forma predeterminada para todos los nuevos usuarios.

Si es un usuario existente y desea probarlo, seleccione Use non-modal commit interface en Preferences/Settings | Version Control | Commit.

Herramientas para bases de datos

El equipo de DataGrip ha realizado algunas mejores muy interesantes en las herramientas para bases de datos en PhpStorm. Eche un vistado a las Novedades de DataGrip 2020.1.

Exportar a Excel

Exportar a Excel

Finalmente, es posible exportar el resultado de una consulta o una tabla a un archivo de Excel.

Resultados en el editor

Resultados en el editor

Ahora puede ver los resultados directamente en el editor de código. Para probar esta funcionalidad, marque la opción Preferences/Settings | Database | General | Show output results in the editor.

Configuraciones de ejecución

Configuraciones de ejecución

El concepto de las configuraciones de ejecución resulta muy familiar a los usuarios de PhpStorm. Además de ejecutar scripts de PHP, pruebas o solicitudes HTTP, ahora también es posible ejecutar consultas de bases de datos.

Otras mejoras:

  • Todos los miembros y objetos marcados como @deprecated se muestran tachados en la vista de árbol Structure.
  • Existe una nueva acción para acceder rápidamente a la llave de cierre o de apertura.
  • La sintaxis léxica para Twig ahora se puede personalizar.
  • La ruta de acceso a los archivos de configuración se ha modificado: más información.
  • Las configuraciones de ejecución se pueden guardar fuera de la carpeta .idea y compartirse a través del control de versiones. Abra el cuadro de diálogo Run/Debug Configurations y marque la opción Store as project file.