
El 17 de mayo, se celebró en Moscú Infospace la primera conferencia profesional para desarrolladores de PHP PHP Rusia 2019. Después de una larga pausa, recibieron una plataforma completamente terrestre para ellos; en el
anuncio, lo comparamos con el estadio, que el peychpishnikov, uno de los equipos de la "división de TI superior", no tenía. Y el "estadio" cumplió su primera temporada al menos con dignidad, con la diferencia del prototipo de fútbol de que es difícil hacer una separación estricta entre jugadores y aficionados.
Durante el período de la "gran glaciación de congelación de pasteles" (las grandes conferencias de PHP en Rusia no se han celebrado durante nueve años), la comunidad de todo el idioma necesita un lugar de reunión de este tipo. Al mismo tiempo, se depositaron grandes esperanzas en el evento, y la tarea de complacer a todos los interesados se consideró extraordinaria. Pero el miedo tiene grandes ojos y la paranoia saludable tiene una buena visión periférica: la experiencia de los eventos de TI en nuestro lado organizador, junto con el poder de la "magia PHP" del lado del comité del programa y la autoridad de sus participantes en la industria, nos permitió organizar un evento maduro. en el primer intento.
Casi 500 personas llegaron a PHP Rusia. La audiencia en línea también era bastante grande: varios cientos de espectadores conectados. La base del programa fue "cimentar" 22 informes, incluidos cinco de eminentes oradores extranjeros, así como tres reuniones y actuaciones en el formato de improvisación Unconference en una secuencia separada.

La conferencia fue en
tres transmisiones , y elegir a dónde ir sería doloroso si no fuera por la oportunidad de ver más tarde las transmisiones de todo lo que sucedió en el programa principal.
Alexander Makarov, coorganizador de la conferencia.
- En el comité del programa pensamos durante mucho tiempo y finalmente sacudimos la grilla para que se desarrollara el rompecabezas: abandonamos la idea de poner a los angloparlantes en una secuencia separada, observamos para que los informes se equilibraran mutuamente. Relativamente hablando, para que los más afectados vayan en paralelo y ninguno atraiga a la mayoría de la audiencia. Por supuesto, había conexiones conceptuales dentro de cada pista: por ejemplo, justo después del discurso de Dave Liddament, quien, hablando sobre el análisis estático del código PHP, prestó mucha atención a PHPStorm, el informe de Kirill Smelov, donde se resolvió el dispositivo para este IDE, comenzó en la misma habitación Una historia sobre las innovaciones en PHP 7.4 fue seguida por una presentación en 8.0.
Sobre temas
Como se
pretendía , la mayor parte de las actuaciones se construyó en torno a temas específicos de PHP, en gran parte muy, muy duro.
Entre los principales vectores de interés en la conferencia, se destacó el futuro del lenguaje en sí, su arquitectura y estandarización, la programación asincrónica en PHP, sus mejores prácticas y capacidades implícitas, el trabajo con marcos específicos e incluso el aprendizaje automático utilizando la pila PHP.

Documentos clave
El comité del programa abordó la selección de informes escrupulosamente, por lo tanto, era problemático identificar los "más geniales": no había francos pases francos en el programa, al menos según los resultados de los primeros comentarios de los invitados. Entonces, como ejemplo, tuvimos que destacar varios de los siguientes:
- el mas concurrido;
- el más esperado
- El más rico en sorpresa.

Nikita Popov: Propiedades mecanografiadas y más. ¿Qué viene en PHP 7.4?

Nikita Popov, uno de los desarrolladores principales más activos y prominentes de PHP, merecidamente se metió en los encabezados de la conferencia. Su informe es un cruce entre un registro de cambios con comentarios de los autores (más ejemplos de código) y una excursión visionaria hacia el futuro del lenguaje. Consistente y sucintamente, Nikita explicó lo que nos espera en PHP en la próxima versión y más allá.
De acuerdo con la línea de tiempo estimada, la versión alfa de la versión 7.4 tendrá lugar el 6 de junio de 2019, y la versión de 7.4 GA se lanzará el 21 de noviembre. Bueno, un año después, en diciembre de 2020, se lanzarán los "ocho" avivados por los rumores.
Lo principal que se implementará en PHP 7.4:
- propiedades tipificadas;
- FFI - Interfaz de función externa, para trabajar con funciones externas en C;
- funciones de flecha;
- - precarga;
- - operador
??=
; - - tipos de retorno covariantes;
- - enlaces débiles (WeakReference);
- - agregando un operador
…
para matrices.
Quizás la innovación más esperada en la próxima versión es la capacidad de establecer tipos para propiedades de clase. Cabe destacar que dicha propiedad debe necesariamente inicializarse explícitamente y, si no se especifica su valor predeterminado, no se anulará; no, en tal situación se generará una excepción. Además, entre otras cosas, las propiedades escritas ayudarán a traducir a PHP algo como las que aún faltan en el lenguaje de tipos de intersección. En otras palabras, especifique varios tipos de argumentos a la vez.
El segundo cambio importante en PHP 7.4 es el debut de las funciones de flecha. Estas son funciones anónimas de una línea: inútiles, como algunos desarrolladores están seguros, azúcar sintáctico, aunque a otros les resulta igual de útil.
Tampoco puede descuidar el operador
??=
, que anteriormente estaba ausente en el idioma. Esto es lo que hace: si el parámetro de la izquierda no existe en la expresión o es nulo, se le asigna el valor del parámetro de la derecha.
De las posibles innovaciones que aún están en discusión, se mencionaron los genéricos. Sin embargo, Nikita inmediatamente hizo una reserva de que su implementación completa no es una tarea fácil.
En cuanto a las características que se consideran obsoletas en la versión 7.4, había varias de ellas. El procesamiento del operador ternario de izquierda a derecha se ha arrojado al basurero de la historia; en el G8, esta sintaxis generará un error. La prioridad del operador de concatenación también se reducirá: si se usa junto con los operadores de suma o resta, se procesarán primero.

Al final del discurso, Nikita se vio inundado de preguntas que intentó responder de la manera más objetiva posible, gracias a lo cual los oyentes recibieron varios consejos valiosos.
Nikita Popov:
- Creo que las colecciones mecanografiadas estarán en forma de genéricos.
Dmitry Stogov: Lo más interesante en PHP 8

La línea, que comenzó Nikita Popov, fue continuada por otro destacado contribuyente al núcleo de PHP: Dmitry Stogov, ingeniero principal de Zend Technologies. Él habló sobre un futuro un poco más distante del lenguaje, sobre la versión sacramental 8.0. En los últimos años, se ha centrado en mejorar el rendimiento de PHP y ha construido su historia con el mismo énfasis.
Durante una década y media, el lenguaje "se aceleró". Se lograron ganancias significativas en el rendimiento con las versiones 5.1 y 7.0. En la era de los Siete, hubo un crecimiento suave: aumentar la velocidad de ejecución del código de una versión a otra no fue radical. Sin embargo, PHP 8.0 promete a los desarrolladores una bolsa de regalo. Están esperando muchas cosas interesantes.
Decimos "interesante" - significa JIT? En realidad no Sí, de hecho, la compilación dinámica justo a tiempo promete un aumento de rendimiento en la versión 8.0, pero ... solo en pruebas sintéticas, en aplicaciones reales, incluso es posible una desaceleración, aunque insignificante. Sin embargo, las mejoras son posibles.
Entonces comenzó la "carne": Dmitry profundizó en los conceptos básicos de PHP y JIT en él, explicando en el camino, "lo que está mal con JIT", y compartió con el público cómo JIT, el mecanismo de precarga y FFI y para debido a lo que están diseñados para aumentar el rendimiento del código PHP.
La tríada anterior abre nuevos usos para PHP. Será posible escribir extensiones directamente en PHP, conectar bibliotecas C de terceros, crear prototipos sin trabajo adicional ...
Pero, como ingeniero honesto, Dmitry no solo describió las posibilidades vertiginosas que estarán disponibles en la octava versión del lenguaje, sino que también advirtió sobre sus deficiencias, sino más bien, "no optimismo". Por supuesto, es genial que con la precarga los scripts se carguen al inicio de PHP, sin embargo, no se pueden reemplazar sin reiniciar, y algunos pueden no funcionar con la precarga según lo previsto. Por supuesto, es maravilloso cuando, gracias a FFI, puede operar en estructuras de datos definidas en C, y la API en sí misma es simple y agradable, solo FFI abre mil nuevas formas de dispararse en el pie, y su rendimiento sin JIT es relativamente bajo.
Al mismo tiempo, hay más ventajas de la combinación de tecnologías que se encuentran en la base del G8 que desventajas. Además, muchas de las características que Dmitry mencionó en el informe ya se pueden sentir en la versión 7.4.
Alexander Lisachenko: Escuela de magia PHP

Alexander Lisachenko, jefe de desarrollo web de Alpari, miembro del comité de programa de PHP Rusia 2019, creador y desarrollador líder del marco orientado a aspectos Go! Reunió toda la sala después del almuerzo. Aop Ofreció una mirada al lenguaje a través de un prisma: ¡nuestro subtítulo no miente! - magia
Así como la intuición es lógica oculta de la razón, la magia en un lenguaje de programación es la explotación de capacidades anormales o poco conocidas de este lenguaje basadas en un conocimiento profundo de su estructura interna, "distorsiones" y lagunas.
Alexander demostró como un divertimento varios trucos que muchos de los que estaban sentados en el pasillo (y había una minoría de jóvenes entre ellos) volaron el cerebro. El orador se acercó gradualmente a cómo usar los ajustes que descubrió a lo largo de los años de excavar en las entrañas de PHP, en beneficio de la codificación.
Métodos mágicos, formas no estándar de acceder a las propiedades, contextos cambiantes, filtros de flujo: todo esto y mucho más "maestro Lysachenko" desarmado desde un punto de vista pragmático. Aunque era imposible no notar la belleza paradójica de lo que los que odian PHP preferirían llamar defectos innatos. No sabemos, no sabemos ... Nos gusta.
Alexander prestó especial atención a la programación orientada a aspectos en PHP, que, de acuerdo con el principio de práctica, lo que predicas usa en la cola y en la melena y que, de todos modos, sentó las bases de Go! Aop
Dave Leading: análisis estático avanzado práctico

Dave Liddament, Director de Lamp Bristol, compartió con el público sus mejores prácticas con respecto al análisis estático avanzado de código PHP. Como autor de la herramienta de código abierto SARB, o Static Analysis Results Baseliner, desarrolló una especie de hoja de ruta para que la audiencia implemente el análisis estático, de modo que todos puedan tomar prestado de sus soluciones y técnicas de revisión que él creía que se ajustaban a su propia pila y sus necesidades. O usar el informe como una mini-guía holística para implementar el análisis estático.
Al enfatizar la importancia del entorno de desarrollo como parte del arsenal para el análisis estático, nuestro invitado elogió sinceramente a PHPStorm, que pareció sorprender gratamente al moderador de la sección, Roman Pronsky de JetBrains, que supervisa este IDE en su empresa.
Dave comenzó con la necesidad de controles básicos:
- Linting
- Comprueba el cumplimiento de los estándares de programación (incluso para evaluar la consistencia del código que está escrito dentro del comando), por ejemplo, usando PHP CS Fixer .
- Análisis de código de seguridad. Como tal herramienta, el orador recomendó Security Checker de SensioLabs, los autores de Symfony.
- Comprobaciones de var_dump olvidado.
- Verificación de sincronización automática composer.json y composer.lock (validación de composer)
Esas y muchas otras herramientas para el análisis de código estático pueden ser encontradas por cualquier persona en un glorioso
repositorio de GitHub .
Para los seguidores de Symfony, el informe fue doblemente útil: para aquellos que usan el marco en su trabajo, dio un montón de consejos y trucos para implementar el análisis de código estático.
Además, Dave profundizó en los matices del uso de herramientas más avanzadas, principalmente Psalm, Phan y PHPStan. Hizo un énfasis separado en el trabajo en las condiciones de Integración Continua (y también aconsejó a
algunos oyentes sobre las
herramientas ).
La clasificación de errores y "casi errores" de Dave también fue informativa, a la luz del análisis estático del código y con detalles de cómo afectaron exactamente el desarrollo. Por ejemplo, incluso si el tipo de parámetro se especifica incorrectamente y no causa un error en su flujo de trabajo, sin embargo, a medida que el proyecto se vuelve más complejo, puede convertirse fácilmente en un rastrillo que otro miembro del equipo pisará. De acuerdo con las estadísticas presentadas en la presentación, tales defectos de evolución (fallas reveladas durante la evolución del código) representan aproximadamente el 80% de los errores que salen durante la revisión del código.
Y también ...

Es difícil delinear el programa de la conferencia: todo el contenido de la conferencia fue útil, sin embargo, una lista escrupulosa de los 22 informes, incluso con el resumen más corto posible de sus tesis, convertiría el informe en una hoja ilegible, así que mencionemos solo algunos más.
Manteniendo una promesa, Kirill Smelov de JetBrains se sumergió en los detalles del dispositivo interno PHPStorm, incluida la forma en que PHP participó en la creación del IDE.
El discurso de Anton Titov de SpiralScout LLC resultó ser ese caso raro en el marco del programa de la conferencia cuando se realizó una desviación temática del curso "estrictamente en PHP", sin embargo, su historia sobre el desarrollo de aplicaciones híbridas PHP / Go usando RoadRunner fue definitivamente exitosa.
Tomáš Votruba, un delegado checo, llamó a una casa llena y le explicó en detalle cómo hacer que la refactorización de grandes conjuntos de códigos heredados sea menos dolorosa y acelerar el proceso varias veces utilizando la decisión de su autoría: Rector.
Dmitry Eliseev (ElisDN) leyó el informe "OOP competente: Organización de lógica empresarial confiable", en el que examinó, entre otras cosas, cómo separar la IU y la lógica empresarial de la mente.
Desconferencia y mitaps
Hacia el final del programa principal, en lugar de uno de los bloques de construcción, se probó el formato Unconference, un análogo del "micrófono abierto": cualquiera podía salir y hacer un mini informe sobre un tema que le parecía interesante. El piloto de tal "stand-up de TI" fue un éxito: Alexander Makarov habló sobre lo que es probable que sea Yii3, un invitado de Badoo compartió una historia, cómo él y sus colegas hicieron un proxy para Xdebug, y, finalmente, otra presentación espontánea se dedicó a las características del trabajo. con impresoras de etiquetas especializadas y un cheque y atornillar todo esto a PHP.

En una cuarta habitación separada, después del almuerzo, comenzó un conjunto de mitaps aplicados (y también encontraron a su audiencia):
- "Laravel vs Symfony: una comparación incomparable".
- "Cómo contribuir a Symfony y por qué hacerlo".
- "¿Cómo usar Yii2 en Enterprise? ¡Obtén las mejores prácticas de Symfony! ”
A su vez, los socios de la conferencia no organizaron un "cementerio de bastidores", sino un movimiento discreto, entretenido y apropiado. ManyChat tenía pruebas PHP en línea, un concurso para crear y desenredar bots y un crucigrama de expresión regular genial. En la esquina, Badoo corta Tech Alias, una versión de TI de los escritorios Alias. Bueno, en el stand de Paxful, los visitantes esperaban "elefantes morados atípicos", calcomanías y dulces de Estonia.


"Asegurando" el pasado
Afterparty se convirtió en un caso agradable de cooperación dentro de la comunidad en todos los aspectos: los organizadores lo organizaron junto con los iniciadores de la reunión de Beer PHP. Al final del programa principal, aquellos que querían, y entre ellos un buen número de oradores, avanzaron al Octubre Rojo para continuar los debates en el "ambiente artesanal".

¿Qué pensamos sobre los "elefantes 2020"?
Si es muy conciso, entonces PHP Rusia 2020 - para ser. Además de los formatos básicos que han demostrado su relevancia, seguramente habrá uno nuevo para la próxima conferencia. El registro de cambios del Comité Organizador y Lista de Deseos todavía está en proceso de llenado, pero algo ya está claro con seguridad.
- Sin lugar a dudas, continuaremos haciendo Unconference: la gente está contenta con el formato y pide más.
- Intentaremos pedir una pieza de elefantes. En PHP Rusia 2019 no lo fueron: resultó que sus derechos pertenecen a los muchachos de Francia, y son muy lentos; deben ordenarse durante 4-6 meses.
- Es casi seguro que traeremos al mismo Marco Pivetta, que estaba en nuestro programa, pero se cayó en el último momento por razones más allá de su control. También tenemos puntos de vista del padre de Symfony Fabien Potencier. Al final, trataremos de traer a Rasmus Lerdorf también: lo llamamos a la primera conferencia, pero tuvo intersecciones con otros eventos.
En general, estad atentos!

PD: finalmente, una pequeña bonificación. Como algunos de ustedes saben,
Konstantin Burkalev , residente nativo de Habrovsk y miembro del comité del programa PHP Rusia, también alberga podcasts de TI. Y la próxima,
104a edición de su SDCast es una entrevista que tomó de dos oradores de la conferencia muy merecedores, Anton Shabovty y Anton Morev. Habló con el primero sobre PHP asincrónico, multitarea y procesos PHP de larga duración, con el segundo, sobre Rest API y GraphQL, los pros y los contras de los enfoques, áreas y tareas de aplicación. Que tengas una buena escucha!