James is a consultant, trainer and developer at Roave. He is a prolific contributor to various open source projects and is a Zend Certified Engineer. He also founded the UK based PHP Hampshire user group and PHP South Coast conference.
Best practices for Crafting High Quality PHP Apps
This prototype works, but it’s not pretty, and now it’s in production. That legacy application really needs some TLC. Where do we start? When creating long lived applications, it’s imperative to focus on good practices. The solution is to improve the whole development life cycle; from planning, better coding and testing, to automation, peer review and more. In this tutorial, we’ll take a deep dive into each of these areas, looking at how we can make positive, actionable change in our workflow.
This workshop intends to improve your skills in planning, documenting, some aspects of development, testing and delivery of software for both legacy and greenfield projects. The workshop is made up of multiple exercises, allowing dynamic exploration into the various aspects of the software development life cycle. In each practical exercise, we'll brainstorm and investigate solutions, ensuring they are future-proofed, well tested and lead to the ultimate goal of confidence in delivering stable software.
Phil is director of Flax + Teal Limited, a web, data and open source consultancy, and part of the NI-based Avata Industries open source business group.
Phil has spoken on Kubernetes and his Kubernetes-based projects at the Open Data Science Conference 2017 (London), the NI Civil Service conference 2017, PHPBelfast and a number of Belfast-based events, and worked with the London-based Open Data Institute, among other clients, on these technologies as part of Project Lintol. Additionally, he delivers commercial training courses on Python for data science, numerics and research.
Introduction to PHP on Kubernetes
Microservice architectures and containerization are regularly talked about, but how do we put this all together in a container-focused infrastructure?
PHP systems need to stay up, running and be smoothly linked from developer to deployment. Kubernetes has risen to be the industry-leader in container orchestration, providing a consistent means of deploying, scaling, updating and interrogating your web-based systems. Being container-driven from the ground-up, it helps realize the gains containerization offers right through your lifecycle: reproducibility, cloud-independence, immutable environments, managed self-service access.
This tutorial will be framed as a stepped deployment using open source profiles for deploying a Laravel system, termed Buckram. This will involve:
- setting up a generic Kubernetes system
- deploying Laravel onto it using Helm charts (versionable infrastructure description), with Postgres, Redis and workers
- employing a Gitlab repository for CI/CD for building container images
- managing per-deployment configuration and environment variables
- process health, logging and scaling
- using the
artisanCLI tool for scheduled and one-off jobs on the cluster (as time permits)
Chris Hartjes has worked on web applications of all shapes and sizes since 1998, ranging from catalogs of CD compilations for professional DJs to portal pages for large US cable television providers. Chris gives back to the programming communities that have helped him by mentoring, speaking at conferences, and by organizing conferences. As the author of two books on writing testable PHP code and using testing tools, he believes testing and automation are secret weapons organizations can use to deliver high-quality applications quickly.
Monday to Thursday he works for Mozilla testing web services the Firefox browser talks to. On Fridays he works on expanding his Grumpy Learning info-product empire. In the evening he gets yelled at by his wife for playing with his phone too much.
He works from his basement office in the snowy wilds of Canada.
Learn To Test Like A Grumpy Programmer
What if you could learn how to write tests from someone who has been using them for a long time and also knows how to explain it in a way that cuts down on the fear and anxiety while teaching you what you need to go to get started immediately?
In this tutorial, Chris will teach the basics of writing tests using PHPUnit. Topics covered include:
- high-level discussion of the role of testing
- the Arrange-Act-Assert pattern
- what a PHPUnit test file looks like and where to locate them
- test doubles and when to use them
- strategies for building test scenarios
Arne Blankerts has created solutions far ahead of the times already years ago. He helps to create sustainable software and tailored infrastructures, and finds security issues with magic intuition. In his free time, he reads fantasy novels and likes to cook.
Efficient Domain-driven Design: Event Storming Workshop
Event Storming is an emerging group modeling technique using sticky notes and verbal communication that is not only extremely efficient, but also easy to learn, and fun to do. This workshop introduces you to Event Storming with a strong focus on process design. Rather than talking a lot of theory, we will quickly dive into a group exercise and start modeling a real-life business problem. We will not stop there, however, but also turn the model into working PHP code using Domain-driven Design techniques and patterns.