Best practices in PHP

Classes, interfaces, dependency injection & OOP best practices, by Ryan Weaver

Recorded @ Web Summer Camp 2015

Maybe you already understand the basics of object-oriented programming: classes, sub-classes and methods. In this workshop, we'll take you a step further by building real code to leverage the *really* neat stuff, like interfaces, dependency injection and patterns like composition inside of Symfony. Let's go!

Setting up developer environment:
You can follow the workshop better with the virtual appliance configuration used at the event. Check out the main repo and follow the instructions. In a nutshell, you should be able to create the Vagrant box with:

$ git clone https://github.com/netgen/summercamp-2015.git
$ cd summercamp-2015
$ git submodule init
$ git submodule update
$ vagrant up --no-provision

Then add all domains in the hosts as explained in the README.

To prepare this workshop, you should then:

$ vagrant ssh
(vagrant)$ cd /var/www/summercamp/
(vagrant)$ ./run.sh oop

You should have the workshop accessible in your browser at http://oop.phpsc/. If you have problems, check the FAQ. If you still have problems, you can fall back to using only workshop repo listed here.

Code like a pro, by Stefan Priebsch

Recorded @ Web Summer Camp 2018

No matter how experienced you are as a developer, you can always improve. This workshop will teach you advanced coding techniques through live coding. First up, you will solve some interesting coding problems you will have defined (it is only live if nobody knows the problem beforehand). In the second segment, you will write code in a test-driven fashion. With Stefan, you will touch on domain-driven design, test-driven development, clean code and SOLID principles, and might even throw in a few design patterns. Every question will be answered!
To fully participate in the workshop, you should have a good working knowledge of PHP, at least basic OOP skills, and be familiar with the basics of PHPUnit.

Clean code, by Tobias Schlitt

Recorded @ Web Summer Camp 2016

You want a more maintainable and extensible source code? Future projects should already be developed in this way? "Clean Code" forms the basis to achieve that. This talk gives an introduction to the clean code principles and shows how clean code can be introduced into your projects step by step.

Web application security, by Anna Filina 

Recorded @ Web Summer Camp 2018

Web security is an ever-changing landscape. Protect your infrastructure and your sensitive data with this full-day workshop. You will start with the theory behind application hardening and then go through a multitude of common vulnerabilities, along with concrete examples and solution in PHP. You will finish with an interactive risk assessment session.

Loose coupling in practice, by Jakub Zalas 

Recorded @ Web Summer Camp 2015

Practices like DDD are becoming so popular in the PHP world that we tend to forget about the most basic forces in object oriented design - coupling and cohesion. This tutorial will remind you how important loose coupling is, what are the risks carried by tightly coupled software, and how to write loosely coupled code in the context of Symfony framework.

Setting up developer environment: 

You can follow the workshop better with the virtual appliance configuration used at the event. Check out the main repo and follow the instructions. In a nutshell, you should be able to create the Vagrant box with:

$ git clone https://github.com/netgen/summercamp-2015.git
$ cd summercamp-2015
$ git submodule init
$ git submodule update
$ vagrant up --no-provision

Then add all domains in the hosts as explained in the README.

To prepare this workshop, you should then:

$ vagrant ssh
(vagrant)$ cd /var/www/summercamp/
(vagrant)$ ./run.sh loose

You should have the workshop accessible in your browser at http://loose.phpsc/. If you have problems, check the FAQ. If you still have problems, you can fall back to using only workshop repo listed here.

This site uses cookies. Some of these cookies are essential, while others help us improve your experience by providing insights into how the site is being used.

For more detailed information on the cookies we use, please check our Privacy Policy.

  • Necessary cookies enable core functionality. The website cannot function properly without these cookies, and can only be disabled by changing your browser preferences.