More than a decade since the original release of PHP 5, the language's next major version, PHP 7, brings with it opportunities and challenges for developers. The attendees of this session will learn how to prepare their code for PHP 7 in order to leverage its performance improvements as well as its new functionality offerings as soon as possible and with the least amount of risk.
The SOLID principle gives us guidelines on how to write maintainable code. MVC ist probably one of the most commonly used design patterns; almost every web framework is MVC. We will analyze the five SOLID principles and put them into context with MVC. Strong project relevance and a few anecdotes are guaranteed.
Faced with legacy code many decided to rewrite, thinking it will be easier, for many reasons this can be wrong. Adam Culp will talks about the entire journey of refactoring a legacy code base. We will begin with assessment and why, cover planning how and when, discuss execution and testing, and provide step-by-step examples. Attendees will gain insight and tips on how to handle their own pile of code and refactor happy.
After years of promoting PHPUnit I still hear it's hard to get started with unit testing. So instead of showing nice step-by-step examples on how to use PHPUnit, we're going to take an example straight from github.
So I've taken the challenge to start writing tests for PHP projects that don't have unit tests in place and explain how I decide where to begin, how I approach my test strategy and how I ensure I’m covering each possible use-case (and covering the CRAP index).
The goal of this presentation is to show everyone that even legacy code, spaghetti code and complex code bases can be tested. After this talk you can immediately apply my examples on your own codebase (even if it's a clean code base) and get started with testing. To follow along a basic knowledge unit testing with PHPUnit is required.
The common mantra is “Community Works”, but does it? How does burning vacation days to speak at a conference “work”? How does staying up until the wee hours of the morning working on a project, just to turn around and go work your day job “work”? Exactly how does community pay the bills each month? Let me show you how it works.
Let’s jog through my career as a programmer. Along the way, we will take a look at how community has not only affected my career in a positive manner; it has been a JATO strapped to my career. I’m just a programmer, not even a great one. If community can help my career, it can help anyone’s.
Shift Left is development paradigm centered on the fact that problems are cheaper to fix the early they are found. In web development world where fixes can be deployed instantly, you do not want to wait for the nightly build to pass or for the manual regression tests. Let the machined do what they are really good at. You want to have a system that will give you comprehensive status about the code you’ve just committed. Ideally in less than 5 minutes (the average developer attention span). Despite the fact that PHP lacks the comprehensive quality tooling compared to the compiled languages, this talk will show you how to make it up and do even better with custom designed tools.
You’ll learn how to create robust build system for PHP that will give you the edge in this DevOps world to deploy faster and with great quality. It will save you a bunch of time and enable your team to focus on more creative and challenging tasks. The talk is technical, focusing on topics such as CI, Phing, linters, HHVM, static code quality, unit tests, api tests. There will also be practical tips and tricks to building your own custom tools for fast, static analysis of PHP code for problems such as SQL Injections, incidental DB table locks.
One of the most widely-used and mature Content Management Systems on the planet, Drupal runs more than one in fifty websites in the world. However, it has always been something of an odd duck, with an architecture and design very different than anything else in PHP.
Enter Drupal 8: Almost a complete rewrite under the hood, Drupal 8 is a modern, PHP 5.4-boasting, REST-capable, object-oriented powerhouse. Now leveraging 3rd party components from no less than 9 different projects, Drupal 8 aims to be the premiere Content Management Platform for PHP.
But how do you use all this new-fangled stuff? This session will provide a walkthrough of Drupal's key systems and APIs, intended to give developers a taste of what building with Drupal 8 will be like.
Prior familiarity with Drupal 7 is helpful but will not be assumed.
Most web developers focus on writing code. But creating web applications is about much more than just writing code. Take a step outside the code cocoon and into the big web ecosphere to find out how small code changes can make a world of difference on servers and network. This talk is an eye-opener for developers who spend over 80% of their time coding, debugging and testing.
Web APIs are essential for modern web and mobile development. Although it is a quite easy technique to start with, tuning it to the very detail becomes an exhaustive endeavor. How to setup authentication? What content types to support and how to support several at the same time? What error codes to return and when? Versioning? Validation? Documentation?
Apigility is an open source project that provides the world's easiest framework and tools for creating high-quality APIs. In this session we will see how Apigility helps addressing all these problems. We will develop a REST API and will connect a mobile app to it. We will also see how to debug and profile the API using Z-Ray Live!
To understand an application's performance, you have to know what to measure. That's the easy part. How do you take those measurements? And then get them to the people who need them? Well, that's where things get complicated! Let's explore the lessons learned by engineers at one of the world's top web companies in their quest to find meaning at 5 MB/s. We'll discuss the tools and techniques that enable the collection, indexing, and analysis of billions or more datapoints each hour, and learn how these same approaches can empower your applications and your business, no matter the scale.
What are the fragments that destroy our projects? What are the basic mistakes we all make? What aspects we underestimate in our work? In this talk we are going to find out how not to destroy a project.
During project's development, sooner or later we enter a stage of fighting our own code. Furthermore, such situations can decrease team motivation and can even bring our projects to failure. Sounds familiar?
In other hand, maintaining clean code can significantly improve our speed of development. In fact, developers will benefit from clean code by simplifying their work in long term basis.
In this talk we are going to summarize some clean code principles, discipline, common mistakes, refactoring and more.
What's the current state of your front end programming? With the html5 stack, responsive design methods, and browsers constantly updating their support for new tech, it's hard to keep up. We go over the typical process of modern front end development as well as how to safely use "proto standards". We will touch on the current spec and adoption of html5 standards, css standards, less, responsive techniques as well as discussing browser support and progressive enhancement. You'll be aware of the options that are available today and what will be available in the near future.
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.
Code Architecture with WordPress is a review of the WordPress architecture in comparison to other multiplatform frameworks and CMS. This topic would be valuable to developers who would like to brainstorm on different ways to approach a large project or build a plugin/framework architecture. I could provide examples from the WordPress Core and large Open Source plugins, relate to pros and cons in OOP and Object Oriented Design (including design patterns use) and mention similar scenarios in other languages like Java/C#, Python, Ruby.
HHVM is the new hotness, a super-fast alternative PHP runtime from Facebook it can take your existing PHP code base and run it at blazing fast speeds... but is there more?
HHVM also introduces Hack. Hack adds numerous features to the PHP language that help speed up both development time and runtime performance.
Get the most out of your human and technical resources by using HHVM and Hack today!
In Enterprise-environments we often find that a lot of information is stored in a directory-structures being it Active- or OpenDirectory. But what exactly is this *LDAP* and how can we get to that information in an easy way? And what options does LDAP offer for authentication and authorisation? We'll shortly touch the history and background of LDAP and will see how we can fetch informations and authorization-information in an easy way. And we'll discuss why it's different from other storage systems.
Enter the world of Gulp and Bower - the composer of frontend development. With these tools we will automate and optimise our frontend workflow
Everyone starts with a simple one-machine setup, running PHP(or whatever else you fancy), MySQL/PostgreSql and Apache/Nginx. Sooner or later that will not be enough, you will have more operations to do than can be done in a single request, or you will have some operations that need to be done in parallel, and you will be faced with some important architecture decisions.
This talk will show you how a distributed system built with gearman looks like, and more importantly the strange and wonderful things you will encounter in production and how to prepare for them.
This session will outline security practices and solutions designed to address security issues within application's business and processing logic, which are often overlooked in favour of basic security flaws such as SQL Injection, XSS, etc... The session will focus on how to implement mechanisms for improving data access, avoiding common ACL pitfalls, etc.
You know how HTTP caching works but need more? In this talk we look into ways to cache personalized content. We will look at Edge Side Includes (ESI) to tailor caching rules of fragments, and at the user context concept to differentiate caches not by individual user but by permission groups. A big help to leverage this concept is the FOSHttpCache in combination with either Varnish or the Symfony HttpCache class.
Graph is a mathematical construct used to model the relationships between key/value pairs, comprises a set of vertices (nodes) and an arbitrary number of edges (lines) which connect them. There are many ways to implement graphs with PHP, from typical SQL solutions to dedidacted, powerful tools like Apache Giraph or Titan. In this talk I will introduce Neo4j, highly scalable and robust native graph database, used in mission-critical apps by thousands of leading startups, enterprises and governments around the world. We will also talk about managing nodes and traversing methods with PHP.
Choosing the right way to process data might become a strategic and non trivial decision for many kind of applications. Especially in applications where an high percentage of the time is spent elaborating informations behind the scenes. A solution could be to use a message queuing system for processing data asyncronously. Using AMQP it becomes possible to define different types of queue patterns in order to solve different types of problems.
The purpose of the talk is to show how to approach the diffentent scenarios in php adding a great value to your application.
One day you see a tweet from a customer asking why your service is not working, and, to top it off, you had no idea. You should have known! Before it happened!
Proper logging and monitoring allow you to stay ahead of the curve, to prevent #ohnoes from your customers. And yet they are often neglected or even forgotten. But fear not, you are not the first one in this spot, and others have already figured out the answer to it. There are quite a few tools and best practices out there to help you keep your logs meaningful and your monitoring sane.
Are you suspicious about the "magic" behind AngularJS two-way data binding? Do you struggle to understand scope inheritance and digest cycle? Getting weird error messages that you don't understand?
In this talk we will uncover the mysteries of AngularJS internals to really understand how it works. The talk features many concrete examples to help us really understand the use cases of the different AngularJS features. This way we can better understand how it should be used, what it's good at and also what are the weak points.