The goal of PHP South Africa has always been the same… The transfer of knowledge. We have always aimed to get the best of the best together in our beautiful country to share some of their knowledge and experience. In an ever growing industry it is events such as this that helps you stay sharp and craft better software.

Tuesday 26th September 2017

18:30 How to get the most out of a tech conference!
Social Event by Andreas Heigl in Track 1 (2 hours, 30 minutes)

Come join us for a lekker pre-conf social (Cape Town style) and some invaluable advice from our international speaker, Andreas Heigl. Andreas will be sharing some tips from his past conference experiences on how to get the most out of a tech conference. Make sure to RSVP. More details here:

Wednesday 27th September 2017

Registration (1 hour)

Grab a coffee and get ready for the day!

Let's Build a Chatbot!
Workshop by Tessa Mero in Track 1 (2 hours, 30 minutes)

Chatbots and conversational agents have become very popular in the recent years and there is a huge research effort to automate conversations in several applications. What are Chatbots? How can it benefit you? How do you write the code for it? These questions will be answered during the session with step by step directions so you can easily follow along. Come join me and build your first Chatbot!

Bending WordPress to your Will
Workshop by Hugh Lashbrooke in Track 2 (2 hours, 30 minutes)

WordPress is the most widely used PHP project in the world. It is an incredibly powerful platform and framework for development, but until you learn how to use it you won't be able to make full use of its flexibility. In this workshop you will learn the core principles of WordPress development that will enable you to start taking full advantage of everything that it offers. We will build a simple WordPress plugin together that will allow you to learn a number of the APIs and methods that WordPress core offers. This workshop is aimed at PHP developers who do not have any WordPress experience, but would like to learn how to develop on the platform.

12:00 Advanced Composer - A Lot More Than Just ‘Install’ and ‘Update’
Workshop by Brad Mostert in Track 1 (2 hours, 30 minutes)

Composer is one of the most important and useful tools in a PHP developer’s arsenal, however, a majority of its most powerful features go untouched by most. Join me for a deep dive through this versatile toolbox hiding in the root of your project. Highlights of this workshop include: * Leveraging Semantic Versioning and Private Packages to abstract and maintain integration of your microservice APIs * Composer Repositories as a means of high deployment availability when South Africa is on the far end of the Internet topology * Composer’s scripts and plugins as an important element of your deployment and testing pipeline Buckle up for a slew of examples and recipes with a PHP DevOps flavour. The ideas are not perfect but they are definitely interesting.

Getting Started With Open Source on Azure
Workshop by Zander Janse van Rensburg in Track 2 (2 hours, 30 minutes)

Azure has a huge amount of amazing tools available on a single platform. During this workshop, we will be taking an in-depth look at a few of these tools. We will focus specifically on PHP and other open source technology.

15:00 Laravel: Idea to Product
Workshop by Christopher Pitt in Track 1 (2 hours, 30 minutes)

Got an idea for a product or service? Laravel is the perfect framework to get you up and running, fast! In this workshop, we'll take a simple product idea and build it into a live web app. We'll learn about how to set build PHP application logic, how to bolt on a Javascript front-end, how to deploy with Forge, and even how to manage domains and SSL certificates. By the end, you'll know everything you need to make your idea a reality.

Intro to Magento 2: Your First Module
Workshop by Ben Marks in Track 2 (2 hours, 30 minutes)

Magento 2 is here, and it's time to dive in! Composer, PSRs, and a full test suite make Magento 2 easy and enjoyable to learn. The goal of this tutorial is to introduce the framework concepts of Magento 2 as a foundation for customizing and extending the application. There will also be plenty of commerce anecdotes to go around. Show up, participate, and walk out with both a working Magento 2 environment and module. This tutorial is suitable for developers with or without Magento 1 experience. Familiarity with at least one PHP MVC framework is recommended. Source code is available, so you can follow along at your own pace.

Thursday 28th September 2017

Registration (1 hour)

Grab a coffee and get ready for the day!

Level Up Your Career
Keynote by Ben Edmunds (1 hour)

Learn how to get along well with your co-workers and work your way up the corporate ladder. Or better yet, burn it down. Politely of course. In this session we will lay out several soft skills for developers Working well with your co-workers. How to look good in the eyes of management without giving up your opinion or dignity. Basic pointers for leading other developers. How to get involved and excel at open source projects.

Nightmares and Testing
Talk by Josh Harington in Track 1 (45 minutes)

From a R400 million project crashing in a final demo to spending R240 000 by triple sending sms's. From breaking changes in a live stream demo to releasing too early and getting 1-star bombed in the app store. Some nightmare stories and why you should be testing and specific tests you need to do before any demo or launch

Monolith to Microservices
Talk by Gareth McCumskey in Track 2 (45 minutes)

Microservices is challenging the existing monolithic paradigm and is set to turn the world of web development on its head. Promising greater reliability, redundancy, throughput and innumerable other benefits, with companies like Uber and Netflix embracing this new way to build apps, there are questions that need answering. - What is the Microservices architecture? - How do you build an entire application on it? - What are the service providers like out there? - How do you manage a team using Microservices? - What are the pros and cons of this new architecture? With experience over the last year experimenting and building apps and teams building micro services, Gareth will attempt to answer the questions.

11:15 How to handle ?
Talk by Andreas Heigl in Track 1 (45 minutes)

You've got strange characters like "�" or "ö" display in your application? Yes, handling non-English characters in application code, files and databases can be a challenge, to say the least. Whether that's German Umlauts, Cyrillic letters, Asian Glyphs or Emojis: It's always a mess in an international application. In this session you will see why that is and how handling characters evolved in computing. You will also see how handling characters in applications and databases can be done less painfully. And don't worry when EBCDIC, BOM or ISO-8859-7 are Greek to you and your Unicode is a bit rusty: we'll have a look at them too!

Climbing the Abstract Syntax Tree
Talk by James Titcumb in Track 2 (45 minutes)

The new Abstract Syntax Tree (AST) in PHP 7 means the way our PHP code is being executed has changed. Understanding this new fundamental compilation step is key to understanding how our code is being run. To demonstrate, James will show how a basic compiler works and how introducing an AST simplifies this process. We’ll look into how these magical time-warp techniques* can also be used in your code to introspect, analyse and modify code in a way that was never possible before. After seeing this talk, you'll have a great insight as to the wonders of an AST, and how it can be applied to both compilers and userland code. (*actual magic or time-warp not guaranteed)

13:00 Lessons Learned Building the Composer Internals
Talk by Jordi Boggiano in Track 2 (45 minutes)

This session will dive into Composer's guts to see which choices we made worked and which ones did not. After six years and a few hundred thousand users, the Composer code has been through many iterations, problems and successes. Let's have a retrospective to see what we can learn from it.

ReactJS and WordPress in Production
Talk by Kurt in Track 1 (45 minutes)

ReactJS is the new kid on the block and WordPress has stood the test of time. This talk will cover how easily you can introduce ReactJS within an existing WordPress site(legacy). We will also cover how you can use a separate Laravel API's to power React Components with data. We will also talk about React tooling (Webpack and Babel) and how you can package your code for production using PreactJS.

Building an Open Source CI Tool in a Corporate Environment
Talk by Etienne Marais in Track 2 (45 minutes)

As far as most CI tools go online in the beginning of 2017, The feature set versus the price for them are very much out of balance. This is the story about how we set out to build such a tool to solve our team's problems, open source it, manage the community and use it internally between teams. This talk covers the building, testing and rollout of this tool (that is as of yet still nameless), the community building around it and supporting other teams with it.

15:00 Growing your Product by Building a Community
Talk by Hugh Lashbrooke in Track 1 (45 minutes)

At 14 years old, WordPress powers nearly 30% of the entire internet (and it's growing every day!) - that is no small feat for any project. It managed this because of the active community and that surrounds it - a community that understands that a healthy, growing platform is about far more than just code. In this talk I'll look at what we can learn from the history of WordPress and how you can apply the same principles to growing your own platform, project or community.

A World Without PHP
Talk by Ben Marks in Track 2 (45 minutes)

Imagine a world in which your career, the careers of your friends and coworkers, and the businesses and industries built on PHP vanished overnight, or never existed at all. No Facebook. No Wordpress. Billions of dollars in online commerce, all gone. Flickr, Tumblr, MailChimp: poof! This talk presents a dystopian world in which we are stuck updating each other via SMS or (gasp!) MySpace, reading content on corporate portals, and buying everything from just a handful of online marketplaces.

Speaker Panel
Event Related by Ben Edmunds, Josh Harington, Gareth Mccumskey, Andreas Heigl, James Titcumb, Jordi Boggiano, Kurt Farao, Etienne Marais, Hugh Lashbrooke, Ben Marks (30 minutes)

All the speakers for the day will get together in one panel. Use this moment to pick the brains of some of the best.

Social - Shimmy Beach Club, V&A Waterfront (2 hour)

Come join us for a beer as we try to recover from information overload while we mingle with the speakers and fellow attendees.

Friday 29th September 2017

Registration (1 hour)

Grab a coffee and get ready for the day!

09:00 Gamify Your Growth as a Developer?
Keynote by Andreas Heigl in Track 1 (1 hour)

I love to get better as a developer and when I get rewarded for that even better! In this session we'll have a look at ten tools that make our lives as developers easier and along the way allow us to become better as a developer. Services like Github or Bitbucket allow us to communicate with one another about code while Scrutinizer, Code-Climate or Insight can give us valuable informations on how to improve our coding skills and easily bring our code to a better level. Suddenly tedious tasks like writing unittests, reducing cyclomatic complexity and adding documentation can become entertaining and rewarding. All this because we all strive to get high marks, 100% or a green button. So let's see what the benefits of the different tools are and how we can integrate them into our build-chain.

Magento 2 Development Best Practices
Talk by Ben Marks in Track 1 (45 minutes)

Magento 2 is best known as the most successful open source commerce app, but did you know that it is a full-fledged PHP framework underneath, complete with several tools to make a developer’s life easier. In order to build and maintain a Magento 2 site, developers must adhere to certain framework conventions and use the tools that are packaged with the app. This talk presents these best practices and introduces some community-created tools as well.

Building Robots With PHP
Talk by Christopher Pitt in Track 2 (45 minutes)

I bet you're the kind of person who's too busy working to build robots, with PHP. Well, you're missing out! Over the last few years, I've built all sorts of useful robots (Internet of Things machines); to connect to virtual environments, automate my surroundings, or generally make my life easier. I found all of these could be built using little more than the familiar PHP code I was using in my 9-to-5. Join me as I show you some of the cool things you can do, with an Adruino, some useful PHP libraries, and a lot of imagination.

11:15 Javascript State of The Union
Talk by Jordi Boggiano in Track 1 (45 minutes)

This session will cover the developments of the JavaScript / ECMAScript language in recent years, to give you a quick update on how JavaScript can be written in 2017. The pace of the JS community has remained very high for several years now, and it is often easy to be overwhelmed by the amount of options and new developments. I will present a limited set of features and tools to let you join us in the future without decision paralysis.

Design Patterns in PHP – Your Time is More Valuable than Your Server’s
Talk by Brad Mostert in Track 2 (45 minutes)

Programming is an artisanal trade and thus your output is maximally bound by your available time. By covering the well know (but underused) classic “Gang of Four” Design Patterns from a PHP perspective, I intend to provide a way for you to get the most out of your limited time. Design Patterns are generalized, reusable solutions to common recurring design challenges in Object Orientated programming. They essentially provide you and your team with larger abstractions with which to solve problems – thereby allowing you to more rapidly solve more complex problems. Design Patterns also help avoid subtle design issues that may not be apparent until the development of a system is well underway (and the design can no longer be easily changed). This leads to more extensible and maintainable systems. By correctly applying Design Patterns, you generally end up achieving most of the SOLID principles by mistake… My talk will focus on using a subset of the 23 Design Patterns in PHP and how they can provide some ingenious solutions to problems we regularly solve in both web-based (MVC) and CLI PHP environments. I will highlight PHP-specific language features that facilitate the patterns as well as provide code snippets to help make these highly abstract ideas more accessible. I intend to bridge everyone from UML to useful code. This is a hardcore programming talk.

Nom Nom: Consuming REST APIs
Talk by Tessa Mero in Track 1 (45 minutes)

Feeling hungry? You’ve come to the right place! As APIs have become increasingly more important and popular in usage in the past few years in web development, it is important to understand the basics of what they are and why to use them. I will be going over the basics: The What’s, Why’s, Where’s, and When’s. You will learn the basics of REST APIs and I will show you how you can use POSTMAN to test making REST API calls. I will use Cisco’s Spark and Tropo as use case examples of working with APIs.

HA and Elastic Scaling... It's Easy on Azure
Talk by Zander Janse van Rensburg in Track 2 (45 minutes)

Azure is a fast growing collection of integrated cloud services. With these powerful services, it is easy to achieve high availability and elastic scaling. During this talk, Zander will show you exactly just how easy it is. He will be sharing a few tips and tricks that he picked up during his journey as well as any stumbling blocks he hit on the way.

14:00 Taking back ownership of the word 'freelance developer'
Talk by Jonathan Bossenger in Track 1 (45 minutes)

A freelancer or freelance worker is defined as a person who is self-employed and is not necessarily committed to a particular employer long-term. Since becoming a freelance developer in 2010 I've discovered that there is a stigma attached to the word. I don't know if it is developer specific, but every time I meet or take on a new client the fact that I am 'freelance' tends to inspire visions of horror, usually of poor deliverables, bad client support and just a general lack of responsibility. In my talk, I would like to unpack this problem and provide some solutions to it.

Devops for PHP Developers
Talk by Jeremy Quinton in Track 2 (45 minutes)

To paraphrase a quote from “Back then we didn't know we were going to change the IT industry. Devops has gone from an underground, to a wide mainstream industry adopted idea.” Devops is a term many PHP Developers will have heard but its not always clearly understood and often misinterpreted. In an industry that changes so rapidly it's important for developers to grasp and understand the core concepts of what Devops is about so that you can take your organisation or development team forward. My talk will dispel some myths, cover fundamental ideas,concepts and tools you can embrace mainly from a developers perspective. The main goal is to educate PHP Developers around exactly what Devops is and what benefits it brings to Development teams. I will break down the four main pillars of Devops and explain the core concepts within each of these over arching pillars.

(Cancelled )Your API Is Bad And You Should Feel Bad
Talk by Ben Edmunds in Track 1 (45 minutes)

Do you hate the Facebook API? We all do as well. So stop writing your API in their footsteps. In this talk, we will walk through how to construct a RESTful API, what makes an API your users/developers will love, and why you should eat your own dog food with API Driven Development.

Dip Your Toes in the Sea of Security
Talk by James Titcumb in Track 2 (45 minutes)

Security is an enormous topic, and it’s really, really complicated. If you’re not careful, you’ll find yourself vulnerable to any number of attacks which you definitely don’t want to be on the receiving end of. This talk will give you just a taster of the vast array of things there is to know about security in modern web applications, such as writing secure PHP web applications and securing a Linux server. Whether you are writing anything beyond a basic brochure website, or even developing a complicated business web application, this talk will give you insights to some of the things you need to be aware of.

Speaker Panel
Event Related by Andreas Heigl, Christopher Pitt, Brad Mostert, Zander Janse van Rensburg, James Titcumb, Ben Marks, Jordi Boggiano, Tessa Mero, Jonathan Bossenger, Ben Edmunds, Jeremy Quinton (45 minutes)

All the speakers for the day will get together in one panel. Use this moment to pick the brains of some of the best.