The PHP UK Conference 2015 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.
Can’t escape the feeling that you’ve somehow plateaued in your growth as a software developer? In this talk Yitzchok shares the “wisdom of the sages” as practical, actionable advice to reinvigorate your career.
In a world full of scalability challenges, a reverse caching proxy has become an essential tool to protect your backend servers. This talk is dedicated to that and compares Varnish to Nginx as the two tools for the job. We'll be talking about setup, configuration, default behaviour, invalidation, monitoring and some advanced tricks such as ESI.
With new PHP versions being released more often, and projects increasing their minimum requirements for PHP versions, it's clear that things are changing rapidly. This session is all about the changes introduced in recent versions of PHP, and what that means for PHP projects everywhere. There will be practical examples of the shiny new features, advice on finding hosting and safely upgrading existing projects, and news about the performance improvements you can expect as you move between the versions. The way PHP is evolving is truly exciting so come and find out what it's all about!
As your application grows, you soon realise you need to break up your application into smaller chunks that talk to each other. You could just use web services to interact, or you could take a more robust approach and use the message broker RabbitMQ. In this talk, we will take a look at the techniques you can use to vastly enhance inter-application communication, learn about the core concepts of RabbitMQ, cover how you can scale different parts of your application separately, and modernise your development using a message-oriented architecture.
WordPress powers over 20% of the web, yet until recently it’s toolbox and build process would be considered antique at best. A little over one year ago we began the process of reevaluating our choices. This lead us to updating our tooling and testing; making them first class citizens. Many of the pieces were taken off the shelf, a few where custom built, and some required large coordinated efforts to be successfully implemented. We’ve learned some valuable lessons along the way that may help other projects modernize their toolbox and discovered some excellent benefits that reinforce our decision to take on this challenge.
Composer has grown into the de-facto standard PHP dependency manager. While we struggle to make it easy to use, mastering dependency management and packaging in general remains tricky. In this session you will learn how to leverage Composer version constraints, grasp stabilities and semantic versioning along with a few more tips on being a good OSS citizen. You should already be comfortable with Composer basics and eager to learn about it some more.
2014 is the 5 year anniversary after the idea of Devops was born. To paraphrase a quote from http://devopsdays.org/ "Back then we didn't know we were going to change the IT industry. Devops has gone from an underground, to a wide mainstream industry adopted idea." Incredibly even after 5 years we still don’t have all the answers and in an industry that changes so rapidly it's important to grasp and understand the core concepts of what devops is about so that you can take your organisation or development team forward. My talk will dispel some myths, cover fundamental ideas and tools you can embrace, mainly from a developers perspective. Ideally I hope to inspire developers to implement devops practices correctly within their teams. Whether you are seasoned professional, or amateur, my talk should have something for everyone.
Modern web applications are complex, have many layers and usually integrate many technologies. A well structured application log is invaluable for debugging your application in development and monitoring it in production. All this being said it’s amazing how many applications don't have an application log or have a poor, inconsistent one which is little use to anyone! This session takes a brief look at the basics of logging (libraries and tools) and moves on to look at how to plan an effective logging strategy for your application. Questions like: What to log, logging levels, how much to log and how long to keep historical logs are all addressed. In the second half of the session we consider logs as a stream of events and how we can use Logstash and Kibana to surface a wealth of interesting information about our applications.
Handling RESTful API requests with Laravel PHP Framework resource controllers is already a cinch. With the arrival of Laravel 5, handling request routing has been made even easier by using a configuration-as-annotation approach. Controller annotations may take advantage of doc block-style syntax and then be compiled using Laravel's artisan command-line tool. I'll present this approach by providing a few examples and discussing some of the pros and cons.
Unfortunately accessibility is often an afterthought. Some users can’t use a mouse, others are visually impaired. In this talk I will show you how to test accessibility and how to browse your site blindfolded or with only a keyboard and still get around using things like headers and aria labels.
The web has changed. Users demand responsive, real-time interactive applications and companies need to store and analyze tons of data. Some years ago, monolithic code bases with a basic LAMP stack, some caching and perhaps a search engine were enough. These days everybody is talking about micro-services architectures, SOA, Erlang, Golang, message passing, queue systems and many more. PHP seems to not be cool anymore but... is this true? Should we all forget everything we know and just learn these new technologies? Do we really need all these things?
Test Driven Design really helps us learn about the design of our code and how to improve on it. It is also true that the more we know about design, the more our code can actually benefit from TDD. This talk will cover just enough to give you the design inspiration you need to appreciate TDD. We will see responsibility driven design, "Tell don't ask", the law of Demeter, Dependency Inversion and other very key design principles and how they change the way we look into coding and testing.
Every day, PHP devs around the world are approached by stakeholders or managers and asked the same question..."Can't we make our application faster?" Forget adding more RAM, OpCode caching or load balancing - often the problem is much more obvious - mySQL. Every PHP developer knows how to query a table, join tables and many even do funky sub selects and unions, but not everyone knows how mySQL handles all this 'under the hood'. Some developers might be lucky enough to have a DBA to worry about all that - but most of us don't. Covering 8 of the most common issues and tools related to mySQL performance, any PHP developer will be able to soup up their mySQL install like a DBA ninja.
For the last few months we've been implementing a Continuous Delivery pipeline for the redesign of Time Out. In this talk I will demonstrate a real life example of what our pipeline looks like, the different tools we've used to get it done (phing, github, jenkins, ansible, AWS S3, ...), and peculiarities for PHP and Symfony2 projects. Most importantly, I'll be looking at things we've struggled with along the way and the lessons we've learnt.
In my experience, one of the major bottlenecks in building an Application lies in the database. This crucial piece of your app is also the most difficult to alter. If you have high availability software, how do you improve from spaghetti code without being able to do major changes to its database? You may refactor your spaghetti into beautiful, hexagonally layered lasagne, but if your database sucks, your data sucks. In this talk you will learn how to improve your legacy application by discovering the benefits of NoSQL to consolidate your data, and how tools like MapReduce can increase your project performance.
"The most dangerous thought you can have as a creative person is to think you know what you’re doing."
— Richard Hamming, The Art of Doing Science and Engineering
Johanna and Sam welcome all our delegates, speakers, and sponsors to the conference and provide an overview of the days events to come.
Is PHP one community or many? Frameworks and CMSes created in PHP are popular enough to have self-sufficient communities, but this can often result in a lack of crossover between communities. The result of the fragmentation can be wasted effort and time as a developer but also a lack of knowledge transfer that extends outside of our own subgroup bubble. This talk will bring some practical suggestions and solutions on how to look outside our comfort zones, widen our technical circles, and ensure that we learn from other people’s mistakes whilst bridging the gap between communities. As a result, we can make our communities more diverse and stronger.
One of the hardest question to ask on a linux platform: how much memory does my application use. This is mostly because Linux is amazingly efficient when it comes to memory usage and management. But it comes with a price - readability on how much memory your application really uses.
Apigility is a project that allows you to easily create a web service without having to worry about the nitty-gritty details. Which details? Well, Apigility will handle content negotiation, error handling, versioning and authentication for you, allowing you to concentrate on your application. In this introductory talk we look at what Apigility is and how to create a simple REST API application, showing how to start using Apigility and how to build a good API using this tool.
PostgreSQL is well known being an object-relational database management system. In it`s core PostgreSQL is schema-aware dealing with fixed database tables and column types. However, recent versions of PostgreSQL made it possible to deal with schema-free data. Learn which new features PostgreSQL supports and how to use those features in your PHP application.
In 2014 Etsy’s infrastructure group was handed a challenge: scale Etsy’s API cluster 20x. Many efforts were simultaneously undertaken to meet this challenge, including a migration to HHVM after it showed a promising 5x increase in throughput. While getting our code to run on HHVM was easy, working through the deployment and operationalization proved to be a more difficult challenge.
In this talk I will explore Domain Driven Development, and particularly how using the practice of Hexagonal Architecture can keep your codebase clean and scalable. I will define Ports, Adapters, Domains, and how to keep all your concerns separate.
Do you cringe when you have to show someone else your code? Have you ever complained about terribly written code only to discover it was yours from six months ago? Coding is a constantly evolving field. How can you keep up? Learn what standards are out there to help you keep your code clean, what tools can help you proof your code, and where to find information on best practices so you can stay current and boldly share your code with others.
Let's build a nice REST API with all the recent helper we can find. First of all, we will take some time to see, in theory, what's asked to build a "good" Restful API. Then we'll see some code with the usage of : - FOSRestBundle to save time, a lot; - JMS serializer and its awesome features; - the HATEOAS project, very nice to unlock the third level of the Richardson maturity model; - And finally, a little bit of Guzzle to ease communication between applications (going further with the SOA architecture). The goal of that talk is to demystify all technologies in the "REST" galaxy.
Version Control Systems have been around for a long time, however in the last decade advancements in VCS and other powerful tools have drastically increased the size of any community that can collaborate with ease. In this talk I will focus on the combination of Git and GitHub, demo some advanced tools available in Git, and clarify some details on contributing to Open Source using GitHub.
In this talk I will go over all the past, present and future debugging techniques. The talk start by giving an overview on PHP's (ancient) standard features for debugging, additional (userland) libraries and functionality in frameworks. After the introductions we move on to the meatier stuff and I will talk about live-action debuggers, such as Xdebug and Zend's debugger. They both provide information while a script is being executed, in combination with IDEs. In the future, there is PHP 5.6's phpdbg which allows for some debugging and other analysis. I am also unveiling a project that allows you to ""step back"" while debugging as well; introspect what your script's or application's exact execution paths was; and trace variable modifications.
Every year the OWASP community releases a Top 10 List of what it considers are the most critical web application security flaws. Join us as we step through the current OWASP Top 10 vulnerabilities, explaining what they are and how they can affect your PHP application. We'll take a quickfire look at all 10 security concerns complete with examples and best practices. You'll leave the talk with a basic understanding of each flaw giving you a great grounding to audit your own applications and an impetus to learn more about website security.
For us developers it is a constant struggle to find the right words to describe things. Naming classes, functions and variables correctly and giving them context helps to create a meaning, and to convey that meaning to other developers. In this talk we will discuss guidelines to find good names for the building blocks we use, to aid in our daily challenge to transport our knowledge by leveraging well worded sourcecode.
Whether you're creating a complex web application or a simple library, everything you create has a user. Why, then, do we concentrate on our users when developing a user interface, but so often forget them when developing APIs? In this talk, Christopher presents a whirlwind overview of a variety of different User Experience considerations when designing your APIs.
Many teams adopt TDD attracted by the promise of a more productive workflow, fewer regressions and higher code quality. Sometimes this goes wrong and these benefits do not materialise, despite a healthy-seeming test suite. In this talk we will look at what the common pitfalls of testing are, why teams fall into these traps, and they can dig themselves out.
This talk looks at the responsibility, we, the Open Source community, have to make things better. How we can use our skills to make fundamental, meaningful change to the world around us.
*Schedule is subject to change without notice