The PHP UK Conference 2016 is two days packed with interesting talks from some of the most well known speakers in the world. Each day will include three simultaneous tracks of talks so that you are certain to find something of interest at every point throughout the conference.
Johanna and Sam welcome all our delegates, speakers, and sponsors to the conference and provide an overview of the days events to come.
Want to separate the signal from the noise, but have too much input to deal with? Fed up with reading everything yourself? Mechanical Turk got you down? Then perhaps you need to apply some machine learning! In this talk, Christopher will cover some basic approaches to machine-learned classification as well as demonstrate a real-life application of it in PHP.
We have a new major release of PHP! But what does this mean for PHP developers in the Real World (TM)? This talk has everything you need to know to be the expert. Find out how the remarkable performance improvements could look on your own system, and see the shiny new features in this major release of the web's favourite scripting language. Get advice on how to upgrade your application, making use of the new features and avoiding the backwards compatibility traps. Developers and technical leaders everywhere who want to use better PHP will benefit from this session.
The PHP-based CMS space is a highly competitive one. Incumbents with large communities vie with new entrants to battle it out in this contested space. And yet despite this, most of them just aren’t very good. If you want to have a CMS that you actually enjoy using - no matter whether you’re a developer, a designer or a content administrator - you should probably be using SilverStripe. Join Hamish Friedlander, CTO of SilverStripe, as he explains why what you’re currently using is awful, and how we can make your life better again.
How do you lose 900 million dollars in 100ms? Or 8 million visits in just 4/10 of a second? User expectations are higher than ever when it comes to web performance, so much so that we've created an entirely new application architecture just to make it feel like our websites are faster than they actually are. This talk will look at how we can improve our users experience at any scale through performance optimizations at every layer of the stack, from backend to browser.
Big-bang migrations hardly ever work and usually take significantly more effort than expected. It's also hard to convince the stakeholders there's any value in the whole operation. It's much more effective to make gradual improvements. It's also more rewarding to celebrate success after every sprint. Learn how to leverage Symfony to move away from an Old School PHP Spaghetti Project™ to a modern Symfony based application. Release after the first iteration and keep improving the code base, delivering value in the same time.
It's a tough world out there. There are so many new things to learn, and the list of need-to-know's changes every day. How do you keep up? How do you move ahead? Find a mentor - but wait! Isn't this a dog-eat-dog field where admitting you don't know something is the death of your career? Maybe back in 1995, but this is the new age of open source. Collaboration and sharing of information reigns. Find a mentor to help you excel, but more importantly, find someone to mentor. Being a mentor is challenging, rewarding, and keeps you on your toes. Learn what it takes to find a mentor, be a good mentor, and what tools can help you build your mentoring relationship.
PSR-7 describes common interfaces for representing HTTP messages. HTTP messages are the foundation of web development. Web browsers and HTTP clients such as cURL create HTTP request messages that are sent to a web server, which provides an HTTP response message. Server-side code receives an HTTP request message, and returns an HTTP response message. This talk will explain the interfaces defined by PSR-7, how they define the future of interoperability between frameworks and tools. After that there will be a showcase of several implementations and tools such as zend's diactoros package, Guzzle v6, php-http and other packages that show the real power of shared interfaces for HTTP objects. As most projects are ongoing, this talk will also show how PSR-7 and these other tools can already be used today in existing projects.
Reports of the death of TDD have been greatly exaggerated. All but the most trivial of applications make use of the OOP principle of composition and as such require mocking of dependencies in unit tests. While PHPUnit has become the de facto unit testing framework for many projects, its bundled mocking API can leave something to be desired. This presentation is an introduction to Phake, an alternative mocking library with a more concise and intuitive API and a more substantial feature set that removes the headaches from mocking.
Practical lessons learned while revamping a US airline website to resist huge Black Friday and Cyber Monday traffic values. Using HTTP status codes and PHP cleverly, we have made parallel requests possible, so that the user experience is greatly enhanced, and we pre-cache resource-consuming user searches. All on a solid Symfony2 foundation.
With the newly added JSON support in MySQL, you can combine the flexibility of NoSQL with the strength of a relational database. In this session, Morgan will explain the new JSON datatype, and the new set of functions for handling JSON documents, available storage and indexing options. In addition, he will present benchmarks showing how much one can expect from the MySQL server in different use case scenarios.
Splitting an application up into multiple independent services can be a good way to keep it scaling and ensure stability and developer productivity in larger, growing teams. But just splitting the codebase, creating APIs and deploying the code on some servers is not enough, somehow your services need to know where and how other services are accessible. Classical approaches like hardcoding everything in every service or having a central load-balancer can quickly lead to problems in terms of scalability and maintainability. In this talk I'll show how we at ResearchGate tackled this challenge. With the help of tools like Consul and haproxy we created a setup that allows us to quickly boot and shutdown services. This ensures that all servers are utilized optimally and load spikes can be reacted upon quickly and automatically.
Building and deploying Magento in Modern Web environment, using composer, Continuous Integration/Deployment, hubot, slack, fully tested.Separating out you statics / themes on a different release cycle. Stubbing your themes for faster iteration. Also covering what's new in Magento 2.0
Are you nervous of version control even if you don't admit it? Have things got harder since your team expanded? Don’t panic! you’re not on your own. I've put together a run down of some of my tricks, tips and ‘good citizen’ techniques to avoid the worst kinds of conflicts and deal with the remaining ones as efficiently as possible. Join me on a journey through some of the causes of version control pain after which we will visit some social and technical solutions. I'll lead you via branching policies, basic conflict resolution, to more tricky conflict management. We will spend time with some of the lesser known features of version control and command line hacks to stay in charge of multiple branches. As a bonus we will discover how version control can be integrated with other tools having many positive knock on effects for your team and wider business: How forcing commit message formats and automating your change log can help your release process or apps to streamline code reviews can avoid some unnecessary context switching. Triggered notification of interested parties helps keep everyone in the loop especially for breaking changes.
In this talk we will discuss using HHVM and MongoDB together. In the last months I have written an HHVM extension for MongoDB, that mimics the API of a similar PHP extension. On top of each extension we have a layer in PHP that provides the more user friendly aspects of the driver. The PHP part of the driver gets accelerated to nearly the same speed as the extension written in C++, while being vastly easier to update and maintain. We will dive in to the architecture of the whole setup, HHVM's JIT and extension APIs as well as some comparisons between running your app on PHP+MongoDB and HHVM+MongoDB.
Docker has recently been one of the hottest words in the web technology world. But why is it so? Isn’t it just another “hyper tool” that will be forgotten in a year? I’ve been using Docker for one year to develop and deploy both professional and pet projects. During this year I worked out my very own set of best practices to deal with Docker, that I’d like to share with you. Why is Docker so popular? Is it hard to use it? How to use it to develop PHP applications and how to deploy them into the cloud? What are the main threats of Docker? Is it worth to use it? If you ever thought about any of these questions, this presentation should be interesting for you.
Johanna and Sam welcome all our delegates, speakers, and sponsors to the conference and vide an overview of the days events to come.
This is not your normal security talk. Sure we talk about secure communication and the importance of hashing and encrypting (and why rolling your own is never a solution). We might even get frisky and cover some more interesting topics like true randomness, timed attacks and social engineering. But what we're really interested in is understanding what that hacker is trying to do on your site, what the motivation is and, using this, understand where you need to be vigilant. We're also going to talk about the results from an ongoing 4 year project to see just how vulnerable the average consumer website is. Theodore Sturgeon famously said 90% of everything is crud, we'll get to see just how close we come to that number. So if you're ready to see how scary the dark depths of security can be and just how scary it is when you look up and see all the leaky boats above us is, this is for you.
You heard all these great stories of people using tools like Vagrant, Puppet, Composer and Phing. Each of these tools can massively improve your development workflow. But how to combine them to get the best out of it? This session will guide you through the process of setting up the toolchain to build the "perfect development stack"(tm).
What exactly happens when you run `php example.com`? I wanted to answer this, so I decided to build my own PHP interpreter. Let me tell you what I learned and what does fancy words like opcodes and bytecode cache mean. With now two main rivals the standard PHP and HHVM from Facebook, there are plenty of choices to run your code fast. But they are both complicated projects, making it hard to understand the inner workings. Rather than relying on them to magically do the right thing, understand the principles of programming languages.
string(406) "While var_dump driven development is great when you're starting, at some point every developer wants more. Step debugging is the answer.
In this session we'll cover the fundamentals of installing and configuring Xdebug, configuring PhpStorm to listen to Xdebug, and then actually step debugging some scripts to find our problems. Step debugging PHP is an incredibly easy and powerful tool when you know how!"
Taking a data-driven approach to application management starts with instrumentation, but storing, analyzing, and distributing that data to the people who need it introduces a unique set of problems. Discover how one of the world’s top digital media platforms handles the massive stream of analytics pouring in from millions of consumer devices. We'll dive into the technologies that allow us to collect, route, store, and find meaning in data at 20 MB/s.
At the Home Office we had a problem. Hundreds of lines of infrastructure, everyone doing their own thing, and reinventing the wheel. During this talk I'll tell you how we are attempting resolve that using Docker, Kubernetes and changing developer culture. This talk consists of 3 parts. In the first I will introduce you to docker and talk about how to use it to create reusable infrastructure components, then I will talk about how to deploy and manage those components with the open source PaaS Kubernetes, and finally I'll talk about changing our culture using tools and techniques to ensure we keep reusing into the future.
The PHP world is spinning quite fast these days. There’s a lot to keep up with. You can’t be an expert in all subjects, so you need a way to find out what’s relevant for you and your team. Which approaches to software development would be useful? Which programming paradigms could help you write better code? And which architectural styles will help your application to survive in this quickly changing world? In this talk I’ll help you answer these questions by taking a bird’s-eye view. I will quickly guide you along some of the most fascinating topics in modern PHP development: DDD, BDD, TDD, hexagonal architecture, CQRS, event sourcing and micro-services. We’ll see how these things are related to each other, and how understanding and applying them can help you improve your software projects in many ways.
ZF3 is the framework that took the opportunity to learn from the previous 4 years of ZF2 and be even better than that! Today's PHP projects are built of components installed via Composer and ZF3's architecture reflects this approach; its core components have also been greatly improved in both usage and performance from older versions of the framework. If you're already running a ZF2 application, you'll be able to upgrade your existing application and there will be some excellent support for doing so - we love it when developers get to use new things. We'll also look at how PSR-7 and middleware has been embraced. If you want to learn what's new in the world of Zend Framework, then this session is for you.
This session will cover Regular Expressions from the basics to the darkest corners of this arcane art. Regular Expressions at the core come in handy to achieve validation and text manipulation tasks. In the day to day life of a developer, becoming comfortable with them opens up many more use cases. As one of the tortured souls that actually enjoys writing - and reading - regexes, Jordi will share his passion so that you too can see there is no reason to worry.
The HTTP protocol has come a long way since its first version HTTP V0.9 in 1991 and with the final release of the HTTP2 spec at the beginning of 2016 a whole next chapter of web development is ahead of us! After a quick tour through the protocol history, we will mine the gems from in HTTP/2 spec and see why this is an awesome step for a modern web. What can you already use today? And why today's best practices are tomorrow's antipatterns?
Security is an enormous topic, and it’s really, really complicated. If you’re not careful, you’ll find yourself vulnerable to any number of attacks which you definitely don’t want to be on the receiving end of. This talk will give you just a taster of the vast array of things there is to know about security in modern web applications, such as writing secure PHP web applications and securing a Linux server. Whether you are writing anything beyond a basic brochure website, or even developing a complicated business web application, this talk will give you insights to some of the things you need to be aware of.
When helping companies improve their development practises, there are often conceptual sticking points - for example, rebase can be hard to understand and many people are wary of it. To help us better understand and communicate our workflows, I will illustrate Git concepts in the language of comic books, followed by a practical demonstration of the techniques. This session has something to offer all Git users - from newcomers trying to get their heads around it all, to veterans trying to communicate a workflow to their colleagues. It should certainly spark an interesting discussion!
Doctrine ORM is a complex tool that enables development of very advanced applications, but are you actually using it correctly? What if you have been using the ORM incorrectly or in an inefficient way? We are going to inspect the advantages and disadvantages of various approaches to application design with this Data mapper, and come up with a set of best practices that will be useful for your projects.
A good rule of thumb to have as a developer is that if you have to do something three times or more, you should automate it. Imagine that a task takes you a minute to do, twice a day. Now imagine that you could write something that does it for you, but it would take an hour. Initially, you'll have lost an hour, but after the first month you'll be breaking even, as you've saved those two minutes per day. Then after the second month, you've essentially gained a free hour. Automation is a developer's best friend. Some things are easier to automate than others, but almost anything can be automated. In this talk, we'll take a look at what can be automated, what tools are available to help us and crucially, *if* we should automate it. Surprisingly, sometimes the answer to the question "should we?" is "no".
*Schedule is subject to change without notice