The new season and new challenges! As conference organisers, we understand perfectly that you can
stay with peloton only when you focus on development. That is why phpCE, as an event aimed
at a wide group of PHP programmers from Central Europe, leaves Poland for the first time. We
are stronger than before thanks to the organisers of Brno
PHP Conference and volunteers from the Pehapkaři
group. Together we have been working for the success of this year’s edition and we are
inviting you to Prague.
Our persistent plan is that the conference will regularly move from one country to another
so that the event will appear in different countries of Central Europe. We already
invite you to visit next edition (2019) of phpCE in Dresden, Germany. It is completely no
barrier to do the same in Hungary, Austria, Slovakia or the Baltic states. Dozens and dozens
depends on local PHP groups engagement, so, if you feel that phpCE Conference should host in
your country, don't wait and contact us – we are really ready to do
it!
See how it was in 2018
Our special guest
Rasmus Lerdorf
The PHP Language Creator
Rasmus Lerdorf is known for having gotten the PHP project off the ground in 1995 and has
contributed to a number of other open source projects over the years. He was an infrastructure
architect at Yahoo! for more than 7 years and joined Etsy in 2012. He was born in Greenland,
grew up in Denmark and Canada and has a Systems Design engineering degree from the University of
Waterloo. You can follow @rasmus on
Twitter.
Agenda
Workshop Day
Friday
October 26, 2018
09:00
Registration to workshops
09:30
10:00
Full-Text Search Internals
Philipp Krenn
Full-Text Search Internals
Philipp Krenn
Today’s applications are expected to provide powerful full-text search. But how does that work in general and how do I implement it on my site or in my application?
Actually, this is not as hard as it sounds at first. This talk covers:
* How full-text search works in general and what the differences to databases are.
* How the score or quality of a search result is calculated.
* How to handle languages, search for terms and phrases, run boolean queries, add suggestions, work with ngrams, and more with Elasticsearch.
Prerequisites:
Knowledge: Database knowledge is helpful, but we are starting pretty much at square one for search.
Hardware: If you want to try out queries yourself, bring your laptop.
Software: A browser or curl if you really want to ;-)
Since we only have 2h I’ll have a cloud instance running and people can use that for their test queries. Otherwise we’d waste too much time with setups.
If you don’t have a laptop it’s also ok, since I’ll demo everything and we can just discuss the next steps together.
We will run all the queries live and explore the possibilities for your use-case.
Building Symfony application with Ports and Adapters approach and BDD (part I)
Michał Pipa
Building Symfony application with Ports and Adapters approach and BDD (part I)
Michał Pipa
Workshop provided by Michał Pipa and Dariusz Drobisz.
Having code that is not coupled with any framework has a lot of profits. There is a small probability that you will be changing framework during your project lifecycle, but that kind of approach gives you easy way to reuse some of your functionalities across different styles of user interaction. GUI? API? Console command? Easy peasy with small effort. Everything with high understanding of domain you are working for.
During this workshop Michał and Dariusz will show you how to work close with business can help you creating clean code, that you will love to work with in long term projects. Attendees will use Behat and PHPSpec to design how their system will communicate internally between their component and with the outside world.
Next step will be integration of that framework agnostic application with Symfony 4. You will learn how to do that in loosely coupled way, where Symfony will be tool that helps you work faster, but don’t dictate you how your application should be written. In this part you will get familiar with bunch of Symfony components. We will start from the beginning and build application using components like: routing, Doctrine, Twig, forms, validation and more. And we will do that on top of domain code developed in first part of workshop. If you have never used Symfony, this workshop will get you started.
Prerequisites: You need you own laptop with PHP 7.1.3 (or higher), MySQL and
composer installed. Apache/nginx is not required, built-in PHP web
server is fine. We also strongly recommend PhpStorm IDE with Symfony
plugin. It's commercial software, but free trial will be fine.
If you have any problem with this setup, try to show up early and we
will help you.
Tactical DDD Practices applied to Doctrine 2 Projects (part I)
Marco Pivetta
Tactical DDD Practices applied to Doctrine 2 Projects (part I)
Marco Pivetta
In this full day of hands-on coding we will approach development with Doctrine ORM from a tactical DDD perspective.
We will start from a minimal specification, exploring yet-to-be-discovered business scenarios in a rich domain, how to plan features, how to isolate them into workable units, implement them in a framework-less environment and finally test them effectively.
We'll freshen up some DB design done "domain-first", looking at the possible performance issues, how to mitigate them on the long run and how to provide an optimal data model for both writes and reads without sacrificing valuable abstractions in the domain logic.
At the end of the day, you will have a good overview of how to attack relational DB abstractions, when to optimise for business interactions, and how to optimise for read interactions.
Event Sourcing For Real (part I)
Stefan Priebsch
Event Sourcing For Real (part I)
Stefan Priebsch
There has been much talk lately about Event-Driven architectures, Domain-Driven Design, CQRS, and Event Sourcing in particular. Even though those concepts are somehow related, understanding them does not get easier when mixing them up. In this workshop, we will go in-depth with Event Sourcing, briefly touching on related concepts to understand how they relate.
Do you believe one could create a full-blown persistence solution with less than 400 lines of code? With Event Sourcing, we can. Come and see for yourself, we will code a working solution live in less than half a day. In the afternoon, it will be your turn to write code and put Event Sourcing to work yourself. While working on the exercise, you will be individually coached by the trainer. Every question will be answered! Make sure to bring a laptop with your favourite development environment (the current version of PHP, an IDE, and PHPUnit).
Prerequisites: attendees should have a good working knowledge of PHP, decent OOP skills, and be familiar with the basics of PHPUnit. No frameworks or other third-party code will be needed.
10:30
11:00
11:30
12:00
Aspect-Oriented Paradigm in PHP with Go! AOP
Alexander Lisachenko
Aspect-Oriented Paradigm in PHP with Go! AOP
Alexander Lisachenko
Have you already mastered you object-oriented skills? Want to practice something new and interesting? I have a special tutorial for you and it will teach you new programming paradigm called AOP (Aspect-Oriented Programming)!
In this tutorial we will review general terms and rules of this paradigm, then we continue with practical part and will use the Go! AOP framework for our demo application.
We will learn different pointcut types for method interception, class initialization, property access and apply them to our code.
Last hour we will use for learning AOP patterns like caching, logging and much more.
Requirements: Laptop with PHP7, Composer and network connection.
12:30
13:00
13:30
14:00
Lunch
14:30
15:00
GraphQL Server in PHP with Symfony Flex
Renato mefi
GraphQL Server in PHP with Symfony Flex
Renato mefi
GraphQL represents a massive leap forward for API development." says GitHub. What can we do with it in PHP?
This workshop will show you from the basic setup of your GraphQL Server with Symfony, possibly teach you some tricks on Symfony Flex and then start exploring a lot of the powers of GraphQL, handling a more complex schema, treating performance, security and versioning (Schema deprecation), if in time we'll also check some cool tech using promises to fetch data and get a grasp on how to avoid the n+1 issue on APIs.
If you're an API developer this workshop might change your way of thinking about it!
Requirements are:
- PHP 7.1+
- Composer
- Node 8.11 LTS, not 9 or 10
- Access to a terminal
- IDE of their choice
Building Symfony application with Ports and Adapters approach and BDD (part II)
Michał Pipa
Building Symfony application with Ports and Adapters approach and BDD (part II)
Michał Pipa
Workshop provided by Michał Pipa and Dariusz Drobisz.
Having code that is not coupled with any framework has a lot of profits. There is a small probability that you will be changing framework during your project lifecycle, but that kind of approach gives you easy way to reuse some of your functionalities across different styles of user interaction. GUI? API? Console command? Easy peasy with small effort. Everything with high understanding of domain you are working for.
During this workshop Michał and Dariusz will show you how to work close with business can help you creating clean code, that you will love to work with in long term projects. Attendees will use Behat and PHPSpec to design how their system will communicate internally between their component and with the outside world.
Next step will be integration of that framework agnostic application with Symfony 4. You will learn how to do that in loosely coupled way, where Symfony will be tool that helps you work faster, but don’t dictate you how your application should be written. In this part you will get familiar with bunch of Symfony components. We will start from the beginning and build application using components like: routing, Doctrine, Twig, forms, validation and more. And we will do that on top of domain code developed in first part of workshop. If you have never used Symfony, this workshop will get you started.
Tactical DDD Practices applied to Doctrine 2 Projects (part II)
Marco Pivetta
Tactical DDD Practices applied to Doctrine 2 Projects (part II)
Marco Pivetta
In this full day of hands-on coding we will approach development with Doctrine ORM from a tactical DDD perspective.
We will start from a minimal specification, exploring yet-to-be-discovered business scenarios in a rich domain, how to plan features, how to isolate them into workable units, implement them in a framework-less environment and finally test them effectively.
We'll freshen up some DB design done "domain-first", looking at the possible performance issues, how to mitigate them on the long run and how to provide an optimal data model for both writes and reads without sacrificing valuable abstractions in the domain logic.
At the end of the day, you will have a good overview of how to attack relational DB abstractions, when to optimise for business interactions, and how to optimise for read interactions.
Event Sourcing For Real (part II)
Stefan Priebsch
Event Sourcing For Real (part II)
Stefan Priebsch
There has been much talk lately about Event-Driven architectures, Domain-Driven Design, CQRS, and Event Sourcing in particular. Even though those concepts are somehow related, understanding them does not get easier when mixing them up. In this workshop, we will go in-depth with Event Sourcing, briefly touching on related concepts to understand how they relate.
Do you believe one could create a full-blown persistence solution with less than 400 lines of code? With Event Sourcing, we can. Come and see for yourself, we will code a working solution live in less than half a day. In the afternoon, it will be your turn to write code and put Event Sourcing to work yourself. While working on the exercise, you will be individually coached by the trainer. Every question will be answered! Make sure to bring a laptop with your favourite development environment (the current version of PHP, an IDE, and PHPUnit). Attendees should have a good working knowledge of PHP, decent OOP skills, and be familiar with the basics of PHPUnit. No frameworks or other third-party code will be needed.
15:30
16:00
16:30
17:00
17:30
18:00
18:30
Conference Days
Saturday
October 27, 2018
Relaxing
Intermediate
Geek
08:00
Registration & check-in
08:15
08:30
08:45
09:00
Official opening
09:15
Keynote: 12 years in the life of elephpant
Damien Seguy
Keynote: 12 years in the life of elephpant
Damien Seguy
The last ones who told me I could learn from a plush toy were my daughters. Of course, I acknowledged. Yet, it dawned on me : after ten years of life, the PHP plush has achieved so much ! It went to the White House and Antarctica ; it spawned forty thousands offsprings and a jet-set generation of collectors ; it built bridges within and outside the community.
Nowadays, it is alive and kicking. It still reviews my code, casting an odd look to me, once in while. No one can have enough elephpant.
09:30
09:45
10:00
Good Project From Scratch
Paweł Lewtak
Good Project From Scratch
Paweł Lewtak
Can you start a new project from scratch instead of maintaining legacy one? You're the lucky one!
I want to talk how a good project should look like, from analysis phase till release and later maintenance. Talk will mostly about signaling important things to focus on like requirements analysis, code structure, code review, TDD, continuous integration, monitoring, performance tests etc. I don't want to go in-depth on every one of them but give you hints what is important and what to read more about and in which direction you should make research if you want to improve your skills, have a better project and be calm during next project release.
During the talk I'll go through each phase of project lifetime and say what you as a developer should do on each of them to limit the possibility of ending up with legacy code.
How I learned to Stop Wiring and Love Autowiring Containers
Beau Simensen
How I learned to Stop Wiring and Love Autowiring Containers
Beau Simensen
Does managing YAML, XML or PHP container configurations make you sad? Do you dread making changes to your classes’ dependencies for fear of the inevitable container configuration wiring blues? Life doesn’t have to be this way! Not if your container supports autowiring, that is. Hear one developer’s journey into the wild world of containers, learn how autowiring works, and find out how using autowiring can free you from having to manually configure every dependency.
Image classification in PHP using neural networks
Karol Przybyszewski
Image classification in PHP using neural networks
Karol Przybyszewski
Image processing using neural networks is one of the hottest topics related to artificial intelligence. During the lecture I will show the basics of neural networks on the example of recognizing hand-written numbers. In order to accurately show the mechanisms of neural networks, the code used is written in 'pure' PHP, without the use of external libraries.
10:15
10:30
10:45
11:00
11:15
From Helpers to Middleware
Marco Pivetta
From Helpers to Middleware
Marco Pivetta
Over the past decade, we've seen frameworks bloom, die, be replaced and re-born. We've seen good practices, anti-patterns and generally styles of coding come and go. What's the takeaway from the last decade of framework development? Where are we going? What should we explore next?
We'll look at a brief history of frameworks, at which practices emerged from the various communities, and which of them survived and evolved, as well as recommendations to keep pushing forward.
Profiling PHP
Sebastian Grodzicki
Profiling PHP
Sebastian Grodzicki
You cannot improve what you cannot measure. That's why profiling applications should always be the first step before trying to improve its performance. Learn how to spot your applications' bottlenecks and how to adopt profiling into your developer pipeline.
Contributing to PHP's Core
Gabriel Caruso
Contributing to PHP's Core
Gabriel Caruso
Even wanted to contribute to PHP's Core? This is your time! From tests to a new function, PHP is open for new contributors. Fixing bugs, document things, cleanups, refactorings, or even new small functions. In this talk, we're gonna see how the `is_countable` function was made, and what we can learn from that.
11:30
11:45
12:00
12:15
12:30
Get Rolling Fast with Symfony Flex
Beau Simensen
Get Rolling Fast with Symfony Flex
Beau Simensen
Unsure where to start with your next application? Are you sure you want full stack Symfony eventually but not sure you can commit to the extra work upfront? Afraid if you start with a micro-framework like Silex you’ll end up needing to migrate to full stack Symfony anyway?
Enter Symfony Flex. Symfony flex brings all of the power of full stack Symfony with the upfront requirements of a micro-framework. Choosing Symfony upfront not longer commits you to the overhead you might expect from a traditional Symfony project. See how quickly a new project can be started and how it can evolve over time.
How Doctrine caching can skyrocket your application
Jachim Coudenys
How Doctrine caching can skyrocket your application
Jachim Coudenys
When people talk about Doctrine (or any ORM for that matter), the performance issue always comes up fairly quickly. Besides the fact that Doctrine will help you develop faster, so a little overhead doesn’t really matter, there are numerous options to increase the performance of the application.
By understanding how the system works in the first place, a lot of issues can be avoided right away.
When you have done everything to avoid these pitfalls, you can bring in the big guns: caching. Doctrine has different caching mechanism and since Doctrine 2.5 “Second Level Cache” was added to our toolbox. After this talk, you should know what the impact is of every cache and how to use it.
Refactoring the Domain Guided by Tests
Pim Elshoff
Refactoring the Domain Guided by Tests
Pim Elshoff
There once was a model quite scenic
Many lines but wholly anemic
New features requested
But nothing was tested
The burdened developer feels sick
Legacy code is code that makes money, as they saying goes. But we have an opportunity to refactor when tickets and feature requests come in. How are we going to make sure we don't break things?
Using a test first approach we will turn this dumb data container into a rich and meaningful domain model. This gives us the confidence to tackle new challenges, without fear of regression. We will create a safe path forward guided by test driven development and new feature requests only. If you know a bit about tests but don't know how to get started in your own code base, then this is the talk for you.
12:45
13:00
13:15
13:30
Lunch
13:45
14:00
14:15
14:30
PHP in 2018
Rasmus Lerdorf
PHP in 2018
Rasmus Lerdorf
Let's talk about the story of PHP so far, PHP 7.3, his performance, static analysis and a new low-overhead profiler. Then I answer your questions with a pleasure.
14:45
15:00
15:15
15:30
How to create chatbot in PHP (and why)?
Adam Matysiak
How to create chatbot in PHP (and why)?
Adam Matysiak
Why create chatbots?
What can you do with them?
How to start?
What are the possibilities with Messenger?
Live coding
Nuclear powered software security
Christopher Riley
Nuclear powered software security
Christopher Riley
It seems to be almost a weekly occurrence that another company makes the news headlines for being hacked and in the process disclosing sensitive user data and company secrets. These security meltdowns can cause catastrophic effects to the company in lost user trust and huge costs putting things right.
A nuclear power plant is considered one of the most dangerous things mankind has built, yet they very rarely go wrong. The systems engineering that goes into making nuclear power plants safe is a fascinating topic to study but on the surface it seems entirely irrelevant to PHP developers.
In this talk I'm going to show you how this level of safety is achieved, what happens when it goes wrong and then see what lessons we, as PHP developers, can learn from it to help us secure our applications from meltdown.
Running PHP applications on .NET Core
Jakub Míšek
Running PHP applications on .NET Core
Jakub Míšek
At iolevel, we are developing Peachpie, the modern PHP compiler and runtime for .NET and .NET Core, sponsored by the .NET Foundation. Peachpie is a complete re-implementation of the entire PHP runtime and libraries in C# and is capable of running entire real world applications on .NET, such as WordPress, Symfony or MediaWiki. The goal of the project is to allow developers to combine the simplicity and ease of development of PHP with the performance, stability and security of .NET.
15:45
16:00
16:15
16:30
Docker for "dummies"
Jakub Kluvánek
Docker for "dummies"
Jakub Kluvánek
co je to docker?
pro jaké případy ho použít?
k čemu je docker-compose
co jsou volumes?
jak funguje v dockeru networking?
praktické ukázky
Přednáška je určena všem, kdo Docker "tak trochu" používají, ale mají v tom guláš a potřebují si vyjasnit některé pojmy.
Object Reorientation
Christopher Riley
Object Reorientation
Christopher Riley
We are all SOLID developers who like to keep DRY, these are rules we stick to to try keep our code clean. Despite this, we often end up writing procedural code wrapped up inside objects. This code can be hard for our colleagues and collaborators to get to grips with and understand.
Join me for this object reorientation as we take a look at how we can leverage the power of object oriented design to write code which is not just SOLID, but easy to reason about and easy for others to understand.
Proactive web security
Bastian Hofmann
Proactive web security
Bastian Hofmann
Keeping your web application secure and free from vulnerabilities is hard work, even if you know the OWASP Top 10. In this talk I will show tools, best practices and patterns to help you with this, so that you can find security issues before an attacker does and even prevent them in the first place.
16:45
17:00
17:15
17:30
Coffee break
17:45
18:00
Using migrations and fixtures
Miro Svrtan
Using migrations and fixtures
Miro Svrtan
Manually adding data to our development environment is tedious and boring, not being sure on what changes will be applied to production database after deployment can be dangerous. To battle this issues, developers decided to load gigabytes of production data on their machines or run queries manually before or after deployment.
In the world of crazy fast changes, working with more and more team mates and on more complex projects, automation and reliabilty are becoming a must have. Fixtures will give you opportunity to have small yet relevant data set so you dont have to import production data or enter testing data into the system your self, every time system changes. By using migrations we can easily transfer database changes amongst the team and get the confidence on the changes that will be applied to staging/production.
In my case, both concepts helped communicate changes better and allowed us to modify the system with more confidence and at a faster pace.
While some popular frameworks and ORM's dont ship with fixtures or migrations support by default, there are great extensions to provide this. I will showcase ones for Symfony and Doctrine but talk is more about their concepts and not the implementations.
Introducing CQRS into Legacy Code
Stefan Priebsch
Introducing CQRS into Legacy Code
Stefan Priebsch
Getter methods retrieve state, while setter methods change state. We all know that. HTTP GET requests retrieve state, while HTTP POST requests change state. We all know that. Then why have we built so many applications with a single object model, blatantly ignoring this separation? Turns out that creating a separate model for reading and writing makes a lot of sense. But how can we introduce this concept into legacy applications? This presentation shows how to do it, and what is in it for you.
PHPStan Under the Hood
Jan Tvrdík
PHPStan Under the Hood
Jan Tvrdík
PHPStan is popular tool for analyzing PHP code that can help you greatly reduce the number of bugs in your code. Have you ever wondered how analysis of dynamic, gradually typed languages such as PHP is done?
In this talk we're going to explore how PHPStan internally models many aspects of PHP language. We're going to have a close look at PHPStan's type system. How does it model both simple and complex types. How types are combined together and how such combinations can be used to model many dynamic aspects of PHP language or how they allow us to do reliable dead code detection. I'll introduce the concept of trinary logic and how it allows PHPStan to support both legacy and modern code bases. We're also going to have a look at type guards. How they work. What they can and what they currently cannot do. And I'll show you how it all fits together to create a working system.
18:15
18:30
JSON API: Možná nepotřebujete GraphQL
Ondřej Machulda
JSON API: Možná nepotřebujete GraphQL
Ondřej Machulda
Možná jste v poslední době slyšeli o GraphQL. Je tedy opravdu čas opustit REST API, jak někteří tvrdí? Myslím, že zdaleka ne - a chtěl bych vám ukázat existující alternativu pro vytváření dobrých REST API - standard JSON API, okolo kterého se rozvíjí zajímavý ekosystém i v PHP.
18:45
19:00
Review unknown code with static analysis
Damien Seguy
Review unknown code with static analysis
Damien Seguy
Code quality is not just for christmas, it is a daily part of the job. So, what do you do when you're handed with a five feet long pole a million lines of code that must be vetted ? You call static analysis to the rescue. During one hour, we'll be reviewing totally unknown code code : no name, no usage, not a clue. We'll apply a wide range of tools, reaching for anything that helps us understand the code and form an opinion on it. Can we break this mystery and learn how everyone else is looking at our code ?
Natural Language Understanding meets PHP
Maximilian Berghoff
Natural Language Understanding meets PHP
Maximilian Berghoff
To build a PHP Skill for your Alexa Skill Server is easy at the moment, cause there are lots of tutorials. But what about NLU. NLU is Natural Language Understanding, which means Lerning and Understaning Konverstations. There are several provides to serve NLU, but none of them keeps the data in your hands. But what to do if you do not like to share your data with the NSA?
I found a solution, which we use to enrich our chat bot with some inteligence. As we used to know mashine learning that tool is writen in Python. If you do not whant to learn an other language, we can go through the API by implementing an PHP Adapter. That means: at the end we will have a little PHP library to get in touch with NLU. A library to train a conversation model to or to get sorted intents, whith sorted entities carrying the important of our conversation.
Minimize the framework and allow yourself some DDD
Milko Kosturkov
Minimize the framework and allow yourself some DDD
Milko Kosturkov
By now we've all heard what Domain Driven Design is about. Some of us have actually tried it. When we did, we stumbled upon the fact that the frameworks we use do not help us a lot with shaping our code in a domain driven manner. Actually, they were in the way. DDD and the generic MVC frameworks we use are an oxymoron. Still, we don't want to loose all the sweet tools that help us deal with the HTTP and the Console.
In this talk I'll tell you how we changed our view perspective on input/output/request/response, pushed the framework in the infrastructure corner and cleaned ourselves some space for sweet DDD.
19:15
19:30
19:45
20:00
Dinner
20:15
20:30
20:45
21:00
JeoPHPardy game (repeatable)
Tomasz Kowalczyk
JeoPHPardy game (repeatable)
Tomasz Kowalczyk
Let's see what you know about all things PHP! Beat all your opponents to become a true JeoPHPardy champion and claim the mystery prizes. A group of contenders, many categories and even more questions... but only one winner. The only question is... are you game?
After-party
Simulation Scrum Game about team responsibility (repeatable)
Agata Sobek
Simulation Scrum Game about team responsibility (repeatable)
Agata Sobek
The main goal of the game is to prove that team playing is the biggest value. Game helps understand dependencies between team members and improve team working.
Game shows that every member has own competencies and the only way to win is to work together. It is visible because game lasts for 4 simulation sprints and during them we can see the improvements.
21:15
21:30
21:45
22:00
22:15
22:30
22:45
23:00
23:15
23:30
23:45
Sunday
October 28, 2018
Relaxing
Intermediate
Geek
09:00
When testing makes no sense
Miro Svrtan
When testing makes no sense
Miro Svrtan
If you look at the stage of any conference in the PHP world, people are preaching testing,testing,testing ... If you on the other hand look at the community, the percentage of people writing tests is really low.
As a person who went from 'How can I ask for more time/money/resources for testing?' through 'ask for forgiveness instead of permission', to person who writes tests a lot, I still believe testing doesn't make sense. No, it doesnt make sense for all and everyone, often enough it makes no sense for me too.
This talk will explore that fuzzy line when you have to shift your mind from one side to the other: in both directions.
MONOREPO: How We Started to Save Our Developers Time
Svatopluk Šimara
MONOREPO: How We Started to Save Our Developers Time
Svatopluk Šimara
The development of multiple repositories is not always an easy task. If you want to offer a high-quality and evolving application, sooner or later, there is a need to make the same changes in several packages. This can be a simple change in the documentation of a few packages or the adoption of new coding standards.
During the development of Shopsys Framework, we have come to the point where thousands of hours were allocated for development across multiple repositories and for development of new packages. And it was this moment when we decided to choose the way of monorepo.
Upgrade several packages to a new version of PHPUnit? Why not!
Change of method in API used across multiple packages? Super easy!
Of course, monorepo is not for everyone. We will show you, why it can be useful to use monorepo and what was the way to the monorepo in Shopsys Framework.
Total Recall - The application that never forgets
Holger Woltersdorf
Total Recall - The application that never forgets
Holger Woltersdorf
Building an application upon CQRS and Event Sourcing offers three pretty nice benefits.
Well structured code and business logic, separated by read and write concerns.
The source of truth - A reliable and recoverable view into the past of your application state.
The opportunity to answer future questions that you don't know about today.
This talk explains the good fit of two combined application architecture approaches applied to a well known real world example. It shows how to tackle some pitfalls, gives practical advices on infrastructure and exemplifies the aforementioned benefits.
09:15
09:30
09:45
10:00
From Conversation to Software
Pim Elshoff
From Conversation to Software
Pim Elshoff
We all have coworkers, managers and customers demanding work from us. Feature here, bugfix there, just do what you're told. But don't you want to build stuff that matters? Are you not the expert here? What if I told you there is another way? You are *the* person to take the outcome of the project seriously. So help people solve their problems and grasp their opportunities!
In this soft skill talk we'll take a look at how you can do just that. We will write user stories that help you understand their problems. We will use story mapping to create meaningful and insightful choices for your clients. Finally we'll use release planning to predict and plan, together, where the project will end up.
Join me and find out how you can turn conversation into software.
Beyond Documentation With OpenAPI
Boyan Yordanov
Beyond Documentation With OpenAPI
Boyan Yordanov
Imagine a world where the mobile development team is not constantly surprised by changing endpoints, where frontend developers don’t abuse your carefully crafted APIs and we don’t have to go back again and again to fix or change stuff. In this imaginary land we are able to leave the guesswork out by using API definitions to produce even better designs and automate parts of the process. Together we will explore OpenAPI as a standard way to describe APIs and see how it can help us get there.
Strict programming in PHP
Gabriel Caruso
Strict programming in PHP
Gabriel Caruso
This talk will address several points in our codes that we can improve it to make it more stringent, avoiding false positives, points that have not been tested and have actually written code that complies with our business rules, avoiding unnecessary bugs. We will work with PHP 7 types, the identical operator, weak comparison functions and counters, and more.
10:15
10:30
Tracy: an addictive tool to ease debugging
David Grudl
Tracy: an addictive tool to ease debugging
David Grudl
Tracy je nástroj určený k usnadnění ladění PHP kódu. Je užitečným pomocníkem pro všechny běžné programátory PHP, který pomáhá jasně zobrazovat a zaznamenávat chyby, dumpovat proměnné a mnohem více.
Pokud se poprvé setkáváte s Tracy, věřte mi, váš život bude rozdělen do doby před Tracy a ta s ní.
Ukážeme vám užitečné funkce, jako je například ladění AJAX requestů nebo automatické opravování chyb ve vašem kódu jediným kliknutím.
Should Shiny JWT Tokens Replace Sessions?
Grzegorz Skorupa
Should Shiny JWT Tokens Replace Sessions?
Grzegorz Skorupa
OAuth 2.0 allows one to centralize user authentication. JWT tokens allow for signed-in user data to be kept client side, hence no server side session storage is required. The conjunction of both seems to have gained a lot of interest in recent years.
During the talk I will introduce you to OAuth 2.0 flows and JWT tokens internals. I will show how those can be used to authenticate and manage user sessions in mobile and modern web applications. I will present the challenges we faced when implementing authentication using OAuth 2.0 flows with JWT tokens in a large PHP based application.
We shall try to compare Token based mechanisms to well known PHP server side sessions. I hope to answer the question: Is it worth switching from session mechanism to OAuth 2.0 flow with JWT tokens?
10:45
11:00
Break for the room leaving
11:15
11:30
Vim pre PHP, PHP pre Vim
Miroslav Šedivý
Vim pre PHP, PHP pre Vim
Miroslav Šedivý
Čím píšeš zdrojáky PHP, konfiguráciu, dokumentáciu, slajdy, blog, knihy či e-maily? Jedným mozgom, jedným párom rúk, jednou klávesnicu, ale odlišným rozložením klávesnice pre každý jazyk a odlišným textovým editorom pre každý účel? A nie je to škoda? Používaš IDE na prácu s PHP kódom, potom prepneš do e-mailového klienta, otvoríš iný editor pre dokumentáciu a nakoniec sa cez ssh pripojíš na vzdialený server a upravuješ konfiguračný súbor cez konzolu? Píšeš v slovenčine, češtine, poľštine, maďarčine, angličtine a v nemčine, prípadne v iných európskych jazykoch a "příliš žluťoučký kůň" Ti znie lepšie ako jeho ASCII podoba?
Ukážem Ti, ako pohodlne píšem v niekoľkých jazykoch na štandardnej americkej klávesnici. Ukážem Ti, ako používam jediný editor na všetkých mojich počítačoch na vytváranie najrôznejších textov a prečo by si aj Ty mal ovládať jeden výkonný textový editor, či už je to Emacs alebo Vim. A ukážem Ti, ako využiješ svoje zručnosti v PHP na elegantné kúzla s textom.
Dva Tvoje základné nástroje sú klávesnica a textový editor. Dostať ich do krvi sa oplatí.
Modern SQL: Evolution of a dinosaur
Markus Winand
Modern SQL: Evolution of a dinosaur
Markus Winand
SQL has evolved considerably in recent years. The purely relational dogma was already abandoned in 1999. What followed was continuous extension through the incorporation of handy features to address problems that are hard to solve with relational algebra. Today, SQL is Turing complete, can process graphs, has semantic understanding of XML and JSON, is able to automatically keep historic versions, can analyze time series using regular expressions and much more.
This session walks through the SQL standards from 1999 to the current version of 2016. It demonstrates some selected features on the basis of common problems and compares the traditional SQL-92 solution to the modern SQL approach. Of course, the presentation also shows how long these features are supported by various databases so that you immediately know whether the shown solutions work in your environment or not. Teaser: MySQL and MariaDB have got huge updated lately.
In this session, developers and software architects of all levels gain a better understanding where SQL is today so that they are able to make more educated decisions. A lot has happened since SQL-92!
Serveless PHP applications
Matthieu Napoli
Serveless PHP applications
Matthieu Napoli
Serverless and its "functions as a service" promise us cheap and scalable applications. What is it like in reality? And how to merge the mature PHP ecosystem with these new architectures and tools? Where do HTTP and CLI applications fit in all this? How about Symfony, Laravel or PSR-15? Let's explore those questions and illustrate the answers with a few case studies and "Bref", a solution for deploying PHP applications on serverless providers.
11:45
12:00
12:15
12:30
How we switch the whole system and keep the system stable
Ľuboš Beran
How we switch the whole system and keep the system stable
Ľuboš Beran
Try to imagine, that you have multi-million company, which product code is as bad as it can be, and you are fighting with challenge to create new system based on Symfony without down time, with continues integration and you want to be able to run both systems same time. Now stop imagine and come to my talk! :-)
I will tell you how we started, what changes was necessary to be done, and how we fucked up many times in this process.
Cracking passwords, or why use password_hash()
Michal Špaček
Cracking passwords, or why use password_hash()
Michal Špaček
Do not use MD5 to hash user passwords! Do not use SHA-x! Yeah, but why? I'll show you, donut worry.
We'll talk about password cracking, what are the speeds, how passwords are cracked on GPUs, and of course how to defend against cracking.
As an example, I'll use a recent data leak where 750k plaintext passwords have surfaced from a site that supposedly used MD5. We'll also explain what a salt is and what it's not, and that it's not there to prevent cracking, and that's fine.
Eventually, I'll explain what slow hashes like bcrypt or Argon2 are and how to use them in PHP.
Let's get cracking!
Of representation and interpretation: A unified theory
Arnout Boks
Of representation and interpretation: A unified theory
Arnout Boks
Many hard problems in programming originate from one single source: not properly distinguishing the representation of data from the way it is interpreted. Have you ever written code that filters `$_GET` for SQL injection attempts? Struggled with timezones? Tried to get escaping right for Javascript in HTML? Detected the character encoding of a string? All are examples of this one problem.
In this talk we will look at some examples of the representation-interpretation problem and find the general pattern behind it. We will see how primitive types make it so hard for us to get this right, and how we can use value objects to steer us in the right direction. You’ll start finding many more examples of this pattern and understand them more easily.
12:45
13:00
13:15
13:30
Closing keynote: “Writing code that lasts” … or writing code you won’t hate tomorrow.
Rafael Dohms
Closing keynote: “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.
Young and passionate Head of IT in one of the fastest growing e-commerce companies in Europe, called Factcool. Experiences with super fast growing of company, scaling, agile development and processing huge amount of data. Speaker (ShowIT, MS Fest...), Team leader, basically manager & developer in one person.
Maximilian Berghoff
Herr
Maximilian Berghoff
Herr
I work as a developer for the Mayflower GmbH in Würzburg. As such I develop highly professional php and javascript applications. I invest my free time in contributing to the Symfony CMF (Content Management Framework). Besides I am dad of two lovely sons and enjoy reading and watching Game of Thrones.
Arnout Boks
Moxio
Arnout Boks
Moxio
Software architect by profession but mathematician by education, Arnout has his interests on the boundary between the two, where formal modelling and logical reasoning meet practical problems and pragmatism. He works at Moxio, where he solves complex information management problems with innovative software, and aims to grow a culture of learning and quality. In his free time he contributes to a number of open source projects, like PHP-CPD, PHP_CodeSniffer and Symfony, and more recently the PHP core.
Gabriel Caruso
Leroy Merlin
Gabriel Caruso
Leroy Merlin
Gabriel had his first contact with programming in high school, what motivated him to recreate the whole website of it.
A while ago has known Github and discovered the open-source software world. Since then, is what he has been doing for the community: contributing and helping to code a better world. Has passions in tests, automation tools, AST, PHP Internals, stickers, to talk and many more.
Jachim Coudenys
Combell Group
Jachim Coudenys
Combell Group
Jachim Coudenys is a PHP developer at Combell. Since discovering PHP in 2002 (4.1.0), his work and after-work activities brought him from the world of development to server management, development workflows, more development, etc... Next to being a long-time member of PHPBenelux, he is co-organizer the PHP-WVL, a user group in West Flanders (BE). He is a Zend Certified developer and Certified MongoDB Developer & DBA. You can follow him on http://twitter.com/coudenysj and read his occasional blog posts on http://blog.jachim.be.
Rafael Dohms
Usabilla
Rafael Dohms
Usabilla
A graduated Computer Engineer, Rafael Dohms has vast experience in the PHP ecosystem as a Developer, Speaker and Contributor. Addicted in building communities he has founded various groups where ever he lives, currently he is to blame for AmsterdamPHP. Developer by career but teacher by vocation he travels the world sharing interest in quality code, innovation and building careers. In his free time you will likely find him gaming or contributing to open source projects.
His contribution hit list includes many projects, from PHP itself to frameworks like Symfony, Zend and projects such as Doctrine and Composer. His hobby is mentoring new Speakers that eventually take speaking slots away from him in future events, a strategy he still thinks is not very smart. Not one to listen to himself he keeps mentoring and suggesting developers everywhere create their own User Groups to grow their networks and knowledge.
Pim Elshoff
Procurios
Pim Elshoff
Procurios
I've been a developer-for-hire for over a decade and a professional developer any time soon now. With over half that time spent working with scrum at Procurios, the agile mindset has really clicked for me. Technology will always be a passion of mine, but with more experience my focus has shifted to people. I'm enthusiastic, I've got a loud mouth and I'm professionally stubborn.
Sebastian Grodzicki
SHOWROOM
David Grudl
David Grudl
I am a software and open source developer. I started programming in the DOS era, now I am focused solely on web-based applications in PHP. And when I do not program, I write blogs, train web application development, or run Spartan Race :-)
https://davidgrudl.com
Bastian Hofmann
SysEleven
Bastian Hofmann
SysEleven
Bastian is a System Engineer at SysEleven, a full-service hosting company, where he focuses on bringing the power Kubernetes to its customers. Before that he was caring about performance, monitoring, web-security and developer productivity at ResearchGate, the social network for researchers and scientists. When he is not developing stuff or looking at graphs, he likes to cycle, do Yoga, go to beer gardens and frequently speaks at international conferences on software architecture, scaling web applications and open standards and protocols.
Jakub Kluvánek
Bidding Fox technologies s.r.o.
Jakub Kluvánek
Bidding Fox technologies s.r.o.
Pracuju na biddingovém nástroji Bidding Fox, kde mám na starosti backend aplikace se spoustou dat z různých zdrojů.
Milko Kosturkov
Ty's Software
Milko Kosturkov
Ty's Software
I've been a professional Web/PHP developer for more than 12 years. Throughout my career I've dealt with a big range of types of projects - multimedia, games, television specific systems, cms-es, web-sites, SMS services, etc. During this time I got a bachelors degree in electronics and am about to get my master's in IT.
When programing I am keen on clean design and code and modeling the world around us instead of focusing on tech. As such, my work passion is creating new products.
Also, I am a rock star (in hiatus) - like, in a band and singing (in clubs). So a real one!
Tomasz Kowalczyk
GOG
Tomasz Kowalczyk
GOG
Software architect with over 10 years of experience in web applications industry. Functional Programming enthusiast pursuing the ultimate goal of software quality and maintainability. An author of several open source libraries. Provides well-designed and open solutions to technical problems.
Philipp Krenn
Elastic
Philipp Krenn
Elastic
Philipp is part of the infrastructure team and a developer advocate at Elastic. He is frequently talking about full-text search, databases, operations, and security. Additionally, he is organizing multiple meetups in Vienna.
Rasmus Lerdorf
Etsy
Rasmus Lerdorf
Etsy
Rasmus Lerdorf is known for having gotten the PHP project off the ground in 1995 and has contributed to a number of other open source projects over the years. He was an infrastructure architect at Yahoo! for more than 7 years and joined Etsy in 2012. He was born in Greenland, grew up in Denmark and Canada and has a Systems Design engineering degree from the University of Waterloo.
Paweł Lewtak
GOG.com
Paweł Lewtak
GOG.com
Developer with 9 years of experience with backend systems. Created them from scratch by starting with analysis and writing specification up to deployment on production. Working mainly with PHP and MySQL but also with Python, elastic search and other technologies. Big fan and evangelist of continuous learning, organizer of many coding dojo sessions.
Alexander Lisachenko
Alpari
Alexander Lisachenko
Alpari
Alexander is working at Alpari (RU), one of the biggest FX Broker, as the Head of Software Architecture. He is author and project leader of the open-source [aspect-oriented framework Go! AOP](https://github.com/goaop/framework) and also a passionate FOSS PHP developer, speaker at conferences, guru in Enterprise Architecture.
He likes to discuss complex systems and have a strong knowledge in computer science, electronics and of course in PHP. He likes to bring cutting-edge IT solutions to non-technical businesses for optimizing processes and solving complex issues.
His slogan is: nothing is impossible if you put your mind to it.
Ondřej Machulda
LMC s. r. o.
Ondřej Machulda
LMC s. r. o.
Ondrej is a web developer who is friends with blue elephants and penguins. He works as a PHP Developer and QA Engineer for LMC, a company behind the biggest Czech job portal Jobs.cz, and is also experienced trainer of Selenium & PHPUnit & QA topics. He is co-maintainer of Selenium PHP bindings (facebook/php-webdriver) and Steward testing tool. Ondrej is gaining new ideas at meetings of Prague PHP and Symfony community that he helps to organise.
Adam Matysiak
HighSolutions Sp. z o.o.
Adam Matysiak
HighSolutions Sp. z o.o.
I am CEO and CTO in HighSolutions, software house from Poznań, Poland. I have 7 years experience of managing company and conduct hundreds of projects in that time from analysis, through project management and coding to quality control. Now I am specializing in chatbots.
Renato mefi
usabilla
Renato mefi
usabilla
Renato is a developer who loves Linux, web and beautiful code, tries to mix technologies with some inspiration during his work in order to have creative and reliable solutions. Also thinks the eclectic interest is a must to be able to find those solutions.
Jakub Míšek
iolevel
Jakub Míšek
iolevel
Jakub is a doctoral candidate of software engineering and software systems at the Charles University in Prague. He has well over ten years worth of experience working on compilers and has been a member of the core development team of both Phalanger, the first generation PHP compiler to .NET, and PeachPie, the more modern version of the compiler. Besides working on PeachPie, Jakub also develops the most popular PHP integration tool into Visual Studio.
Matthieu Napoli
Matthieu Napoli
Matthieu has been developing web applications for more than 10 years. He is the author of [PHP-DI](http://php-di.org/), [Silly](https://github.com/mnapoli/silly), [Couscous](http://couscous.io/) and [Bref](https://github.com/mnapoli/bref). He loves working on topics related to code quality and developer experience: anything that makes our job easier. He is also passionate about framework interoperability and is involved in the [PHP-FIG](http://www.php-fig.org/) on PSR-11 and PSR-15.
Michał Pipa
Michał Pipa
Programmer, trainer and consultant. PHPers (polish PHP meetup) co-organizer.
Marco Pivetta
Roave
Marco Pivetta
Roave
I'm a consultant, obstinate open-source maintainer and mentor.
I help pushing forward Doctrine, ZendFramework and Roave PHP packages, as well as new and better practices in the community at large.
Stefan Priebsch
thePHP.cc
Stefan Priebsch
thePHP.cc
Even older digital watches would outperform Stefan Priebsch's first computer. He has been an IT consultant for over 20 years, holds an academic degree in computer science, is the author of several textbooks, and a university lecturer on professional web development. He presents and keynotes at technology conferences around the world. As Co-Founder and Principal Consultant of The PHP Consulting Company (thePHP.cc), Stefan helps his clients to develop software successfully. He spends his free time playing electric guitar and researching agile home improvement.
Karol Przybyszewski
Incepton
Karol Przybyszewski
Incepton
My PHP adventure started with versions 3/4 and for over 10 years I was actively programming for both frontend and backend applications for large corporations.
After a few-year break in programming, I became interested in the subject of image processing and the use of neural networks for this purpose.
Christopher Riley
Imhotek Consulting
Christopher Riley
Imhotek Consulting
Chris is a freelance consultant based in York, Uk with experience working in the public sector, small and large companies throughout North Yorkshire. Chris has over 10 years experience with PHP and has a keen focus on both software architecture and none functional requirements such as security, performance and maintainability. In his free time, Chris can often be found producing or playing with experimental libraries and contributing to Zend framework.
Miroslav Šedivý
UBIMET GmbH
Miroslav Šedivý
UBIMET GmbH
Senior Software Architect at UBIMET GmbH. Born in Czechoslovakia, studied in France, living in Germany. Coded in PHP before it was cool. Using Python to make the sun shine and the wind blow.
Damien Seguy
Exakat
Damien Seguy
Exakat
Damien Seguy is CTO at Exakat Ltd., a company specialized in PHP code quality solutions for the industry. He leads the development of the exakat PHP static analysis engine, that automatically audit code for version compatibility, security and dead code. Since last milenium, Damien has contributed to PHP, as documentation author, elephpant breeder, conference UFO on all continents. He also enjoys machine learning, gremlin, 狮子头 and camembert.
Svatopluk Šimara
Shopsys s.r.o.
Svatopluk Šimara
Shopsys s.r.o.
Svaťa is a PHP developer interested in modeling and Domain-Driven Design. And since the DDD is not well known enough, he started to lead his own course recently.
He likes simple design, black tea and organizing badminton events in his hometown Vsetín. In Shopsys he is responsible for automatic testing and a strict code.
Beau Simensen
beausimensen.com
Beau Simensen
beausimensen.com
Beau Simensen ([@beausimensen](https://twitter.com/beausimensen), [beausimensen.com](beausimensen.com)) has been a professional polyglot programmer since 1998. He is a Technology Strategy Consultant, Technical Product Manager for Blackfire ([@blackfireio](https://twitter.com/blackfireio), [blackfire.io](https://blackfire.io)), and is co-host of That Podcast ([@thatpodcast](https://twitter.com/thatpodcast), [thatpodcast.io](http://thatpodcast.io)). An active open-sourcer, he created Sculpin ([sculpin.io](https://sculpin.io)) and helped create Stack PHP ([stackphp.com](http://stackphp.com)). He is also a serving Core Comitte member for the PHP Framework Interoperability Group (PHP-FIG) ([php-fig.org](http://php-fig.org)).
Grzegorz Skorupa
Intive
Grzegorz Skorupa
Intive
Developer, System Analyst and Software Architect. Works with PHP for more than 10 years. He gained experience in many small and large projects. He also has a PhD in Computer Science.
He has spent recent years developing large-scale microservice based system at Intive.
He still believes that failure-free and useful computer system is possible. He constantly seeks for solutions that enhance and guarantee quality.
Agata Sobek
SIENN
Agata Sobek
SIENN
Agile expert and enthusiast, Scrum practitioner, transparent team player with understanding the responsibility for common goal and coach mindset. Always ready to help with Agile processes and Scrum improvements. Full time mum of two children and food provider for two cats. On Sunday evenings I watch NBA.
Michal Špaček
Michal Špaček
Michal is a software developer and an application security engineer who's on a mission to show developers how & why to write secure code. He started building web sites and apps during the "First browser war" when "Best viewed in Netscape" logos were still a thing. Michal has worked for small and big, local and multinational, and is working on [Report URI](https://report-uri.com), the browser reporting service. Michal runs trainings and workshops for developers and managers alike, speaks regularly at various conferences including Passwords/BSides Las Vegas, and if you google QNKCDZO - that's a password he's generated to showcase a particular PHP feature. https://www.michalspacek.com
Miro Svrtan
Null Development
Miro Svrtan
Null Development
Veteran of PHP affairs, BDD practitioner, devops enthusiast
I started using PHP as a student, back in 1999. At first I worked as a one man band web developer and from there I progressed, via focusing on PHP development in a team environment, to be a senior dev, tech lead & technical analyst.
I found much more happiness doing backend stuff so I focus on scalable backends and devops tasks this days.
Jan Tvrdík
Jan Tvrdík
Jan Tvrdík is an experienced PHP developer from Prague. He loves tools that improve developer productivity, especially when such tools are open-source. He published and contributes to various open-source projects such as PHPStan, Nextras Migration or Mango Tester.
Markus Winand
winand.at
Markus Winand
winand.at
Markus Winand is an independent author, trainer and consultant on all things SQL. His book “SQL Performance Explained” has just been translated into a fifth language. It can be purchased as a print edition, and it’s also available to read for free on his use-the-index-luke.com website. Markus is currently working on his second book centered on the idea that things have changed a lot since SQL-92. It is likewise available free of charge online (modern-sql.com).
Holger Woltersdorf
Fortuneglobe GmbH
Holger Woltersdorf
Fortuneglobe GmbH
CIO - Head of FORTUNE SOLUTIONS at [Fortuneglobe GmbH](http://www.fortuneglobe.com). About 12 years of developer and team-lead experience in mobile communication and fashion eCommerce industry. PHP developer for more than 17 years, Co-founder and chairman of the PHP USERGROUP DRESDEN e.V., avid meetup and conference speaker, core-developer of the open-source PHP framework "IceHawk", dedicated to multiple other PHP open-source projects.
Boyan Yordanov
Boyan Yordanov
I am a developer and my day to day work involves mostly PHP and JavaScript with some Ruby and devops work here and there. When I don't write code I try to be as involved in the community as possible. I organize the local PHP user group PHP Varna, support the local hackerspace and other user groups in the city.
Clarion Congress Hotel Prague was opened in March 2008. Currently, it is one of the largest
and most state-of-the-art congress hotels in the Czech Republic.
Because of the large space of the congress facilities (up to 2,500 people), cutting-edge
technical equipment, a corresponding accommodation capacity and, primarily, a comprehensive
offer of services, the hotel became a popular venue for a number of specialists, social and
sports events and meetings.
The hotel has the excellent transport accessibility, including underground station (Vysočanska,
B-line, located directly under the building) and the hotel's garage parking for cars and
buses. The Hotel restaurants and bars, famous for their excellent cuisine - both Czech and
international, along with the wellness and fitness centre and the Fenix shopping mall
represent services open to the general public as well.
Note that the Clarion Hotel isn't reserved for our exclusiveness - accommodation will be
offered only when possible. All persons who want to book a bed here are strongly
encouraged to do it well in advance.
Access
Public transport
At the Main Railway Station go to line
C
metro station called Hlavní nádraží –
the entrance is at the railway station hall. Take the
Letňany
direction and get off at the next station named
Florenc. Here change to line
B
and take the Černý Most direction. Pass
5 stations and get off at the Vysočanská
station, which is situated in the undergrounds of The Clarion hotel.
Self-drive
The hotel is located in the north-east part of the city in Prague 9 -
Vysočany district and the most convenient way to get there is from the following
directions: Dresden (D-8), Liberec (D-10) or Hradec Kralove (D-11). In other cases, you have
to take the ringway.
Go to the junction of 10 (Novopacká) and 601 (Kbelská) roads. You head east
to the Kbelská St., turn right into the Kolbenova St. at the first traffic lights, and
continue along Kolbenova until the tram loop. At the traffic lights turn left into the
Freyova St. and go to an underground car park behind the Fenix shopping centre.
GPS: 50.10940N, 14.50116E.
Aircraft
At the airport get on a city bus #100
and continue to the end stop Zličín. Here change to line
B
of the metro and pass by 19 stations up to the
Vysočanská station, which is situated in
the undergrounds of The Clarion hotel.
Optionally, you can use the AE (Airport Express) line which ends at the
Main Railway Station, and then follow the directions as in case of "Public transport".
The price is breakfast, free internet, wellness & fitness
inclusive. VAT is also included. A special discount of 15 € is valid until
August 26th (a room, a night). Note that the Clarion Hotel isn't
reserved for our exclusiveness - accommodation will be offered only when possible. All
persons who want to book a bed here are strongly encouraged to do it well in
advance.
The price is breakfast, free internet, taxes and fees inclusive.
The best rate is available with not refundable or changeable option. Flat promo code for us
is valid for your stay from October 25 to 28 and until available.
All persons who want to book a bed here are strongly encouraged to do it well in
advance.
The Blind Bird, Early Bird, Regular and Late Decision tickets
(shown below) are valid from all talks from Saturday morning until the end of the conference on Sunday.
The conference pass, lunch & dinner on Saturday, after-party and starter-pack are included.
If you want to attend workshops on Friday, you have to order a ticket for choosen workshop, separately
(lunch is included).
Limited edition of V.I.P. tickets consists conference pass, participation in sightseeing
Prague with speakers on Thursday (same services as for speakers are included), a unique conference
badge and the precedence of taking seats in the first row in every lecture hall.
The proforma (order) invoice in euro currency will be issued and send you automatically when you register.
All prices shown below are VAT inclusive (Czech rate, 21%).
Sponsors
Media Patronages
Become a sponsor
Become a sponsor of the phpCE 2018 Conference – it's a rare opportunity to
present your trademark among most notable persons of the PHP community in Central Europe!
Originator, founder and team leader of the php Central Europe Conference. Event manager with ten-year experience, involved in the Linux Autumn, PHPCon Poland, PyCon PL and dBConf conferences. Former president of the Polish Linux Users Group. Devops in Polish customs administration from a dozen years. Happy husband and father of other phpCE organisers ;) Addicted to nomad-like bike trips with tent, foampad and bedroll.
Joanna Grzesista
Conferia
phpCE's CFO, office manager and sponsor relation. Responsible for on-site organiser's reception and starter-pack distribution. Wife and mother of other phpCE organisers ;)
Mariusz Kuta
webMASTAH.pl
Frontend ninja, database lover, php hooligan. phpCE'18 website designer. Lecture hall technician and multimedia recorder. Addicted to electronic music, crime books and sunflower seeds.
Piotr Krzysztofik
piotrex41.pl
PHP programmer, webmaster, webdesigner and webdeveloper. At phpCE acts as lecture hall technician responsible for multimedia recording and maintenance.
Daniel Błach
Mentax.pl
Team Leader and PHP developer at Mentax.pl. Road trip maniac, living by the motto "Home is where you park it". At phpCE'18 acts as Opening Day event leader, Sponsor Room Time Turner and announcer.
Grzegorz Tlołka
Mentax.pl
Genius, billionaire, playboy, philanthropist. Well… Actually not, but who read descriptions?
Przemysław Pawliczuk
przemyslaw.pawliczuk.pl
Specialist for pathetic and impossible issues. His first words were "Paamayim nekudotayim". Learnt programming upon rendez vous with Symfony, after 10 years with PHP. An orange juice addict, pays attention to stuff-things on PHPCE and for many years on PHPCon PL just after started his journey as a speaker. After hours - husband, President of Pionier Rzeszów Toastmasters, DIY-maker, fan of accordion loving good vocal-trance music.
Václav Horký
Vodafone
Currently challenging PHP backend with Vodafone CZ and partly freelancing. In love with music and his family. Czech translation guru for phpCE'18.
Martin Hlavač
Wayfair LLC
Software Engineer that loves to solve real problems. Making feedback loops faster and more open. Responsible for phpCE'18 Platinum Sponsorship relations. Czech translation guru for the conference website and more.
Honza Černý
Kreativní Laboratoř
Digital alchemist working between humans and machines. Organizer of PHP Prague and PoSobota. Active Czech support for the phpCE Org Team.
Viktor Csiki
Stronghold Media
Full-Stack Software Developer, Systems & Database Administrator, and Master of Struggling with Pointless Tasks. Non-Baptizing Vegetarian. At phpCE'18 Master of Any Hungarian Translations.
Nat Przybylska
Project Manager in the biggest marketplace for gamers. She believes in simple but functional solutions, constantly focused on an end user. She organised Phpers summit. Her passions are events management, running and breaking a sweat during TRX. At phpCE'18 responsible for organiser's check-in and starter pack distribution.
Mateusz Grzesista
Conferia
Student in one of Silesian high schools. Junior org-team member at phpCE helping with a lecture hall technical issues and multimedia recording / maintenance.
Tomasz Kowalczyk
GOG
Software architect with over 10 years of experience in writing web applications. Functional Programming enthusiast pursuing the ultimate goal of software quality and maintainability. An author of several open source libraries. Provides well-designed and open solutions to technical problems. Junior org-team member at phpCE.
Newsletter
Stay tuned! Subscribe our newsletter to be up-to-date with all important news about phpCE.