
Hola Habr!
¡Nos complace presentar el primer lanzamiento importante de PhpStorm este año!
Puede encontrar una descripción general de la versión en la página
"Novedades" . Y debajo del corte, una traducción de esta página con una demostración de las nuevas características más interesantes.
Puede descargar la nueva versión en el
sitio web o usar la
aplicación Toolbox . Como siempre, hay disponible una versión de prueba de 30 días. Los titulares de una
suscripción activa a PhpStorm o All Products Pack pueden utilizar la versión completa y, de forma gratuita, los
estudiantes y
desarrolladores de proyectos de código abierto.
En total, se solucionaron 1118 errores en la versión y se agregaron muchas características nuevas. Aquí están los más interesantes.
Depuración de plantillas de ramita y cuchilla
Gracias al depurador, puede lidiar rápidamente con el error más pegadizo, pero aquí para encontrar problemas en las plantillas, debe atravesar la jungla de código generado por la máquina. En PhpStorm 2019.1 agregamos la capacidad de depurar los archivos de plantilla originales
.twig y
.blade.php sin compilar .
Para hacer esto, solo especifique la ruta a las plantillas compiladas (caché) en la configuración IDE:
Idiomas y marcos | Php | Depuración | Plantillas para
Twig o
Blade .
En el caso de Twig, también debe especificar las
auto_reload
debug
y
auto_reload
en la configuración.
Y para Blade, todo funcionará automáticamente, pero solo a partir de Laravel 5.8.
Después de eso, puede activar el depurador y establecer un punto de interrupción directamente en la plantilla. La ejecución se detendrá en la ubicación especificada, y todas las opciones de depuración habituales estarán disponibles: ejecución paso a paso, variables locales y globales, seguimiento de valores (observación) y todo lo demás.

Hablando de depuración: apoyamos activamente al autor de Xdebug Derick Rethans para mejorar el depurador, resolver
problemas acumulados y ampliar las posibilidades de su uso en PhpStorm.
Detección de código muerto
PHP cumple 24 años este año y no es sorprendente que a menudo te encuentres con código heredado. Lo primero que debe hacer es limpiar y eliminar el exceso. La nueva inspección de la
declaración no utilizada solo ayudará en este asunto.
PhpStorm 2019.1 puede analizar su código sobre la marcha y resaltar directamente en el editor aquellas clases, miembros de clase y funciones que probablemente no se usan en ningún lado.

También puede encontrar todos los artículos no utilizados en modo por lotes. Para hacer esto, llame al menú
Código -> Ejecutar inspección por nombre y seleccione la
inspección Declaración no utilizada . Recibirá un informe con una lista de todos los problemas con una descripción y soluciones rápidas.

Nueva refactorización y acción rápida.
Por tradición, hemos agregado varias refactorizaciones nuevas para que las acciones de rutina sean rápidas y sin errores.
Manipulación de cuerdasSi presiona
Alt + Intro en cualquier expresión de cadena, verá una lista completa de conversiones disponibles. Por ejemplo, ya hay una conversión de / a NOWDOC / HEREDOC, reemplazo de comillas, división de una cadena en dos con concatenación.
Y en esta versión, agregamos algunas cosas más convenientes: copiar la cadena concatenada al búfer, reemplazar la concatenación de cadenas con interpolación o llamar a la función
sprintf () y, en consecuencia, las acciones inversas:
Eliminar variables no utilizadasLa nueva inspección detectará y le permitirá eliminar una variable no utilizada en las operaciones de asignación y
use
construcciones en los cierres.
Refactorización Move to ClassCon esta refactorización, puede transferir de forma segura funciones de archivos PHP a clases. PhpStorm actualizará todas las llamadas a estas funciones.

Al restaurar el orden, es posible que deba mover varias funciones a la vez, esto también es compatible con PhpStorm. Debe seleccionar las funciones deseadas en la ventana Estructura y luego llamar a la refactorización Mover a clase.
El método de inspección puede ser 'estático'Esta inspección descubrirá métodos que se pueden convertir a estáticos, es decir, aquellos que no usan una instancia de la clase. Dichos métodos tendrán una acción contextual disponible: puede presionar Alt-Intro y seleccionar "Hacer estática". Como se esperaba, todas las llamadas serán reparadas automáticamente.

Mecanismos de autocompletado mejorados
Usando el archivo .phpstorm.meta.php, puede decirle al IDE qué argumentos se esperan en la función o qué valores puede devolver. PhpStorm utilizará esta información para completar automáticamente.
Digamos que una función espera algún tipo de constante como argumento. Formalmente, el tipo de esta constante es, digamos, un
integer
, pero en realidad conocemos el conjunto de constantes posibles.
Por ejemplo,
json_encode($data, /* JSON_* */)
También podemos tener una función que devuelva una constante, por ejemplo
json_last_error()
.
En PhpStorm 2019.1, la finalización automática de estas y muchas otras funciones integradas ya funciona de forma inmediata:


Además, dicha finalización automática se puede realizar en cualquier proyecto / biblioteca / marco simplemente agregando un archivo especial .phpstorm.meta.php al proyecto. Y puede haber muchos de esos archivos, PhpStorm los encontrará y los combinará.
Por ejemplo, dichos archivos ya existen para Symfony en la forma del
paquete King2500 / symfony-phpstorm-meta ; viene con el
complemento Symfony .
Lea más en la publicación
sobre las nuevas características .phpstorm.meta.php .
Optimización de importación
El sistema de análisis y corrección de las importaciones fue ligeramente modificado. PhpStorm ahora, si es posible, propondrá reemplazar el nombre completo de la clase con importar o eliminarlo por completo si es redundante.
También se agregó la capacidad de ordenar las expresiones de
use
alfabéticamente o por longitud.
Herramienta de limpieza de código
Esta herramienta permite conversiones por lotes seguras. Por ejemplo, en todo el proyecto a la vez, en un determinado directorio, etc.
Ha estado disponible durante mucho tiempo en PhpStorm, pero solo en 2019.1 se agregaron las funciones para PHP. En primer lugar, admite dos herramientas de corrección de estilo de codificación: PHP CS Fixer y phpcbf de PHP_CodeSniffer. Además de dos inspecciones para optimizar las importaciones del párrafo anterior.

Esta herramienta se puede iniciar en cualquier momento de forma manual o antes de confirmar, simplemente marcando el cuadro de diálogo correspondiente en el cuadro de diálogo de confirmación:

Reutilizando contenedores Docker
Se agregó soporte para iniciar contenedores Docker en los modos de ejecución docker-compose y docker-compose exec. El primer modo es adecuado para contenedores livianos que se detienen inmediatamente después de comenzar. El segundo le permite reutilizar los contenedores en ejecución sin tener que reiniciar.
Entre otras mejoras:- Configuración flexible de PHPDoc: puede personalizar el orden de los elementos y las sangrías en Preferencias | Editor | Código de estilo | Pestaña PHP PHPDoc;
- La plantilla de archivo PHP predeterminada se borra: no más Creado por PhpStorm;
- Nueva acción rápida para agregar una propiedad de clase al constructor;
- Puede habilitar el modo estricto a nivel mundial,
incluso si los archivos no tienen la directiva declare(strict_types = 1);

Vcs
El sistema de control de versiones ha realizado muchas mejoras útiles:
- Se han agregado acciones de reparación y squash al registro de Git;
- Al ver diffs, ahora puede intercambiar paneles;
- Empujar con fuerza ahora es más seguro porque se usa la bandera
--force-with-lease
; - La opción Desmarcar todo para confirmaciones parciales se ha agregado al diálogo de confirmación; con ella puede desactivar todos los cambios y luego seleccionar solo los necesarios:

Mejoras IDE
Diálogo de ubicaciones recientesLa mayoría de las veces, cuando se trabaja en una tarea, los desarrolladores tienen que leer el código, no escribir. Por lo tanto, la navegación rápida entre archivos siempre es muy relevante. PhpStorm ya tenía una ventana emergente
Buscar en todas partes ( Shift-Shift ) ,
Marcadores y Favoritos ( Cmd + 2 / Alt + 2 ), moviendo la historia de un lado a otro ( Cmd + [ - Cmd +] / Ctrl + Alt + Izquierda - Ctrl + Alt + Derecha ) o ver los últimos archivos ( Cmd + E / Ctrl + E ) .
En PhpStorm 2019.1, agregamos otra característica interesante: el cuadro de diálogo Ubicaciones recientes (
Cmd-Shift-E / Ctrl + Shift + E) , que mostrará los últimos fragmentos de código que vio o editó. Esto puede ser útil si desea moverse rápidamente por el historial y ver el contexto para comprender exactamente dónde moverse.
Nuevos temas de interfazPhpStorm viene con tres temas: Light, Darcula y High Contrast. Si quieres probar algo nuevo, instala uno de los nuevos temas:
Dark Purple ,
Grey o
Light Cyan . Además, ahora puede crear temas usted mismo, mientras que es posible establecer el color de cualquier elemento o icono. Lea más
en la documentación .
Soft-wraps dependiendo del tipo de archivoSi a menudo trabaja con Markdown o archivos de texto, ahora el ajuste de línea para ellos se activará automáticamente. También puede especificar otros tipos de archivos en
Preferencias | Editor | General | Soft-wrap archivos.PhpStorm como siempre incluye todas las actualizaciones de WebStorm :La documentación de las propiedades CSS, las etiquetas HTML y la compatibilidad con el navegador ahora se ha tomado de MDN y contiene enlaces a artículos relacionados, se ha mejorado la compatibilidad con TypeScript para aplicaciones Vue, se han agregado 17 nuevas inspecciones para aplicaciones angulares y han aparecido nuevos paneles de depuración de JavaScript y Node.js consolas interactivas
... y de DataGrip :Ahora también es compatible con Greenplum, Vertica, Apache Hive; Ahora puede seleccionar la carpeta de proyecto predeterminada; así como medios mejorados para completar estructuras y atributos.
Esto es todo de lo que pudimos hablar, pero no todo lo que se incluyó en el lanzamiento. Una lista completa de cambios, como siempre, se puede encontrar en las
notas de lanzamiento muy grandes.
Gracias por su atencion!
Equipo de JetBrains PhpStorm