PHPConf.Asia 2018 will take place between 26 to 29 September 2018 in Singapore - the Garden City of the East!
09:00 |
Special Workshop: Getting Started with PHPUnit
Workshop by Sebastian Bergmann (8 hour) If you want to be sure that your software works correctly then you need to continuously test it. Automated tests save you from pressing F5 in the browser all the time as well as from using debug statements such as var_dump() in your code. They are also cheaper than manual tests and easier to implement than you may think. The attendees of this full-day workshop will learn how to write and execute tests as well as how to integrate automated tests into their development process. About the speaker Sebastian Bergmann has believed in Open Source from day one. He has a university degree in computer science, and has created the industry-leading testing tool PHPUnit, which has played a vital role in professionalizing software development with PHP. He shares his comprehensive experiences in publications and at conferences. As Co-Founder and Principal Consultant of The PHP Consulting Company (thePHP.cc), Sebastian helps his clients to develop software successfully. In his free time, he works on PHPUnit, likes board games, and really enjoys making fancy ice cream. |
09:00 |
Opening Keynote: Rasmus Lerdorf
Keynote by Rasmus Lerdorf in Conference (40 minutes) Opening keynote by Rasmus Lerdorf |
09:40 |
Writing Viruses for Fun, not Profit
Talk by Ben Dechrai (40 minutes) CTO for Hire Going viral hasn't always been considered good. Whether you're fighting the common cold, or trying to remove the ILOVEYOU computer worm from your corporate file server, two things are certain: your immune system is based on your gut health, and computers have really poor gut health. Stopping viruses is hard. The main reason for this is that viruses are really clever. They've evolved over time to escape detection. Each previously detected virus allows the next iteration of the virus to become more resilient. The second reason is that your computer's gut health has to fight every virus, whereas each virus just has to find one immuno-compromised system to survive. Let's work out how viruses hide. How to they sneak past the checkpoints. How they attach themselves to your system. How they fight detection, and removal. We'll look at aspects such as self-replication, cryptographic obfuscation, and touch on methods of delivery and infection. Now that you're thinking like a virus writer, you can anticipate which areas of your applications need hardening. Just remember, we're doing it for good, not profit :) This presentation will feature live demos of writing PHP viruses, and infection of willing targets. The theories apply equally to many languages, so an understanding of PHP is not required. About the speaker Ben Dechrai is a technologist, presenter, author, and hard and-core privacy advocate. When he's not on stage, or sharing his ideas and views on privacy, security, and software development, he applies these passions to the architecture and design of software systems for businesses of all sizes. His staunch support of civil liberties saw him launch a national campaign in Australia to fight against the 2016 Census debacle. He's now working on the design and creation of privacy-respecting IoT systems for home automation. With what spare time he has, Ben enjoys bringing communities together, by running a number of events throughout the year, from conferences and meetups, to end-of-year parties and comedy shows. |
10:50 |
Magento 2 Module in 40 Minutes or Bust
Talk by Ben Marks (40 minutes) While many things (Composer, PSR compliance, MVC, API layer, and test coverage) about Magento 2 will feel familiar to modern PHP developers, what better way to dig into how the framework works than by building a module? This live coding exercise demonstrates both Magento's modular architecture and its plugin system for customizing core behavior. About the speaker Ben is a voting representative in the PHP FIG and has more than 10 years in open source commerce working with some of the biggest brands. He serves as an educator and mentor for Magento, having trained hundreds of developers directly as well as thousands of others through the Magento U Fundamentals series. He's always excited to meet other developers to talk about and learn from the challenges and successes of building successful commercial sites with PHP. |
11:30 |
prooph/micro and FPP - less is more
Talk by Sascha-Oliver Prolic in Conference (40 minutes) I've written event sourced applications with prooph for a while now, after some time I realized, that there is some boilerplate I need to write again and again. Boring stuff that leads to errors pretty quickly, because I'm not paying attention that much on repetitive boilerplate code I need to write. Also I realized that I don't need my favourite framework that much anymore and when creating some small microservices (like one for each aggregate), their need really disappears. Let me invite you to yet another journey, from standard application framework scenarios, to microservices and how functional programming and code generators can make a difference to eliminate so much boilerplate, that your applications are getting slimmer and slimmer. About the speaker Maintainer of the prooph components, zfc-rbac, zfr-oauth2-server, HumusAmqp and FPP, contributor to zend framework, php-enum, prophecy, phpunit, Doctrine and many many more. |
12:50 |
JSON data structure – the hidden gem inside your database engine
Talk by Mizanur Rahman (40 minutes) We are very much obsessed or bound to use a fixed structural database design for our projects. The traditional column based table design along with normalization makes our life crippled within lots of tables and joins. The BLOB was there but was not flexible enough to be used everywhere. JSON is one of the most used structure for data transmission from one service to another and also storing in the database. It gives flexibility to store a structure data as a JSON object and performs operation on the JSON object through queries. Many developers are not aware of this great gem inside their database engine and end up creating larger tables with lots of columns or many tables to keep the database normalized. In this talk I want to focus on JSON data structure and PostgreSQL support for it. From my professional experience of scaling service for 20 million users and millions of records every day, I want to share the experience and how you can we work with it with a practical demo. About the speaker I am Mizanur Rahman, a PHP fanatic who loves to dig deeper in PHP and related technologies. Working in different web technologies for last 17 years and still learning new technologies. I work for Telenor Health, a norway based digital healthcare platform focusing on healthcare for all specially those below poverty line. I am currently playing the role of Head of Engineering and building efficient, scalable and secure micro-services for our millions of subscribers. In daily life i love solving problems and prepare future proof architecture and solutions. I am an agilist in practice and a technology evangelist for Scrum. I am administrator of largest PHP group in Asia, PHPXperts with more than 25000 members and running the group for last 14 years. I am also administrator of groups like Laravel Bangladesh, Agile Bangladesh and Go lang Bangladesh. I have published 3 books from Pack publishing and my recent one was "PHP 7 data structures and algorithms". I am an international tech speaker and spoken in many international scrum and developers events in both Bangladesh and outside Bangladesh. |
13:50 |
Getting Wordpress OOP by using Corcel
Talk by Joe Palala (15 minutes) Working with Wordpress and learning to find out about wordpress hooks and then overriding functions can lead to spaghetti code. I'll share about using a PHP library known as Corcel that will make working with wordpress less of a pain. About the speaker 5 years and more Laravel developer, building the Laravel PH community in the Philippines since 2012. |
14:05 |
What's New in Xdebug?
Talk by Derick Rethans (15 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. About the speaker Derick Rethans is a PHP internals expert, author of Xdebug and an OpenStreetMap and mapping enthusiast. He has contributed in a number of ways to the PHP project, including the Xdebug debugging tool, and various extensions and additions. He's a frequent lecturer at conferences, the author of php|architect's Guide to Date and Time Programming, and the co-author of PHP 5 Power Programming. He is now working at MongoDB, where he works on the PHP and C drivers for MongoDB, and date/time related server features. In his spare time, he likes to travel, hike, ski and practise photography. |
14:20 |
Infinity Wars: REST vs GraphQL
Talk by Yuri Pratama (15 minutes) In this talk I will compare pros and cons between REST and GraphQL About the speaker Yuri Pratama is a frontend engineer at Tourism Marketplace called Tabook Indonesia and UX Community named .INDUX. I interested in pixel, code, and post-rock. He experinced with PHP Programming since 2011 |
15:20 |
Instant Upgrades with Rector
Talk by Tomas Votruba in Workshop Day - Track 1 (40 minutes) Before composer, we downloaded packages manually. But how do you upgrade to newer framework version? Still manually? In non-PHP world, Google and Facebook already use such instant upgrade tools. Thanks to nikic/php-parser a door opened in PHP for such a tool ...and Rector was born. I’ll show you how Rector handles 80 % of boring upgrades for you - in 1 CLI command. About the speaker Tomas loves PHP and connecting people, so he founded Czech & Slovak PHP Community Pehapkari in 2015, where all PHP developers can share their knowledge, chat on Slack or grab a beer. His passion is open-source for lazy people - instant upgrades and coding standards. He takes care of Rector and EasyCodingStandard packages. |
16:10 |
Panel Discussion: PHP - The journey so far (and what's ahead)
Talk by Rasmus Lerdorf, Sebastian Bergman, Derick Rethans (40 minutes) Panel discussion with PHP Core Contributors: Rasmus Lerdorf, Sebastian Bergman, Derick Rethans |
09:00 |
Keynote: How PHPUnit works, why it works like that, why I wish it did not work like that, and what I'm doing about it
Keynote by Sebastian Bergmann (40 minutes) Join Sebastian Bergmann, the creator of PHPUnit, to learn how PHPUnit works, why it works like that, why he wishes it did not work like that, and what he is doing about it. About the speaker Sebastian Bergmann has believed in Open Source from day one. He has a university degree in computer science, and has created the industry-leading testing tool PHPUnit, which has played a vital role in professionalizing software development with PHP. He shares his comprehensive experiences in publications and at conferences. As Co-Founder and Principal Consultant of The PHP Consulting Company (thePHP.cc), Sebastian helps his clients to develop software successfully. In his free time, he works on PHPUnit, likes board games, and really enjoys making fancy ice cream. |
09:40 |
PHP Reactive Programming
Talk by Dolly Aswin (40 minutes) The term reactive was very famous recently. Not only did it get trending, but it has started ruling the software development sector with new blog posts articles every day, and presentations, emerging frameworks and libraries, and more. We are wondering about reactive programming. Why is everyone getting crazy with it? What does reactive programming exactly mean? What are the benefits of reactive programming? And, finally, should we learn it? On this event, I will introduce the Reactive Programming in PHP using RxPHP library. About the speaker Dolly Aswin is currently IT Manager of Xtend Indonesia. He start working as PHP Prgrammer in 2005. And since 2009 - 2017 he works as Freelance Software Developer on Upwork (formerly oDesk). He also Zend Certified Engineer (PHP5, ZF1 and ZF2) |
10:50 |
Scaling IO-bound application in the cloud
Talk by Mikko Lammi (40 minutes) In the modern cloud environment CPU and memory are cheap resources which can easily be increased to scale up applications. However the local storage can still be the bottleneck and predictable performance might come with a high price. We will demonstrate some ways on how developers can overcome IO limitations and design applications that will scale horizontally in cloud environment. About the speaker Mikko wears several hats at UpCloud which includes R&D , development for the last five years with cloud hosting backend automation and operations support. He has more than 15 years of experience with different programming languages/ backend operations while working on other functions such as network administration and telecom systems. His most memorable stint is the time he spent at Finnish military mostly coding with PHP. |
11:30 |
Async advantage with Sync simplicity
Talk by Arul Kumaran (40 minutes) Talk by Arul Kumaran |
13:50 |
Building the LaravelPH community
Talk by Joe Palala (15 minutes) Talk by Joe Palala |
14:05 |
Introduction to PHP port of GraphQL
Talk by Hoa Nguyen (15 minutes) What is GraphQL? When do we use? Which are the famous libraries to use with PHP? |
14:20 |
Introduction to EC-CUBE eCommerce platform
Talk by Tao Sasaki (15 minutes) Talk by Tao Sasaki |
15:20 |
Code decoupling from Symfony (and others frameworks)
Talk by Miguel Gallardo (40 minutes) Frameworks are very helpful to solve common problems when developing an application. But what happens if we have to move to a new version or another framework? In this talk I will show how my company tries to keep independent of any framework, decoupling our business logic from symfony. About the speaker I have more than 13 years working on the design and development end to end of sites, application and systems, working for a company or for his own. Always learning to improve my skills and to acquire new technologies. I have become a polyglot developer who works on multiple programming languages applying best practices and using agile methodologies; with experience in tech leadership roles. |
16:10 |
Closing Keynote: Machine Learning APIs with PHP
Keynote by Gabriela Davila Ferrara in Conference (40 minutes) ML is for people with PhD, right? Actually, no. ML is for regular developers too! You can make use from “pre-baked” trained models that Google offers through their set of APIs, or even train a custom model with Auto ML without knowing anything about Machine Learning or TensorFlow code. After all, it’s just an API call! About the speaker Gabi is a Developer Advocate on Google Cloud and a passionate Software Engineer. She likes simplifying complex systems, and believes abstractions are best when they can be understood in a real life example. She’s driven to go beyond DBA lingo to make database and storage technology more accessible to software developers. |
19:00 |
After-Party
in Conference
(2 hours, 30 minutes)
Conference After Party |
09:00 |
Introduction to PHP Extensions
Workshop by Derick Rethans in Workshop Day - Track 1 (2 hours, 30 minutes) In this workshop, we take a first look at writing PHP extensions. Using step-by-step examples, we'll take a function written in PHP and convert them into a loadable extension using C. We'll then test both versions and compare the results. After seeing the size and scope of the benefits that can be realized with only a few minor changes, you'll want to try it out for yourself. You'll also understand why we start with simple things, and not try to rewrite all of Symfony in C. About the speaker Derick Rethans is a PHP internals expert, author of Xdebug and an OpenStreetMap and mapping enthusiast. He has contributed in a number of ways to the PHP project, including the Xdebug debugging tool, and various extensions and additions. He's a frequent lecturer at conferences, the author of php|architect's Guide to Date and Time Programming, and the co-author of PHP 5 Power Programming. He is now working at MongoDB, where he works on the PHP and C drivers for MongoDB, and date/time related server features. In his spare time, he likes to travel, hike, ski and practise photography. |
Refactoring Legacy PHP: The Complete Guide
Workshop by Junade Ali in Workshop Day - Track 2 (2 hours, 30 minutes) It’s no secret that software is often written poorly. In commercial environments, developers will regularly find themselves facing technical debt and find that the ability to refactor code is an essential skill to master. As Martin Fowler famously wrote: "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." Due to bad design in software, delivering value to the client can become ever more difficult and stressful until bad software design decisions are rectified. For developers working on badly designed projects, making repayments on technical debt, whilst also delivering value is a key skill – this session will explain how it is possible to square-the-circle and both deliver value whilst paying down technical debt. Unfortunately far too many developers consider refactoring as a risky task filled with code that’s ridden with var_dumps and debug breakpoints. This session seeks to teach attendees that refactoring can be a safe, everyday task during normal software development and that it is indeed healthy to refactor software mercilessly, especially when operating in an Agile environment with changing software requirements. This session will feature a hands-on demonstration of how to refactor a legacy app through a combination of automated testing, faster releases and merciless refactoring. Practical experience in automated software testing and continuous integration are vital learning outcomes and this session seeks to expose attendees to tools like Docker, PHPUnit, Selenium and PHP Mess Detector. Beyond testing, we’ll cover the Code Smells that help developers weed out where the problematic code is. Gaining a firm grounding in Object-Oriented Programming when refactoring PHP is invaluable and as such, this session will take a deep-dive into Polymorphism, SOLID principles and anti-patterns. After nailing down Object-Orientation, we’ll discuss how we can move legacy software architecture to suitable Design Patterns. Extreme Programming practices will be presented as a key discussion point on how developers can help achieve these goals. About the speaker Junade Ali is a British computer scientist with specialist knowledge of computer security, distributed systems and software design. He is the author of multiple software engineering books, including “Mastering PHP Design Patterns”. Currently, Junade holds the position of Lead Support Operations Engineer at Cloudflare and is working part-time on a PhD in theoretical computer science. He has completed a number of high-profile security research projects that have been covered in the media; including anonymous leak password detection in Pwned Passwords, IoT security research and DDoS attack analysis. His software engineering experience has varied from being the lead developer of the then largest digital agency in the UK (by headcount) to developing software for embedded systems used in mission critical road safety applications. At the age of 17, he started a post-graduate Masters, and was later awarded a Distinction and “Best Overall Masters” award for a thesis based of his earlier conference paper “Coverage and Sensor Placement for Vehicles on Predetermined Routes - A Greedy Heuristic Approach”. |
|
Drupal: Zero to Hero in 3 hours
Workshop by SJ in Workshop Day - Track 3 (2 hours, 30 minutes) Drupal is an enterprise-grade open source content management system (CMS). The vanilla install is capable of handling content structure, content publishing workflow, layout, user and permission management. The functionality can be easily extended by installing contributed modules. Besides content-based site, Drupal can be configured as e-commerce, social networking, intranet, lightweight CRM or custom business process web application. Drupal 8 is the latest version and is built on top of Symfony. In this workshop, participants will set up Drupal site from scratch, configure and develop an application, and deploy it to a production-ready server. A topic from https://archkatas.herokuapp.com/kata.html will be used to help define the requirement of the site. Pre-requisite machine setup Docker Desktop (https://www.docker.com/products/docker-desktop), or for the hardcore coder: native web server setup with PHP 7.x ddev (https://github.com/drud/ddev), or for the hardcore coder: native composer, drush, drupal console git client, and GUI if necessary (https://www.sourcetreeapp.com/) awesome text editor like vi, or IDE... well, any text editor will do Cloud we will use Platform.sh development tier, which is free for 30-days for new user Platform.sh development tier provides git server, web server, db, 3 environment, CLI tools install platform CLI (https://docs.platform.sh/gettingstarted/cli.html) participants may also use your self-provisioned server and manually configure drush aliases About the speaker Being passionate and proficient in technology in general, SJ has his mission in life to help others use technology to better everyone's life. For the past decade, he chooses Drupal as his tools of choice to bring about transformations in client organisations he works with. SJ founded Pixel Onion, an award-winning end-to-end design and development studio who helps clients build secure, scalable and extensible platforms, with focus on delivering delightful experience for the users. When not busy tinkering with Drupal or building the local Drupal community, he likes to spend quality time with his wife and kids to explore Singapore and the world, to build Gundam model kit, and to play board games. |
|
12:30 |
Build your own Secure Messenger in 3 hours
Workshop by Ben Dechrai in Workshop Day - Track 1 (2 hours, 30 minutes) You've written a blog in 5 minutes, but what about a secure, encrypted communications application in 3 hours? This workshop will get you started with a simple Laravel application, and iteratively build it up to become an end-to-end encrypted chat platform. You'll learn how to get started quickly with Laravel and Bootstrap, add encryption layers to the system, design database structures that won't leak metadata, and even provide mechanisms for plausible deniability. Participants will benefit from having a moderate understanding of current PHP frameworks, MySQL/MariaDB, and be comfortable understanding JavaScript. You'll have VirtualBox pre-installed on your laptop, and will hopefully finish the workshop with a simple, yet fully functioning communications platform. About the speaker Ben Dechrai is a technologist, presenter, author, and hard and-core privacy advocate. When he's not on stage, or sharing his ideas and views on privacy, security, and software development, he applies these passions to the architecture and design of software systems for businesses of all sizes. His staunch support of civil liberties saw him launch a national campaign in Australia to fight against the 2016 Census debacle. He's now working on the design and creation of privacy-respecting IoT systems for home automation. With what spare time he has, Ben enjoys bringing communities together, by running a number of events throughout the year, from conferences and meetups, to end-of-year parties and comedy shows. |
Goodbye jQuery! Enhance your PHP project with VueJS
Workshop by Yuri Pratama in Workshop Day - Track 2 (2 hours, 30 minutes) In this tutorial I will give some how-to initialize your PHP project and combine it with VueJS. g. Goodbye jQuery! About the speaker Yuri Pratama is a frontend engineer at Tourism Marketplace called Tabook Indonesia and UX Community named .INDUX. I interested in pixel, code, and post-rock. He experinced with PHP Programming since 2011 |
|
Create a framework-less PHP Web Application from scratch
Workshop by Patrick Allaert in Workshop Day - Track 3 (2 hours, 30 minutes) Every time I say that I don't use any framework on the projects I'm working on, people tell me I am crazy and that I should not reinvent the wheel. Crazy? Maybe! But reinventing the wheel: for sure not! I'm using a whole bunch of libraries and that is what they are meant to, it's not a framework argument! A crazy idea? Maybe not so much: Java, Python, Ruby, … they are all (good!) general purpose languages but they don't know about HTTP requests / responses at their core. Web Frameworks in those languages solve this and provide the missing HTTP/web features. PHP is very different from those as it is designed primarily for web development and it knows everything about HTTP sessions, requests, response, JSON, cookies, output buffering, … NATIVELY! In this workshop, we are going to investigate the building blocks of frameworks (Routing, MVC, Dependency Injection,…) leveraging features that PHP provides natively and how a project can be realized with PHP as the only framework while respecting principles like: “Don’t reinvent the wheel”, KISS, DRY, YAGNI, … About the speaker Patrick Allaert is a freelance system engineer and founder of Libereco Technologies, a Brussels based company specialized in PHP services. Using PHP since the early days of PHP 3, he is contributing/hacking on a wide variety of projects including PHP, eZ Publish, Linux and KDE. In his spare time, he works on the PHP monitoring extension: APM for which he is the lead developer, that doesn’t give him much time to blog or to tweet. |
|
15:30 |
Hands on PHPSpec
Workshop by Miro Svrtan in Workshop Day - Track 1 (2 hours, 30 minutes) PHPSpec and BDD are cool buzzwords this days in PHP community and I would like to invite you to show you how to build better code with it. I will be live coding few examples to introduce you to PHPSpec features, show you some caveats and by working in small teams build a feature together. So what is PHPSpec? It's a great tool to model (specify) and build your code that has a side effect: you get some tests out of it. It's not a drop in replacement for unit testing (or testing in general) but can help you out build great products in short amount of time. About the speaker 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. |
Getting Started with Symfony 4
Workshop by Prasetyo Wicaksono in Workshop Day - Track 3 (2 hours, 30 minutes) Symfony is a set of PHP Components, a Web Application framework, a Philosophy, and a Community — all working together in harmony. This workshop addressed to new developer or experienced develop who want switching to Symfony 4. This express 3 hours workshop will cover this following topics: Symfony 4 Overview Symfony Configuration Serving The Web (Request, Response, Twig) Forms Basic Doctrine ORM About the speaker badass software engineer |