
Pada 17 Mei, konferensi profesional pertama untuk pengembang PHP PHP Russia 2019 diadakan di Moscow Infospace. Setelah jeda yang lama, mereka menerima platform yang sepenuhnya sesuai untuk mereka; dalam
pengumuman, kami membandingkannya dengan stadion, yang peychpishnikov, salah satu tim dari "divisi IT teratas", tidak memilikinya. Dan "stadion" bertemu musim pertamanya setidaknya dengan bermartabat, dengan perbedaan dari prototipe sepakbola bahwa sulit untuk membuat pemisahan yang ketat antara pemain dan penggemar.
Selama periode "glasiasi pembekuan hebat" - konferensi besar tentang PHP di Rusia belum diadakan selama sembilan tahun - komunitas di sekitar bahasa tersebut membutuhkan tempat pertemuan seperti itu. Pada saat yang sama, harapan besar disematkan pada acara tersebut, dan tugas untuk menyenangkan semua yang tertarik terlihat luar biasa. Tetapi ketakutan memiliki mata yang besar, dan paranoia yang sehat memiliki visi periferal yang baik: pengalaman acara TI di sisi pengorganisasian kami, bersama dengan kekuatan "keajaiban PHP" di sisi komite program dan wewenang para pesertanya dalam industri, memungkinkan kami untuk menyelenggarakan acara yang matang pada percobaan pertama.
Hampir 500 orang tiba di PHP Rusia. Penonton online juga cukup besar - beberapa ratus pemirsa terhubung. Dasar dari program ini adalah "disemen" 22 laporan, termasuk lima dari pembicara asing terkemuka, serta tiga pertemuan dan pertunjukan dalam format improvisasi, Unconference dalam aliran terpisah.

Konferensi berjalan dalam
tiga aliran , dan memilih ke mana harus pergi akan menyakitkan jika bukan karena kesempatan untuk menonton siaran dari segala sesuatu yang terjadi dalam program utama.
Alexander Makarov, co-penyelenggara konferensi
- Kami dalam panitia program berpikir untuk waktu yang lama dan akhirnya mengguncang grid sehingga teka-teki berkembang: kami meninggalkan ide menempatkan penutur bahasa Inggris dalam aliran yang terpisah, kami menyaksikan sehingga laporan saling berimbang. Berbicara relatif, sehingga yang paling hit berjalan paralel dan tidak ada yang menarik mayoritas penonton. Tentu saja, ada penghubung konseptual di dalam setiap trek: misalnya, tepat setelah pidato oleh Dave Liddament, yang, berbicara tentang analisis statis kode PHP, menaruh banyak perhatian pada PHPStorm, laporan Kirill Smelov dimulai di ruangan yang sama, di mana perangkat IDE ini disortir, dan untuk sebuah cerita tentang inovasi dalam PHP 7.4 diikuti oleh presentasi pada 8.0.
Tentang topik
Seperti
yang direncanakan , bagian terbesar dari pertunjukan dibangun di sekitar topik-topik khusus PHP, sebagian besar sangat, sangat hardcore.
Di antara vektor-vektor utama yang menarik di konferensi, masa depan bahasa itu sendiri, arsitektur dan standarisasi, pemrograman asinkron dalam PHP, praktik terbaik dan kemampuan implisitnya, bekerja dengan kerangka kerja tertentu dan bahkan pembelajaran mesin menggunakan tumpukan PHP disorot.

Makalah Kunci
Komite program mendekati pemilihan laporan dengan cermat, oleh karena itu sulit untuk mengidentifikasi yang “paling keren”: tidak ada blok yang terus terang lewat dalam program, setidaknya menurut hasil umpan balik pertama dari para tamu. Jadi, sebagai contoh, kami harus memilih beberapa hal berikut:
- yang paling ramai;
- yang paling dinanti;
- terkaya dalam keterkejutan.

Nikita Popov: Properti Yang Diketik dan banyak lagi. Apa yang datang di PHP 7.4?

Nikita Popov, salah satu pengembang inti PHP yang paling aktif dan terkemuka, sepatutnya masuk ke dalam pokok-pokok konferensi. Laporannya adalah persilangan antara changelog dengan komentar penulis (ditambah contoh kode) dan kunjungan visioner ke masa depan bahasa. Secara konsisten dan ringkas, Nikita menjelaskan apa yang menanti kita di PHP di versi selanjutnya dan selanjutnya.
Menurut perkiraan waktu, rilis alpha versi 7.4 akan berlangsung pada 6 Juni 2019, dan rilis 7.4 GA akan diluncurkan pada 21 November. Ya, setahun kemudian, pada bulan Desember 2020, "delapan" mengipasi oleh rumor akan dirilis.
Hal utama yang akan diimplementasikan dalam PHP 7.4:
- properti yang diketik;
- FFI - Antarmuka Fungsi Asing, untuk bekerja dengan fungsi eksternal di C;
- fungsi panah;
- - prapembuatan;
- - operator
??=
; - - tipe pengembalian kovarian;
- - tautan lemah (WeakReference);
- - menambahkan operator
…
untuk array.
Mungkin inovasi yang paling lama ditunggu dalam versi yang akan datang adalah kemampuan untuk mengatur tipe properti kelas. Patut dicatat bahwa properti seperti itu harus diinisialisasi secara eksplisit, dan jika nilai defaultnya tidak ditentukan, properti itu tidak akan menjadi nol - tidak, dalam situasi seperti itu pengecualian akan dilemparkan. Selain itu, antara lain, properti yang diketik akan membantu menerjemahkan ke dalam PHP sesuatu seperti yang masih belum ada dalam bahasa jenis persimpangan. Dengan kata lain, tentukan beberapa jenis argumen sekaligus.
Perubahan besar kedua di PHP 7.4 adalah debutnya fungsi panah. Ini adalah fungsi anonim satu-baris - tidak berguna, karena beberapa pengembang yakin, gula sintaksis, meskipun yang lain menganggapnya sama bermanfaatnya.
Anda juga tidak dapat mengabaikan operator
??=
, yang sebelumnya tidak ada dalam bahasa. Inilah yang dilakukannya: jika parameter di sebelah kiri tidak ada dalam ekspresi atau nol, itu ditugaskan nilai parameter di sebelah kanan.
Dari kemungkinan inovasi yang masih dalam diskusi, obat generik disebutkan. Namun, Nikita segera membuat reservasi bahwa implementasi penuh mereka bukanlah tugas yang mudah.
Adapun fitur yang dianggap usang dalam versi 7.4, ada beberapa di antaranya. Memproses operator ternary dari kiri ke kanan telah dibuang ke tempat sampah sejarah - dalam G8 sintaks ini akan menghasilkan kesalahan. Prioritas operator gabungan juga akan dikurangi: jika digunakan bersama dengan operator penjumlahan atau pengurangan, mereka akan diproses terlebih dahulu.

Di akhir pidatonya, Nikita dibanjiri dengan pertanyaan-pertanyaan yang dia coba jawab seobjektif mungkin, berkat itu para pendengar menerima beberapa tips berharga.
Nikita Popov:
- Saya pikir koleksi yang diketik akan dalam bentuk obat generik.
Dmitry Stogov: Hal paling menarik di PHP 8

Jalur, yang Nikita Popov mulai, dilanjutkan oleh kontributor terkemuka lainnya ke inti PHP - Dmitry Stogov, insinyur utama di Zend Technologies. Dia menceritakan tentang masa depan bahasa yang sedikit lebih jauh - tentang versi sakramental 8.0. Dalam beberapa tahun terakhir, ia berfokus pada peningkatan kinerja PHP dan telah membangun kisahnya dengan penekanan yang sama.
Selama satu setengah dekade, bahasa "dipercepat". Keuntungan kinerja yang signifikan dicapai dengan rilis 5.1 dan 7.0. Di era Tujuh, ada pertumbuhan yang lancar: meningkatkan kecepatan eksekusi kode dari versi ke versi tidak radikal. Namun, PHP 8.0 menjanjikan pengembang tas hadiah. Mereka menunggu banyak hal menarik.
Kami mengatakan "menarik" - JIT berarti? Tidak juga. Ya, memang, kompilasi dinamis just-in-time menjanjikan peningkatan kinerja dalam versi 8.0, tapi ... hanya dalam tes sintetik, dalam aplikasi nyata, bahkan pelambatan mungkin terjadi, meskipun tidak signifikan. Namun, peningkatan dimungkinkan.
Kemudian "daging" dimulai: Dmitry pergi jauh ke dasar-dasar PHP dan JIT di dalamnya, menjelaskan di sepanjang jalan, "apa yang salah dengan JIT", dan berbagi dengan publik bagaimana JIT, mekanisme pra-pemuatan dan FFI dan untuk karena apa yang mereka dirancang untuk meningkatkan kinerja kode PHP.
Triad di atas membuka kegunaan baru untuk PHP. Dimungkinkan untuk menulis ekstensi secara langsung di PHP, menghubungkan perpustakaan pihak ketiga, membuat prototipe tanpa kerja ekstra ...
Tetapi, sebagai seorang insinyur yang jujur, Dmitry tidak hanya menguraikan kemungkinan-kemungkinan yang memusingkan yang akan tersedia dalam versi bahasa yang kedelapan, tetapi juga memperingatkan tentang kekurangannya, tetapi juga, "tidak optimalnya". Tentu saja, sangat bagus bahwa dengan skrip preloading dimuat pada saat startup PHP, namun skrip tidak dapat diganti tanpa memulai ulang, dan beberapa mungkin tidak berfungsi dengan preloading seperti yang dimaksud. Tentu saja, luar biasa ketika, berkat FFI, Anda dapat beroperasi pada struktur data yang didefinisikan dalam C, dan API itu sendiri sederhana dan menyenangkan, hanya FFI membuka ribuan cara baru untuk menembak diri sendiri, dan kinerjanya tanpa JIT relatif rendah.
Pada saat yang sama, ada lebih banyak plus dari kombinasi teknologi yang terletak pada fondasi G8 daripada minus. Selain itu, banyak fitur yang Dmitry sebutkan dalam laporan dapat dirasakan sudah dalam versi 7.4.
Alexander Lisachenko: Sekolah sihir PHP

Ruang penuh setelah makan siang dikumpulkan oleh Alexander Lisachenko, kepala pengembangan web di Alpari, anggota komite program PHP Rusia 2019, pencipta dan pengembang utama kerangka kerja berorientasi aspek Go! Aop. Dia menawarkan melihat bahasa melalui prisma - subtitle kami tidak bohong! - sihir.
Sama seperti intuisi adalah logika yang tersembunyi dari akal, maka sihir dalam bahasa pemrograman adalah eksploitasi kemampuan abnormal atau kurang dikenal bahasa ini berdasarkan pada pengetahuan mendalam tentang struktur internal, "distorsi" dan celah.
Alexander mendemonstrasikan sebagai pengalihan beberapa trik bahwa banyak dari mereka yang duduk di aula (dan ada beberapa junior di antara mereka) meledakkan otak. Pembicara secara bertahap semakin dekat dengan bagaimana menggunakan tweak yang dia temukan selama bertahun-tahun menggali dalam perut PHP, untuk kepentingan pengkodean.
Metode magis, cara non-standar mengakses properti, mengubah konteks, stream filter - semua ini dan banyak lagi "maestro Lysachenko" mengambil terpisah dari sudut pandang pragmatis. Meskipun tidak mungkin untuk tidak mencatat keindahan paradoksal dari apa yang pembenci PHP lebih suka menyebutnya kelemahan bawaan. Kami tidak tahu, kami tidak tahu ... Kami menyukainya.
Alexander memberikan perhatian khusus pada pemrograman berorientasi aspek dalam PHP, yang sepenuhnya sesuai dengan prinsip praktik apa yang Anda khotbahkan menggunakan di ekor dan surai dan yang sama meletakkan dasar Go! Aop.
Dave Leading: Analisis statis lanjutan yang praktis

Dave Liddament, Direktur Lamp Bristol, berbagi dengan publik praktik terbaiknya mengenai analisis statis lanjutan kode PHP. Sebagai penulis alat open source SARB, atau Static Analysis Results Baseliner, ia membuka semacam peta jalan bagi audiens untuk menerapkan analisis statis, sehingga setiap orang dapat meminjam dari solusi ulasannya dan teknik yang menurutnya sesuai dengan tumpukan dan kebutuhannya sendiri. Atau untuk menggunakan laporan sebagai panduan mini holistik untuk menerapkan analisis statis.
Menekankan pentingnya lingkungan pengembangan sebagai bagian dari gudang persenjataan untuk analisis statis, tamu kami dengan tulus memuji PHPStorm, yang tampaknya mengejutkan para moderator bagian, Roman Pronsky dari JetBrains, yang mengawasi IDE ini di perusahaannya.
Dave mulai dengan kebutuhan akan pemeriksaan dasar:
- Linting.
- Memeriksa kepatuhan dengan standar pemrograman (termasuk untuk menilai konsistensi kode yang tertulis di dalam perintah), misalnya menggunakan PHP CS Fixer .
- Analisis kode keamanan. Sebagai alat seperti itu, pembicara merekomendasikan Security Checker dari SensioLabs, penulis Symfony.
- Memeriksa var_dump yang terlupakan.
- Sinkronisasi otomatis memeriksa composer.json dan composer.lock (komposer memvalidasi)
Itu dan banyak alat lain untuk analisis kode statis dapat ditemukan oleh siapa saja dalam satu
repositori GitHub yang agung.
Untuk penganut symfony, laporan itu sangat berguna: bagi mereka yang menggunakan kerangka kerja dalam pekerjaan mereka, ia memberikan banyak tips dan trik untuk menerapkan analisis kode statis.
Selanjutnya, Dave mempelajari nuansa menggunakan alat yang lebih canggih, terutama Mazmur, Phan dan PHPStan. Dia membuat penekanan terpisah pada pekerjaan dalam kondisi Integrasi Berkelanjutan (dan dia juga menyarankan
beberapa pendengar pada
alat ).
Klasifikasi bug dan "hampir bug" dari Dave juga informatif, mengingat analisis statis kode dan dengan detail bagaimana mereka mencapai pengembangan. Misalnya, bahkan jika tipe parameter tidak ditentukan dengan benar dan tidak menyebabkan kesalahan dalam alur kerja Anda, namun, ketika proyek menjadi lebih kompleks, itu dapat dengan mudah berubah menjadi rake yang akan diinjak anggota tim lain. Menurut statistik yang disajikan dalam presentasi, cacat evolvabilitas (cacat yang diungkapkan selama evolusi kode) tersebut mencakup sekitar 80% bug yang keluar selama tinjauan kode.
Dan juga ...

Sulit untuk menguraikan program konferensi: semua konten konferensi bermanfaat, namun, daftar 22 laporan yang cermat, bahkan dengan ringkasan sesingkat mungkin dari tesis mereka, akan mengubah laporan menjadi lembar yang tidak dapat dibaca, jadi mari kita sebutkan beberapa saja.
Menepati janjinya, Kirill Smelov dari JetBrains terjun ke detail perangkat internal PHPStorm, termasuk menyentuh tentang bagaimana PHP digunakan untuk membuat IDE.
Pidato oleh Anton Titov dari SpiralScout LLC ternyata menjadi kasus langka dalam kerangka program konferensi ketika penyimpangan tematik dari kursus "ketat dalam PHP" dibuat, namun, ceritanya tentang pengembangan aplikasi PHP / Go hybrid menggunakan RoadRunner jelas berhasil.
Tomáš Votruba, seorang delegasi Ceko, memanggil satu rumah penuh, menceritakan secara terperinci tentang bagaimana membuat array ulang kode legacy yang lama menjadi tidak begitu menyakitkan dan mempercepat proses dengan beberapa kali menggunakan solusi untuk kepengarangannya - Rektor.
Dmitry Eliseev (ElisDN) membaca laporan "OOP yang kompeten: Organisasi Logika Bisnis yang Andal", di mana ia meneliti, antara lain, bagaimana memisahkan UI dan logika bisnis dari pikiran.
Batalkan konferensi dan mitaps
Menjelang akhir program utama, alih-alih salah satu blok bangunan, format Unconference diuji - analog dari "mikrofon terbuka": siapa pun bisa keluar dan membuat laporan kecil tentang topik yang tampak menarik baginya. Pilot dari "IT stand-up" seperti itu sukses: Alexander Makarov berbicara tentang kemungkinan Yii3, seorang tamu dari Badoo berbagi cerita, bagaimana ia dan rekan-rekannya membuat proxy untuk Xdebug, dan, akhirnya, presentasi spontan lainnya didedikasikan untuk fitur-fitur pekerjaan. dengan printer label khusus dan memeriksa dan mengacaukan semua ini ke PHP.

Di ruang keempat yang terpisah, setelah makan siang, serangkaian mitaps yang diterapkan dimulai (dan mereka juga menemukan audiens mereka):
- "Laravel vs Symfony: perbandingan yang tak tertandingi."
- "Bagaimana Menyumbang ke Symfony dan Mengapa Melakukannya."
- "Bagaimana cara menggunakan Yii2 di Enterprise? Dapatkan praktik terbaik dari Symfony! "
Pada gilirannya, mitra konferensi tidak mengatur "kuburan rak", tetapi gerakan yang tidak mengganggu, menghibur dan tepat. ManyChat memiliki kuis PHP online, kontes untuk membuat dan mengurai bot, dan teka-teki silang ekspresi reguler yang keren. Di sudut, Badoo memotong Tech Alias - versi IT dari desktop Alias. Nah, di stand Paxful, pengunjung sedang menunggu "gajah ungu atipikal", stiker dan permen dari Estonia.


"Mengamankan" masa lalu
Afterparty menjadi kasus kerja sama yang menyenangkan dalam komunitas dalam segala hal: penyelenggara mengaturnya bersama dengan penggagas pertemuan PHP Beer. Pada akhir program utama, mereka yang ingin, dan di antara mereka sejumlah pembicara, maju ke Oktober Merah untuk melanjutkan debat dalam "atmosfer kerajinan".

Apa yang kita pikirkan tentang "gajah 2020"
Jika sangat singkat, maka PHP Russia 2020 - menjadi. Selain format dasar yang telah membuktikan relevansinya, tentu akan ada yang baru untuk konferensi berikutnya. Changelog Daftar Keinginan dan Panitia masih dalam proses mengisi, tetapi ada sesuatu yang sudah jelas.
- Tanpa ragu, kami akan terus melakukan Unconference: orang-orang senang dengan format dan meminta lebih banyak.
- Kami akan mencoba memesan sepotong gajah. Di PHP Russia 2019 mereka tidak: ternyata hak mereka adalah milik orang-orang dari Perancis, dan mereka sangat lambat - mereka perlu dipesan selama 4-6 bulan.
- Hampir pasti kita akan membawa Marco Pivetta yang sama, yang ada di program kita, tetapi jatuh pada saat terakhir karena alasan di luar kendalinya. Kami juga memiliki pandangan ayah Symfony Fabien Potencier. Pada akhirnya, kami akan mencoba membawa Rasmus Lerdorf juga: kami memanggilnya ke konferensi pertama, tetapi ia memiliki persimpangan dengan acara-acara lainnya.
Semua dalam semua, tetap disini!

PS Akhirnya - bonus kecil. Seperti yang Anda ketahui,
Konstantin Burkalev , penduduk asli Habrovsk dan anggota komite program PHP Rusia, juga menyelenggarakan podcast TI. Dan SDCast
edisi ke-104 yang berikutnya adalah wawancara yang diambilnya dari dua pembicara konferensi yang sangat layak, Anton Shabovty dan Anton Morev. Dia berbicara dengan yang pertama tentang PHP asinkron, multitasking dan proses PHP berumur panjang, dengan yang kedua - tentang API sisanya dan GraphQL, pro dan kontra pendekatan, area dan tugas aplikasi. Selamat mendengarkan!