PHP fwdays '18 conference is the biggest PHP conference in Ukraine that will take place in Kyiv on June 10.

Sunday 10th June 2018

Opening in Track A (10 minutes)

The opening of the conference.

From Helpers to Middleware
Talk by Marco Pivetta in Track A (40 minutes)

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.

Debugging and Profiling distributed applications using Opentracing
Talk by Taras Girnyk in Track B (40 minutes)

Whether you're on a quest to find buggy piece of code or search for a bottleneck in distributed application,- usual tools like XDebug, XHProf (or Tideways), strace and gdb won't be nearly as good as they are in monolith. Despite that there is something you can do to ease your journey. We will talk about some common solutions to this problem when working with microservice-oriented applications and then go on with Opentracing. I'll try to walk you through the idea and instruments with real use cases to make you profiling sessions easy and painless.

11:50 Getting the Most out of MongoDB
Talk by Derick Rethans in Track A (40 minutes)

Although MongoDB is a non-relational database, it is still very important that you store your data in an optimal way. This presentation makes you grow up from just starting with MongoDB, to a seasoned user, by teaching you how to design your data schema according to your application's needs. This requires a different mind set than designing for a relational database. Besides schema design techniques, I will also cover how to pick indexes, different types of indexes, and way to find out why queries are potentially not as fast as they could be.

Рефакторинг - пути улучшения кода
Talk by Roman Sevastyanov in Track B (40 minutes)

Рефакторинг – важная часть разработки любого большого проекта. В этом докладе я сфокусируюсь на основных техниках рефакторинга кода. Также мы обсудим следующее: Когда нужно рефакторить код? Что такое чистый код? Причем тут тесты?

First steps with Docker
Workshop by Dmytro Naumenko in Track C (1 hour, 20 minutes)

[Workshop] You've heard about Docker, but didn't have a chance to try it? You know how to use a command line a bit, and are ready to finally discover Docker? During this master class we'll skim the principles of Docker, create an image from a Dockerfile, launch a container with a PHP project and merge several containers into the infrastructure using docker-compose. You will learn how to debug PHP in a container and run private Docker Registry within your company in 5 minutes

12:40 RAD with Symfony
Talk by Renato Mendes Figueiredo in Track A (40 minutes)

Software development is almost always under pressure, full of deadlines which results in a code base which no one wants to work on anymore, let's go through the concepts of RAD, how to make it on Symfony and how to avoid having a non-maintainable end result! Since Symfony has been doing massive leaps to increase productivity, let's understand those features and how to use them in our favor!

Evolution of Ecommerce Application
Talk by Alexandr Vronskiy in Track B (40 minutes)

История одного кастомного маркетплейса и его эволюция с нуля До энтерпрайз решения Как правильно готовить монолитную архитектуру и почему не стоит использовать микросервисы везде и всегда Как можно балансировать между требованием бизнеса и техническим долгом

14:30 How Unhandled exception works
Talk by Artem Khvastunov in Track A (40 minutes)

PhpStorm is the IDE for PHP and web development. It helps you to write code effectively by providing code completion, refactorings, and also different kinds of so-called inspections. Each inspection is a tool for static code analysis aimed at finding possible errors or simply helping to keep your code clean. Many inspections are available out of the box, e.g., Undefined variable, Unreachable statement, and Unused import, to name a few. The Unhandled exception inspection is one of them. It reveals exceptions that are thrown but actually neither caught nor documented. In the presentation, I will talk about the problems the PhpStorm team faced implementing the inspection and about the solutions we’ve achieved by this time.

The beauty of Laravel's notification system and how it helped me to create my first Laravel package
Talk by Christoph Rumpel in Track B (40 minutes)

Every modern web application has some kind of notifications. This could be an email that informs the user about a new product, a notice on a dashboard that says a friendship request was accepted, a message on Slack that tells you about a successful build and so on. Laravel has a built-in notification system that makes all these tasks as simple as it can get. Let me show you how it works, how it helped me to create my first Laravel package and what the community has to offer to make notifications even more powerful. This is a practical approach to this topic, and live coding will be included.

Scalable social network API on AW
Talk by Nazariy Hazdun in Track C (40 minutes)

Microservices architecture cons and pros Authorization based on Cognito Graph social relationships Social feed Message bus Lessons learned

Events in our applications Event bus and distributed systems
Talk by Andrii Dembitskyi in Track A (40 minutes)

События являются довольно сильным инструментом для приложений: коммуникация между компонентами системы; история действий над данными; триггеры для операций; интеграция с посторонними системами. Во время доклада я расскажу о применениях событий. На какие грабли можно наступить спеша в выборе инструмента и какое место они имеют в нашей архитектуре.

Deep dive into Symfony 4 internals
Talk by Tobias Nyholm in Track B (40 minutes)

Symfony is a request and response framework. But what about all that magic that happens around your code? How does security work? Why isn’t autowring slowing things down? And how is it that symfony components can be so decoupled but still play so well together? I will show you the symfony internals This talk will go over the architecture of Symfony. We will follow the request and the response paths throw the framework. We will do some stops at the components that are more awesome than others. This talk is perfect for those who's worked with Symfony or Laravel before. But if you've never touched a framework before, don't worry. You will still learn a lot from this talk.

Статический анализ или майним информацию из кода
Talk by Sergey Protko in Track A (40 minutes)

Разберемся с тем, что из себя представляет статический анализ, и нужен ли он нам? Узнаем как с этим обстоят дела в PHP Что еще полезного статический анализ нам может дать, помимо поиска простых багов? Пишем свои анализаторы for fun and profit или притворяемся дата майнерами

Alexa, let's build a voice-powered app
Talk by Marcel Pociot in Track B (40 minutes)

With devices such as Amazon’s Alexa or Google Home, voice assistants have gotten into our lives. It’s undisputed that voice-powered applications can have a tremendous impact on your life and your business. Let’s try and build a voice-powered application ourselves and even summon Alexa on stage. Notes: This talk will cover a lot of aspects of how to create voice-powered applications on your own. I will cover the general idea of how these devices work, will demo an HTML5 powered example application and will talk about how to create custom Alexa skills using PHP.

17:20 What's New in Xdebug
Talk by Derick Rethans in Track A (40 minutes)

In this talk I will cover the latest additions to Xdebug. Although it is 15 years old now, many features have been added in the last few months and years. In this talk, I will introduce and explain these new features, and some more notable features added in the last few years.

Yii 2.1, PHP and frameworks
Talk by Alexander Makarov in Track B (40 minutes)

What's the direction PHP heading to? Why? What should I learn? What framework to work with next? And, of course, some Yii news. The talk goal is to try to undestand the direction frameworks and PHP are heading to and how that's connected with the business needs, developer needs, web trends and more. Hope there will be less questions like "what should I learn" or "what framework should I use".

Closing in Track A (30 minutes)

The closing ceremony of the conference.