09:00 - 09:30 |
Registration
|
09:30 - 10:10 |
Keynote*Rasmus Lerdorf
|
10:20 - 11:00 |
Designing the M in MVC DevelopmentRob Allen
Domain-Driven Design helps us to map our software to the real world of our clients, but can be quite hard to understand. In this session, I look at the fundamentals of DDD and how to apply it. We'll discuss the terminology, from ubiquitous language through entities & value objects to repositories and services. We'll apply this knowledge to inform the design and implementation of the business logic of your application. By the end of this session you will be equipped to create excellent, maintainable models in your projects.
|
The Big "Why equal doesn't equal" QuizJuliette Reinders Former
So you think you know PHP? But do you really?
We all compare and test data on nearly every other line in our code, be it input validation, an if-statement, a switch or determining what to display and how. So of course we are all experts on how to do these tests and comparisons…. Or are we?
No matter whether you are a beginner or an expert, come and join in the fun for the Big “Why equal doesn’t equal” Quiz, test your knowledge and learn about defensive programming and the quirks of a loose type programming language along the way.
|
11:00 - 11:30 |
Coffee Break
|
11:30 - 12:10 |
A year of SymfonySarah Khalil
Last year, Symfony 3 was out. A lot happened! 52 blog posts to help you keep up with all new things, 1200+ pull requests, 2 new versions out… Well I'm sure you missed something. Let's review what happened during last year: basically we'll see and/or discover nice new features that appeared since the last year.
|
Advanced debugging techniquesPatrick Allaert
Step-by-step debugging with Xdebug is no secret for you? Perfect then, because we won't talk about it. We will rather see tools that let you know what's really happening in your PHP code, like the phpdbg debugger, process tracing tools like: strace, ltrace, the Linux inotify mechanism, tcpdump/wireshark for network analysis or MySQL Proxy for real time SQL debugging and monitoring!
|
12:20 - 13:00 |
PHP Language TriviaNikita Popov
Why do object-to-array casts return "mangled" property names, while some properties may become entirely inaccessible? Why are property accessors (like `__get` and `__set`) much slower than ordinary method calls? Why do objects become larger when you loop over them? Why are exception backtraces not always accurate?
Sometimes, internal details of the PHP implementation leak into the language, manifesting either as unexpected results or unusual performance characteristics. This talk seeks to explore some of the darker corners of PHP and explain how certain behaviors relate to the underlying implementation.
Takeaway: A better understanding of both PHP, its implementation and its performance characteristics -- albeit probably not much that is directly applicable to your average project. But hey, language trivia is fun!
|
Understand your application with metricsMariusz Gil
When your PHP code is running on production servers, you've got the new challenge, undestand what exactly is going on. From low-level system data like cpu or network usage, to high-level business indicators like logins, user actions or A//B tests, every piece of information matters. With dedicated engine for time-series data you can show useful dashboards for every team, do capacity planning or even monitor your app with anomaly detection algorithms. In this talk I'll introduce core concepts for data gathering, stacks for processing metrics from PHP application, based on InfluxDB/Graphite, graph frontends, Twitter OSS libraries for getting even more from observed metrics (anomaly and breakout detection)... During this talk you will learn how to create, manage, identify and use important metrics in your PHP application, to be sure that everything is running as expected and how to use them in case of problems.
|
13:00 - 13:40 |
Lunch |
13:40 - 14:20 |
"Writing code that lasts" … or writing code you won’t hate tomorrow.Rafael Dohms
As developers we write code everyday, only to frown at it a week after that. Why do we have such a hard time with code written by others and ourselves, this raging desire to rewrite everything we see? Writing code that survives the test of time and self judgment is a matter of clarity and simplicity. Let’s talk about growing, learning and improving our code with calisthenics, readability and good design.
|
PostgreSQL for MySQL-UsersAndreas Heigl
You know SQL off your back and you know how to bend MySQL to your will. And you also heard about the other Elephant in the development-ring. What is keeping you from testing PostgreSQL?
In this session we will check out what the differences are between "The Dolphin" MySQL and "The Elephant" PostgreSQL and how we can do the things we know from MySQL with PostgreSQL as well.
|
14:30 - 15:10 |
Build your framework like ConstructiconsStefan Koopmanschap
While we have a strong offering of full-stack frameworks and microframeworks, the rise of components and libraries combined with Composer allows us to easily build our own framework without reinventing the wheel. In this talk, I'll show you how the total can be more than the sum of the parts, such as Devastator was stronger than the individual Constructicons in Transformers.
|
Redis for your bossElena Kolevska
“Use the right tool for the right job” is one of the first thing they teach you when you start out in these waters. I would make “Get to really know your tools” a second.
In this talk we’re going to work on the architecture of an app that showcases some common features/scenarios we all probably already have in the apps we’re working on: counters, leaderboards, queuing, timelines, caching, session management, chat. But this time we’ll implement them with Redis, making the apps much faster, your hardware (and you) much cooler, your boss (and the clients) much happier and hopefully your salary a bit higher.
|
15:20 - 15:50 |
Coffee Break
|
15:50 - 16:30 |
Face detection PHPMichelle Sanver
Add face detection to our image service Rokka.io, they said. It'll be easy, they said. Just a few calls to the OpenCV extension, they said. Boy, were they wrong. Follow along on our epic journey to do face detection in PHP and see the challenges we faced, the mistakes we made and how we triumphed in the end.
|
Boost up your code with SpecificationsPatrik Karisch
Big repositories, complex query builders, tight coupling to your ORM. Adding new behaviors and search methods can be a mess.
Don't struggle anymore! This talk shows you how to decouple you from the ORM and writing general search behaviors for all your entities with the specification pattern. Your new specifications are not tied to any specific ORM and can be reused on different levels.
|
16:40 - 17:20 |
A hands on introduction to LaravelFreek van der Herten
Laravel is an amazing framework that allows you to rapidly create quality applications. If you've never worked with Laravel before, and are interested to know what the fuzz is all about, this is the talk for you.
In this beginner level talk you'll learn how Laravel makes your job easy. We'll go over the stuff that makes Laravel shine like it's expressive routing system, the easy to learn Eloquent ORM, the powerful command line tools, the scheduler, the built-in testing facilities and much more.
Along the way I'll share some lesser known hidden gems that will make you smile.
|
Amanda Folson
|
17:30 - 18:00 |
Emir Karşıyakalı
|
Fatih Üstündağ
|