Novedades de PhpStorm 2020.3

PhpStorm 2020.3 es una actualización importante que introduce la compatibilidad con PHP 8, PHPStan, Psalm, Tailwind CSS, Xdebug 3 y el desarrollo colaborativo a través de Code With Me.

PHP 8

PHP 8.0 es una actualización importante del lenguaje con muchas nuevas funcionalidades increíbles. PhpStorm le ayudará a comprobar que su código existente es compatible con él, actualizar su base de código más rápidamente y aprovechar las últimas mejoras del lenguaje.

Ver la versión del lenguaje

Ver la versión del lenguaje

Ahora siempre puede ver qué versión del lenguaje se está utilizando en un proyecto. Hemos situado el indicador correspondiente en la barra de estado. En ella, también puede cambiar la versión del lenguaje si composer.json no enumera ninguna restricción en la versión PHP.

Añadir identificadores de argumentos con nombre

Argumentos con nombre

Los argumentos de función y método en PHP 8 se pueden transmitir especificando un nombre de parámetro. Esto elimina la necesidad de configurar parámetros opcionales, y significa que las llamadas ahora son autodocumentadas.

PhpStorm puede ayudarle a lo siguiente:

  • Comprobar que los nombres de los argumentos son correctos.
  • Añadir nombres de parámetros de forma automática con un arreglo rápido Alt+Intro.
  • Quitar argumentos redundantes.
Convertir a propiedad promovida

Promoción de propiedades de constructores

Esta funcionalidad le permite reducir la cantidad de código reutilizable cuando inicializa las variables a través de un constructor.

En PhpStorm, puede convertir las propiedades inicializadas por un constructor en propiedades promocionadas o cambiarlas con un arreglo rápido Convert to promoted property Alt+Intro.

Validar usos de operadores nullsafe

Operador Nullsafe

En lugar de tener que utilizar condiciones molestas con comprobaciones de valores null, el nuevo operador ?-> le permite crear cadenas de llamadas con comprobaciones implícitas de valores null para cada elemento.

PhpStorm garantiza que el operador se utilice correctamente.

Convertir declaración switch en expresión match

Expresión match

La nueva expresión match es una alternativa compacta y segura de tipo a la instrucción switch. Una expresión match se puede utilizar como valor y asignarse a una variable o devolverse.

PhpStorm determinará si un bloque switch se puede convertir en una expresión match, y lo hará de forma automática con un arreglo rápido Alt+Intro.

Con la nueva expresión, tal vez sea difícil ver usos incorrectos. PhpStorm los resaltará para usted.

Nuevas funciones para cadenas

Nuevas funciones para las cadenas: str_contains(), str_starts_with(), str_ends_with()

En PHP 8, puede utilizar la función str_contains() para determinar si una cadena forma parte de otra cadena. PhpStorm 2020.3 llama su atención sobre cualquier utilización de strpos() que se pueda reemplazar por str_contains().

PhpStorm también resalta los lugares en los que las llamadas substr() antiguas se pueden reemplazar por las nuevas funciones str_starts_with() y str_ends_with() autoexplicativas.

Otras funcionalidades de PHP 8 compatibles

Otras funcionalidades de PHP 8 compatibles

  • Trailing comma después del último parámetro en una llamada de función y en la sección use de las clausuras.
  • Los catches de no captura son útiles para capturar excepciones cuando no necesita un objeto de excepción.
  • Ahora Throw se puede usar como una expresión (es decir, se permite en las funciones de flecha, el operador de fusión ?? y el operador ternario/elvis ?:).
  • Para obtener una clase FQN de un objeto, puede hacer $object::class en vez de get_class($object). Utilice un arreglo rápido Alt+Intro para ello.

Atributos de PHP 8

Convertir PHPDoc a tipos de unión nativos

PHP 8 le permite usar atributos para especificar metadatos de un modo estructurado en lugar de depender de anotaciones PHPDoc.

PhpStorm proporciona resaltado, finalización de código, buscar usos, refactorizaciones y otra asistencia a la codificación para trabajar con atributos. También tiene inspecciones para garantizar que los atributos se declaran y se utilizan de forma válida.

PhpStorm 2020.3 incluye varios atributos PHP 8 directamente en el IDE. We also provide them in a composer package jetbrains/phpstorm-attributes, so feel free to add it as a dependency in composer.json.

Atributo #[Deprecated]

#[Deprecated]

Como la etiqueta PHPDoc @deprecated, puede utilizar este atributo para marcar métodos, funciones, clases o constantes de clase que se eliminarán en futuras versiones del software.

Especifique reason y replacement para que sus usuarios entiendan por qué tienen que actualizar, y permita que lo hagan de forma automática con un arreglo rápido Alt+Intro.

Atributo #[ArrayShape]

#[ArrayShape]

Utilice este atributo para definir las llaves y los tipos de valores de los vectores con aspecto de objetos. Esto mejorará la asistencia a la codificación y el análisis que obtiene de PhpStorm.

Nota: Si está escrito en una línea, también funciona en PHP 7.4 y versiones anteriores.
#[Immutable]

#[Immutable]

Marque objetos o propiedades con el atributo #[Immutable] cuando quiera evitar cualquier intento de cambio del objeto después de su inicialización.

Esto hace que el estado del programa sea más previsible y facilita la depuración.

Ajuste la restricción del ámbito de escritura de las propiedades con una de las siguientes constantes transmitidas al constructor de atributos: CONSTRUCTOR_WRITE_SCOPE, PRIVATE_WRITE_SCOPE, PROTECTED_WRITE_SCOPE.

Nota: Si está escrito en una línea, también funciona en PHP 7.4 y versiones anteriores.
Atributo #[Pure]

#[Pure]

Marque las funciones que no produzcan efectos secundarios como #[Pure] para mejorar el análisis del flujo de código en PhpStorm. El IDE resaltará las llamadas redundantes de funciones puras.

Si marca una función como #[Pure], pero en su cuerpo hay un intento de cambiar algo desde el ámbito exterior, PhpStorm resaltará el código no seguro.

Todas estas funciones internas de PHP (p. ej., array_merge()) ya están marcadas en PhpStorm.

Atributo #[ExpectedValues]

#[ExpectedValues]

Utilice este atributo para especificar qué valores acepta una función como parámetros y cuáles puede devolver. Esto mejorará la finalización de código y le ayudará a detectar posibles errores.

#[ExpectedValues] es una versión avanzada de expectedArguments() de .phpstorm.meta.php.

Atributo #[NoReturn]

#[NoReturn]

Marque las funciones que pueden detener la ejecución de un script con un atributo #[NoReturn] para obtener un análisis de flujo de control más preciso.

PhpStorm se ofrecerá para propagar el atributo por la jerarquía con un arreglo rápido para obtener un análisis incluso más definido.

Atributo #[Language]

#[Language]

Añada este atributo a los parámetros de cadena que contengan texto en otro lenguaje, como RegExp, SQL, etc. Esto revelará funcionalidades de PhpStorm adicionales.

Compatibilidad con Psalm y PHPStan

Estos dos analizadores estáticos se pueden utilizar en PhpStorm 2020.3 como herramientas de primera clase para resaltar problemas en el editor. Añádalos como dev-dependencies en composer.json y active la inspección correspondiente haciendo clic en un icono de llave cerca de la herramienta.

PHPStan y Psalm

PhpStorm también proporciona finalización de código para las etiquetas @psalm-* y las trata como especiales, por lo que no habrá problemas con el resaltado, clases sin definir, etc. En la mayoría de los casos, ahora se puede quitar el prefijo @psalm- con seguridad de las etiquetas; es decir, @psalm-return puede ser solo @return y @psalm-param puede ser @param.

Muchos tipos de psalm son compatibles, incluidos scalar, numérico y tipos con constantes. Como consecuencia de ello, todo lo que depende de la inferencia de tipos se ha vuelto más preciso: inspecciones, generación de código y finalización.

Xdebug 3

Xdebug 3

Xdebug 3 es un nuevo rediseño del depurador PHP. Funciona mucho más rápido y se configura más fácilmente.

Para configurar Xdebug 3, lo único que tiene que especificar es XDEBUG_MODE=debug.

El puerto de depuración predeterminado para Xdebug ha pasado de 9000 a 9003. Para facilitar la migración, PhpStorm escucha los dos puertos de forma predeterminada. El puerto y otras configuraciones de Xdebug se pueden ajustar en Preferences/Settings | Languages & Frameworks | PHP | Debug.

Learn more about Xdebug 3 in the Upgrade Guide.

Code With Me

Desarrollo colaborativo con Code With Me

PhpStorm 2020.3 es compatible con Code With Me, un nuevo servicio de JetBrains para el desarrollo colaborativo y la programación en pares. Code With Me le permite compartir con otras personas el proyecto que tiene abierto en ese momento en su IDE y trabajar juntos en tiempo real.

Eche un vistazo a estas publicaciones para obtener más información sobre Code With Me.

Tailwind CSS

Acceso rápido a ajustes de herramientas añadidas como dependencias

PhpStorm ahora puede ayudarle a trabajar con Tailwind CSS de un modo más productivo.

El IDE autocompletará sus clases Tailwind, le mostrará una vista previa del CSS resultante al pasar el ratón por encima y es compatible con las personalizaciones que haga con los archivos tailwind.config.js.

Cliente HTTP

Ejecutar solicitudes de Guzzle con el cliente HTTP

Ejecutar solicitudes de Guzzle con el cliente HTTP

Guzzle is one of the most popular HTTP clients for PHP. En PhpStorm 2020.3, puede probar las solicitudes de Guzzle sin ejecutar el código real.

Si la solicitud es compatible, tendrá un icono del medianil a su lado. Haga clic en él para crear un nuevo archivo de trabajo HTTP con los parámetros definidos previamente.

Experimente con la solicitud y guárdela como un archivo .http en su proyecto.

Exportar solicitudes HTTP a cURL

Exportar solicitudes HTTP a cURL

Para obtener una cadena cURL de un HTTP, pulse Alt+Intro en el editor de solicitudes HTTP y seleccione Convert to cURL and copy to clipboard.

Puede usar la cadena cURL en el terminal o con su elección de cliente HTTP.

Editor

Mejoras en la edición y previsualización de Markdown

Mejoras en la edición y previsualización de Markdown

Los diagramas Mermaid.js y gráficos ahora se pueden generar dentro del IDE. Active esta compatibilidad en Preferences/Settings | Languages & Frameworks | Markdown.

El botón Auto-Scroll Preview de la esquina superior derecha del panel de vista previa activa y desactiva el desplazamiento síncrono con el editor.

Hemos añadido varias preconfiguraciones de estilos de código Markdown que funcionan cuando reformatea el código con Ctrl+Alt+L. Puede ver estas configuraciones en Preferences/Settings | Editor | Code Style | Markdown.

Mejores correctores de ortografía y gramática

Mejores correctores de ortografía y gramática

El motor del corrector gramatical es compatible con más idiomas y ofrece correcciones de gramática de mayor calidad.

Cuando se resalta un error, aparecerá una ventana emergente con una explicación y una corrección sugerida.

Si presiona Alt+Intro con un signo de intercalación sobre el texto resaltado, verá todos los reemplazos sugeridos en el nivel superior, en lugar de una lista anidada como antes.

Divida el editor arrastrando y soltando

Divida el editor arrastrando y soltando

Abra varias pestañas una al lado de la otra arrastrando una pestaña hasta el lado deseado de la pantalla.

Otro modo de abrir pestañas en el modo dividido es pulsando Mayús+Intro en un archivo seleccionado en la vista Project o en cualquier ventana de búsqueda.

Pestaña de vista previa

Pestaña de vista previa

Puede obtener una vista previa de los archivos en una pestaña especial sin tener que abrirlos. Para habilitar esta funcionalidad, haga clic en el icono de la rueda dentada en la vista Project y seleccione Enable Preview Tab y Open Files with Single Click. Si empieza a editar un archivo del que esté viendo una vista previa, la pestaña se convertirá en un archivo normal.

IDE

Mejoras de Search Everywhere

Mejoras de Search Everywhere

En la ventana emergente Search Everywhere (Mayús+Mayús), los resultados se mostrarán de un modo ligeramente diferente. En lugar de agruparse por tipo, ahora se agrupan según su relevancia con la consulta de búsqueda.

Ahora también es posible realizar cálculos matemáticos sencillos en Search Everywhere. Escriba algunos números y operadores matemáticos y vea los resultados del cálculo al instante. Esto elimina la necesidad de abrir una aplicación de calculadora e interrumpir su trabajo.

Search Everywhere también puede buscar a través del historial de Git, incluida información sobre ramas y confirmaciones.

Tecnologías web

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

TypeScript en la ventana de herramientas Problems

TypeScript en la ventana de herramientas Problems

Hemos integrado el servicio de lenguaje TypeScript en la ventana de herramientas Problems y hemos quitado la ventana de herramientas TypeScript para que sea más sencillo analizar los problemas en su código desde un solo lugar. También hemos movido las acciones disponibles previamente dentro de la ventana de herramientas TypeScript a un widget dedicado en la barra de estado.

Cree un componente React a partir de utilizaciones

Creación de un componente React a partir del uso

Si tiene un componente React sin resolver en su código, sitúe el signo de intercalación en él, pulse Alt+Intro y seleccione Create class/function component from the list; el IDE creará la construcción de código adecuada por usted.

Control de versiones

Compatibilidad con pruebas Git

Compatibilidad con pruebas Git

PhpStorm 2020.3 incluye la compatibilidad con la zona de pruebas de Git. Para activarla, marque la casilla de verificación Enable staging area en Preferences/Settings | Version Control | Git.

Vuelva a la ventana de herramientas Commit utilizando Alt+0 para ver los archivos en la zona de pruebas y fuera de ella.

Añada archivos a la zona de pruebas haciendo clic en el icono + situado a su lado.

Puede probar líneas específicas utilizando el icono del medianil cerca de los cambios en el editor.

Herramientas para bases de datos

Eche un vistazo a Novedades en DataGrip 2020.3: todas estas funcionalidades también están disponibles en PhpStorm.

SQL para MongoDB

SQL para MongoDB

Ahora puede usar SQL para consultar las bases de datos de MongoDB. PhpStorm 2020.3 supports SELECT queries with clauses such as JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, OFFSET, and all available MongoDB functions except map, reduce, filter, and let. Si quiere aprender más información acerca de SQL para MongoDB, lea esta publicación del blog.

Compatibilidad con Couchbase y nuevos extractores de datos

Compatibilidad con Couchbase y nuevos extractores de datos

PhpStorm ahora es compatible con el servicio Couchbase Query. También hemos introducido dos nuevos extractores: One-Row, que le permite copiar una columna a una cadena separada por comas; y SQL-Insert-Multirow, que genera una instrucción INSERT única con varias filas nuevas que insertar.