I recently had the opportunity to attend the annual PHP Northwest Conference in Seattle, Washington on September 15 - 17th. The event took place over four days and offered an optional workshop on day one. I was able to attend the conference only which featured many talented speakers, all of whom belong to the PHP community in one way or another. Speech topics ranged from non-technical issues such as work ethics or mental health and well-being to more technical topics like transitioning a monolithic application to packaged micro-services, HTTP 2.0, and PHP 7.0. The following review of the annual PHP Northwest conference includes a summary of speakers Will Gallego of Etsy and Taylor Otwell, the creator of Laravel, along with a few of the conference’s strengths and weaknesses.
One of my favorite speeches was by Will Gallego, a Senior Software Engineer with DevOps responsibilities for Etsy. Will delivered an excellent talk about the evolution of Etsy’s production development stack. Personally, being a PHP developer who is also responsible for DevOps, I found topics involving scaling and optimization the most relevant to my career goals.
Will discussed the process of transitioning from PHP 5.6 to HHVM (Hip Hop Virtual Machine by Facebook) and then later to PHP 7.0. The main benefit Etsy saw, aside from much faster page loads, was a reduction in the number of servers needed and a substantial reduction in total memory usage. For those not keen to the PHP world, PHP 6.0 was decidedly abandoned by PHP internals for various reasons. While PHP 7.0 did introduce some new functionality such as the three-way comparison operator (also known as the spaceship operator), the most significant improvements seen in PHP 7.0 are substantial performance optimizations. In some cases, PHP 7.0 may operate twice as fast while consuming a fraction of the memory of prior PHP versions.
Another great speech was that of Taylor Otwell, the creator of Laravel “The PHP Framework for Web Artisans.” Taylor gave an eloquent and somewhat humorous speech about the history of Laravel and some of his philosophies as a developer. Taylor also discussed his unique approaches to writing code.
For instance, Taylor’s strategy when writing code begins with writing out the desired functionality in sentence form. He then converts that sentence form to the desired PHP syntax. The goal is to end up with code that can be understood when read without the need for extensive commenting. The last step is to write supporting code. For example, imagine you were going to write code for managing and interacting with users. To utilize Taylor’s approach, you might start out by writing what you want the code to do in a sentence. Then, create the desired syntax, and last the supporting functions and methods. For example, in a sentence:
I want to: create a new user, give the user a role, add a profile photo, and send a welcome message to the user.
The desired syntax (within the confounds of PHP) might be:
$user = new User();
‘first’ => ‘jon’,
‘last’ => ‘doe’,
‘email’ => ‘email@example.com’
->message(‘Welcome to the platform!’, ’firstname.lastname@example.org’);
Then, when finished, write out the methods and supporting code needed. For example: attachRole(), addProfilePhoto(), and message(). (The create() method comes for free with Laravel)
This philosophy emphasizes readability with little regard to performance. The advantages outweigh the disadvantages; however, this approach should be used after considering the impact of any possible limitations to performance.
Another interesting code philosophy Otwell shared, “…I open up a config file and ask myself, how does this make me feel?”. He elaborated that a lengthy, busy, and messy config file might get him to feel overwhelmed vs. a tidy, terse config file. This philosophy goes hand in hand with the convention over configuration design paradigm which has the goal of reducing the number of decisions a programmer has to make. By creating a terse config file, you are making these decisions for the developer by displaying what is necessary.
While many of the speeches were very informative, the conference also had its fair share of jargon and buzzwords. Many speakers repeatedly mentioned: docker, vagrant, containers, micro-services, micro-frameworks, etc. often with no apparent reason in mentioning these buzzy terms.
Overall, the conference turned out to be very informative and to a hardcore techie like myself, entertaining. The catered lunches were exquisite, and there were plenty of opportunities to meet and chat with the speakers. Taylor Otwell came down to the lobby after his speech and spoke with us Laravel fans. I was able to talk with Taylor briefly about adding free support for event broadcasting, which he replied was already made free in Laravel 5.3. A few weeks after the conference Will Gallego quickly responded to my emails about Etsy’s choice to use Apache vs. NGinx. In summary, my visit to the PHP Northwest conference was a very good time. If I have the chance to attend the next PHP Northwest Conference, I definitely will.broadcasting, which he replied was already made free in Laravel 5.3. A few weeks after the conference Will Gillego quickly responded to my emails about Etsy’s choice to use Apache vs NGinx. In summary my visit to the PHP Northwest conference was a good time. If I have the chance to attend the next PHP North West conference I definitely will.