{y<}
{yn}

{yl}

{y>}{o<}
{on}

{ol}

{o>}{w<}
{wn}

{wl}

{w>}{d<}
{dn}

{dl}

{d>}{h<}
{hn}

{hl}

{h>}{m<}
{mn}

{ml}

{m>}{s<}
{sn}

{sl}

{s>}

Two Days of Learning

Come listen to some of the experts in PHP share some of their knowledge, experience, and passion.

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.

Two days of quality talks filled with valuable information delivered by some of the most experienced local and international speakers.

What would a conference be without workshops? If you want to learn some new shiny tool, a new framework, or even just how to structure code better… we have you covered! There will be an entire day of workshops! More information will be added later.

Newsletter Signup

Sign up for our newsletter to stay up to date with the latest news about PHP South Africa.

Speakers

Ben Edmunds

CTO

CTO of an awesome company you’ve never heard of by day, hacking on crazy ideas by night. PHP Town Hall podcast co-host. Author of http://BuildSecurePHPapps.com. Conference speaker. Open source advocate. Human.

Colin O'Dell

Lead Web Developer

Colin O’Dell is a Lead Web Developer at Unleashed Technologies, a web and hosting firm based in Maryland. He began programming at age 8, co-founded a local web shop at 15, and has over 10 years of professional experience with PHP. In addition to being an active member of the PHP League and maintainer of the league/commonmark project, Colin is also the author of the PHP 7 Migration Guide ebook.

Damien Seguy

CTO

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 static engine, that automatically review code for version compatibility, security and clear code. Over the last 15 years Damien has contributed to the PHP, as documentation author, elephpant raisers, User group animator on several continents. He also enjoys gremlin, 狮子头 and camembert.

Jeff Kolesnikowicz

Senior Developer

Jeff has been developing websites since 1999 when he launched his first website, made with Perl. Since then he’s used a bunch of other ancient technologies like vanilla ASP, PHP 4 and Java cough. Jeff is a senior developer at Allied Health Media, and built one of their products, Simucase, using websockets. Jeff works from his home near Toronto under the close eye of his manager; his cat Benny.

Dale Attree

Senior Developer

Senior developer at Afrihost specialising in workflow implementation. I love PHP, but enjoy interacting with various technologies. Anything to get the job done and done well.

Zander Janse van Rensburg

Technical Lead

Zander is an organizer of JoburgPHP usergroup and PHP South Africa by night. By day he is the technical lead at FitChef where he is on a quest to help the company achieve world class customer service by means of awesome tech.

Bernhard Breytenbach

Senior Web Developer

Bernhard is a self taught PHP developer and Linux DevOp at MDS Technologies. He started with PHP and web development back in 2005, and spends most of his time building accounting/freight/courier management systems for MDS. He has a passion for community and advancing transparency, especially with regards to technology, programming and Open Source. He also enjoys talking about programming and sharing his knowledge with other devs.

Tim Haak

Freelancer Extraordinaire

Tim Haak is an independent contractor and one of the three organisers for the Johannesburg Php user group. With several years in the web, networking and linux world. Tim specialises in the Web Application sphere with a backend focus. Currently really enjoying docker, ionic and angular and the opportunities that provide.

Walther Lalk

Core Team Member

I am a core team member of the CakePHP framework. I’ve been doing PHP development for over 15 years, and working with CakePHP for over 8 years. I am passionate about open source, and promoting the CakePHP framework.

Francois Lubbe

Developer

Programmer, technology enthusiast and Agile/Scrum practitioner at Clickatell, solving the world’s problems with code. With over 13 years of making software development mistakes and finding ways to not repeat the same mistakes but make new mistakes.

Femi Taiwo

CTO

Femi is Co-Founder and CTO of INITS, a Technology Provider based in Lagos, focused on creating innovative and useful solutions in the Nigeria. He leads a team of software engineers, managing the development and support of several mission critical projects including OpenVR, the system used by the Electoral Management Body in Nigeria to register and manage over 70 million Nigerians for the elections; and also a Insurance Claims Management System deployed at a national scale.

    Schedule

    08:00-09:00
    Registration / Welcoming

    Drink a coffee and meet some new people before the day starts.

    An introduction to the Symfony framework. Instead of just covering the theory of the framework we will be creating an app together.

    Zander Janse van Rensburg

    Tim will teach you how to set up docker swarm cluster and how much simpler it is the updates that came through recently.

    Tim Haak

    A basic/intro level workshop into CakePHP 3 and the new ORM and other new features. In this workshop I will take attendees through the process of creating a new CakePHP 3.x application, how to perform basic CRUD actions, the power of the ORM and introduce them to a few "must-have" CakePHP plugins. The exact application to be developed as part of this workshop still needs to be decided, but it would be something simple like a Blog or Contacts database. I'll begin with a brief introduction into composer, followed by creating a skeleton CakePHP application using it. We'll then make use of the CakePHP migrations plugin to create an initial database, followed by using the CakePHP bake tool to generate an initial set of CRUD actions and views. The next step would be to create an authentication/login/registration process. A basic authorisation system will then put into place to ensure that admin users and regular users are logically split. We'll then look at a couple of advanced ORM functions for things like a 'latest posts' widget, etc. The last part of this workshop will be to introduce attendees to some of the more advanced CakePHP plugins like CRUD, CRUD view and the Search plugin.

    Walther Lalk
    8:00-9:00
    Registration / Welcoming

    Some networking, some coffee, some hype... Get ready for the day.

    Learn how to structure and maintain a modern day PHP project using the latest standards. We'll walk through recent language improvements and how they will affect your day to day development. This will use code examples to give you in depth, real world examples of usage. We'll also cover the latest community initiatives and standards including the PHPFIG along with the PSRs they have introduced.

    Ben Edmunds

    Talk about what you just learned and harass the speaker for more information over a nice cup of tea.

    During this talk Zander will be providing an introduction to functional programming in PHP. We will be looking at what functional programming is and how it can be used in modern applications. To make the introduction of this new concept easier to those who have not seen it before, a lot of comparison between the OOP and functional approach will be made. There will also be examples of how to use it with another popular language in our tool belt, JavaScript.

    Zander Janse van Rensburg

    Websockets give you real-time access to your PHP application, facilitating data transfer between the browser and the server. With the popularity of Javascript libraries like Node.js and Meteor, websockets are Hot Stuff™. But just because they’re popular with the Javascript crowd doesn’t mean PHP applications are left out in the cold. In this talk, we will discuss three different use cases for websockets as well as strategies for implementing websockets into your PHP application. We will look at the most popular websocket protocols and specifically an overview of the WAMP protocol (the protocol, not the stack - http://wamp-proto.org) and the PHP Ratchet library. At the end of this talk, you’ll have a better sense of what websockets are, how they work, and how to use them in your application.

    Jeff Kolesnikowicz

    We all need a break. Now would be a good time to take one.

    So you use inheritance, but still have huge amounts of "if"and "switch" statements cluttering up your code. You thought classes and inheritance was suppose to help keep your code clean and easy to read. Why I am still have to duplicate pieces of code that should be reusable? Then abstraction is what you are missing. Parenting is not just important in life, but in development as well.

    Dale Attree

    Dead code happens when it can never be executed, or if it has no effect on the output. Dead code tends to appear in long-winded projects, and grows over time. It is a significant part of the technical debt, leading to lost time in understanding code, fixing it (sic) and ultimately, removing it. It takes various shapes, such as unreachable code, unused functions, redundant conditions. It may also be conditional, depending on environnement, even if the latter doesn't exist anymore. During the session, we'll track dead code, discuss how it may be removed or sidelined. We'll feel a lot cleaner and leaner afterward.

    Damien Seguy

    One final break to get ready for the last stretch of the day.

    Have all the tools and frameworks created an environment where incompetent programmers can still churn out websites and programs?

    Francois Lubbe

    In this talk I will show to the audience that CakePHP is still very much alive and kicking. I will introduce the various community projects, community sites, etc. I will also introduce the changes that the CakePHP project has seen in the last few months. I will then dive into CakePHP 3 and how it is no longer the same CakePHP of old that lagged behind other frameworks. I will show how CakePHP is implementing things like PSR7, PSR3, et.al. Finally I will give some short examples that demonstrate the power of the new CakePHP ORM and how you can use the ORM without using the rest of the framework.

    Walther Lalk

    Ask the speakers any questions regarding today's talks or about web development in general.

    8:00-9:00
    Registration / Welcoming

    Some networking, some coffee, some hype... Get ready for the day.

    This talk educates developers on common security vulnerabilities, how they are exploited, and how to protect against them. We'll explore several of the OWASP Top 10 attack vectors like SQL injection, XSS, CSRF, and more. Each topic will be approached from the perspective of an attacker to see how these vulnerabilities are detected and exploited using several realistic examples. We'll then apply this knowledge to see how web applications can be secured against such vulnerabilities.

    Colin O'Dell

    Talk about what you just learned and harass the speaker for more information over a nice cup of tea.

    During this talk Grant will introduce us to what is most likely the coolest way to search. He will be covering what ElasticSearch is, how you can use it, and why it is so powerful!

    Grant McMullin

    Learn why this new framework has been taking the PHP world by storm. Are you ashamed to admit you're a PHP developer? Have you been using the same old, boring PHP framework for years? Tired of your PHP applications turning into enormous beasts? Maybe you've heard about Laravel but haven't made the effort to dive into it? In this presentation, we'll walk through what makes Laravel an elegant, fun, and exciting framework to make PHP applications that you'll be proud of.

    Ben Edmunds

    We all need a break. Now would be a good time to take one.

    With all the new cool tools available in the Javascript and Web technology world you can build for Desktop, phone and web just using the tools your used to. Though it means you should be api that they can all talk to. This talk will cover the technologies that allow you to use the Javascript and Html knowlege you have to build for Desktop, Phone and Web and tie them into a simple api base backend. Specifically looking at Electron, Ionic, Angular and Laravel.

    Tim Haak

    So we may have heard quite a bit about Progressive Web Apps (or not), making your sites work offline and load really fast. A question often asked is - "I have this app built w/o this awesome PHP Framework, where do I begin?" During this talk, Femi will be taking us through a step by step process for making a platform with a PHP backend a progressive web app, backed with examples of where this has been done.

    Femi Taiwo

    One final break to get ready for the last stretch of the day.

    So you heard that throwing away years of development could end in a possible disaster, but you don't know how to practically go about converting your project into a maintainable Composer/Laravel Project. In this talk I will show you how to go about bootstrapping Laravel into your existing codebase, allowing you to slowly upgrade and move to a well structured, Composer based MVC system, without any downtime.

    Bernhard Breytenbach

    All the speakers will be up for one last time. Get your questions ready!

    Sponsors

    Contact Us

    If you have any questions, comments, or just want to say hello, please do not hesitate to contact us.

    Name
    Email

    Subject

    Your Message

    Location

    Blandford Manor

    106 Hyperion Dr, Randburg, 2156