PHP Serbia was a blast
Tags: php, webdev, conference
Published: 2019-05-28 23:59:19

---
title: PHP Serbia was a blast
published: true
description: It's time we talked about the phelephant in the room. *Ba Dum Tss! Get it? This is double wordplay, elephant in the room and php + elephant == phelephant. Ok, I'm gonna stop now...
tags: php, webdev, conference
canonical_url: https://sasablagojevic.com/php-serbia-was-a-blast
cover_image: https://sasablagojevic.com/img/front/IMG_0266.PNG
---

_Originaly published at [sasablagojevic.com](https://sasablagojevic.com/php-serbia-was-a-blast)_

It's time we talked about the phelephant in the room. *Ba Dum Tss! Get it? This is double wordplay, elephant in the room and php + elephant == phelephant. Ok, I'm gonna stop now...

******

<p>I wanted to summarise my impressions after the <a title="PHP Serbia 2019 conference" href="https://2019.phpsrbija.rs/" target="_blank" rel="noopener">PHP Serbia 2019 conference</a> since this was my first time attending. I thought it might be helpful to those people who are on the fence whether it's worth visiting it.</p>
<p><strong>TL;DR&nbsp;</strong></p>
<blockquote>
<p>It is.</p>
</blockquote>
<h3><strong>PHP Serbia 2019 line-up</strong></h3>
<p><strong>The line-up</strong> and the topics covered were all really good. <a title="Zeev Suraski" href="https://twitter.com/zeevs" target="_blank" rel="noopener">Zeev Suraski</a> was this year's keynote and he gave us an overview of the PHP since he joined the band of brothers known as <em>php internals devs</em>&nbsp;and more importantly all the cool stuff that will be included in the upcoming php7.4 and php8. Yep guys, php8 will be coming hopefully by the end of 2020. Oh how the time flies by, I mean I haven't been in this game that long and I witnessed the amazing evolution from php5 to php8.</p>
<p style="text-align: center;"><img src="https://sasablagojevic.com/img/content/139/zeev.jpg" width="480" height="579" /></p>
<p>As I said, all the talks were good but the ones that stood out to me and I recommend you watch when the organizers share the videos are the following (in no particular order):</p>
<ul>
<li><em>Hello my name is "if"&nbsp;&nbsp;</em>by <a href="https://twitter.com/movetodevnull" target="_blank" rel="noopener">Sebastian Feldman</a>, not only did he dance like a madman and put Michael Jackson to shame, but he also gave us a low-level insight and deeper understanding of how different types of if statements work under the hood in php, yes you might have thought that a ternary if statement is just a shorthand way of writing a regular if statement, but when it gets converted to <a title="Zend Opcodes" href="https://x-team.com/blog/learn-about-php-opcodes/" target="_blank" rel="noopener">opcodes</a>&nbsp;it's actually not, and the same goes for using the null coalescing statement.</li>
</ul>
<ul>
<li><em>Git legit</em>&nbsp; by <a href="https://twitter.com/vanamerongen" target="_blank" rel="noopener">Pauline Vos</a> explained the difference between&nbsp;<strong>git rebase</strong> and&nbsp;<strong>git merge</strong> strategies in an easily digestible way, even by dummies like myself. Now we can finally put this feud to rest and just pick one that aligns with us philosophically because this is the same shit as OOP vs FP, one is not better than the other they both have their trade-offs. There is no silver bullet in software development no matter how strong we try to find it!</li>
</ul>
<ul>
<li><em>You're not a {framework} developer! -&nbsp;</em>if you are a Symfony or Laravel fanboy you might strongly disagree with this one :D, but <a href="https://twitter.com/tdutrion" target="_blank" rel="noopener">Thomas Dutrion</a> gave a good starting point on how to abstract and protect ourselves from the framework. There were some really good examples for both Symfony and Laravel frameworks on how to abstract at both the <em>Model</em> and <em>Controller</em> level.&nbsp;<span style="text-decoration: underline;">Our domain logic shouldn't know about our infrastructure (framework)</span>, this is my key takeaway from this talk, at least that's how I understood it and it makes perfect sense to me now. For those of you who are saying&nbsp;<em>But how often do we change a framework</em>? we are not necessarily going to change the framework itself but we need to protect ourselves from future updates of <em>our framework</em> as well. Each major version will have breaking changes and choosing not to update will compromise both performance and security of our codebase - that's how we get legacy codebases that everybody hates working with.</li>
</ul>
<ul>
<li><em>Making architecture explicit&nbsp;&nbsp;</em>by <a href="https://twitter.com/hgraca" target="_blank" rel="noopener">Herberto Graca</a>, we all know that organizing code and folders can be a pain in the ass and a huge liability if done poorly. Well, Herberto had some great charts and breakdowns on organizing code the <a title="Domain Driven Development" href="https://medium.com/the-coding-matrix/ddd-101-the-5-minute-tour-7a3037cf53b8" target="_blank" rel="noopener">DDD</a> way.</li>
</ul>
<p>I highly suspect that <a href="https://twitter.com/@marcelpociot" target="_blank" rel="noopener">Marcel Pociot's</a> talk&nbsp;<em>Getting started with WebSockets</em> and <a href="https://twitter.com/@faguo" target="_blank" rel="noopener">Damien Seguy's</a> <em>T</em><em>op 10 PHP coding traps</em> were awesome as well but unfortunately, I did not attend them.</p>
<p style="text-align: center;"><img src="https://sasablagojevic.com/img/content/139/IMG_0263.jpg" width="1024" height="496" /></p>
<p style="text-align: center;"><em>This is me winning a free ticket for PHPSerbia 2020 and a Phelephant on the conf quiz :D</em></p>
<h3>Venue and organization</h3>
<p>The venue is a big theater in <a title="Zemun" href="https://theculturetrip.com/europe/serbia/articles/top-10-things-to-see-and-do-in-zemun-serbia/" target="_blank" rel="noopener">Zemun</a>, there were two tracks A and B, B being the smaller one obviously. Well, it was quite smaller compared to A, so what happened was that all the people that were interested in a talk at track B could not fit in or chose not to stand. This only happened two times though. Gauging the audience's interest and which speaker should get the short stick end is tricky, so maybe, as Damien Seguy suggested, attendees could vote somehow, when the lineup is known, which talks they're interested in so the organizers at least have some estimate.&nbsp;</p>
<p>There were food and beverages in abundance. I was well fed and watered like a plant xD. I must highlight that the food was really tasty and the Conferences' craft beer as well. What I also really liked compared to other conferences I attended (that being <a title="Webcamp Zagreb" href="https://2019.webcampzg.org/" target="_blank" rel="noopener">Webcamp Zagreb</a> times two lol) they had a real espresso machine so I could get my daily 37 doses of macchiato, yes I'm an addict and I'm not ashamed. I basically didn't spend a dime the whole day throughout the conference there was really no need to.</p>
<p>In general, the organizers did a great job and they were very welcoming, <span style="text-decoration: underline;">you just felt at home from day one</span>.&nbsp;</p>
<p>My only pet peeve is that maybe the talks could be a bit shorter so we have a small pause in between them to reset our brains, chit-chat, drink a coffee or whatevz or maybe I'm just spoiled by WebcampZg.</p>
<h3>Final verdict</h3>
<p>I give it a solid <strong>9/10</strong> just because I'm afraid if I gave them 10 they'll get lazy. Now is the time for you to stop thinking and start preparing for the next one!</p>
<p>&nbsp;</p>
<p>P.S. Thanks to my company <a title="JSGuru - Your reliable software development partner" href="https://jsguru.io" target="_blank" rel="noopener">JSGuru</a> for paying the ticket, I mean who doesn't like free stuff!&nbsp;</p>


_Originaly published at [sasablagojevic.com](https://sasablagojevic.com/php-serbia-was-a-blast)_