This is a list of the talks I’ve given and associated links to joind.in where approriate and slides if they are available.
PSR-7 is the new standard for handling HTTP requests and responses in PHP. In this session we’ll examine what this means for our applications now and in the future. By adopting this common interface our existing component frameworks will become even more interoperable and enable us to develop with more shared libraries between applications. Along with standard HTTP messaging formats comes the concept of middleware – separate components operating on requests and responses on the way in and out of the application – so we’ll discuss this too. If you want to see how PHP applications will be built in the future, this session is for you.
ZF3 is the framework that took the opportunity to learn from the previous 4 years of ZF2 and be even better than that! Today's PHP projects are built of components installed via Composer and ZF3's architecture reflects this approach; its core components have also been greatly improved in both usage and performance from older versions of the framework. If you're already running a ZF2 application, you'll be able to upgrade your existing application and there will be some excellent support for doing so – we love it when developers get to use new things. We'll also look at how PSR-7 and middleware has been embraced. If you want to learn what's new in the world of Zend Framework, then this session is for you.
The PHP world is moving fast these days and there’s a lot to keep up with. PHP 7 is a major new development. So what does it mean for software engineers? Find out about the performance improvements and the new features in this latest release of the web’s favourite scripting language. Developers and technical leads who want to get the most from using PHP will benefit from this session.
- Bath Digital Festival, February '16: Slides
Protecting your users' data with just a username and password is no longer satisfactory. Two-factor authentication (2FA) is the primary method of countering the effects of stolen passwords and is easy to implement in your web application. In this session we will discuss what two-factor authentication is, how it works and the challenges associated with it. We will then look how to integrate two-factor authentication into your PHP application's login workflow. We'll consider both YubiKey and Google Authenticator implementations, so you can make your users' accounts more secure.
- php[world] conference, November '15: Reviews Slides
- PHPNW15 conference, October '15: Reviews Slides Video
- PHP Hampshire user group, September '15: Reviews Slides
Slim 3 builds on the PSR-7 HTTP message interfaces and provides useful features such as routing, and a DI container. It's very lightweight and so is an ideal platform for building an API. In this talk, we look at how to use Slim 3 as the basis for your API.
Zend Framework 3 is the framework that took the opportunity to learn from the previous 4 years of ZF2 and be even better than that! Today's PHP projects are built of components installed via Composer and ZF3's architecture reflects this approach; its core components have also been greatly improved in both usage and performance from older versions of the framework. If you're already running a ZF2 application, you'll be able to upgrade your existing application and there will be some excellent support for doing so – we love it when developers get to use new things. If you're a PHP developer with an interest in building excellent, modern applications, then this session is for you.
A lightning talk about PSR-7 where I cover the two things that I think that you need to know about PSR-7.
- PHPNW user group, August '15: Slides
The Dependency Injection pattern separates the creation of objects and their dependencies and is used in many popular frameworks including Zend Framework, Symfony, Laravel & Silex. This session will look at what Dependency Injection is, why you should use it and the benefits it provides. We will also look at how to use a Dependency Injection Container to improve decoupling and make your projects easier to test and maintain.
- SOLIDay Belgrade May '15: Slides VideoReviews
- Glasgow PHP UG Apr '15: Slides
- ZendCon Europe Nov '13: Reviews Slides
- PHPNW Oct '13: Reviews Slides Video
- PHPEM UG Sep '13: Slides
Slim is a PHP micro framework that enables you to write powerful web applications and APIs. In this talk, I will give an overview of the upcoming version 3 of framework and show how you can easily write maintainable applications with it.
We will look at how Slim's middleware system leverages the new PSR-7 HTTP request and response definitions to create easily understandable and flexible applications. We will cover application setup, routing and the relationship between actions and middleware. By the end of the session, you will be equipped to create Slim applications yourself.
Slim is a PHP micro framework that enables you to write powerful web applications and APIs. In this talk, I will give an overview of the upcoming third version of framework and show how you can easily write maintainable applications with it.
How are you supposed to organise your models in an MVC application? What goes where? What is a service class, a mapper or an entity? This talk will look at the components of the model layer and the options you have when creating your models. We’ll look at the different schools of thought in this area and compare and contrast their strengths and weaknesses with an eye to flexibility and testability.
We'll discuss the terminology and also take a look at what a service layer is and see how you use service classes to provide the business logic for your application and hide your persistence code from your controllers. By the end of this session you will be equipped to create excellent, maintainable models in your projects.
- PHP Warwickshire UG March '15: Slides
- ZendCon October '14: Reviews Slides
- PHPSW UG September '14: Slides
- OSCON July '14: Feedback Slides
- DPC June '14: Reviews Slides
Apigility is a project that allows you to easily create a web service without having to worry about the nitty-gritty details. Which details? Well, Apigility will handle content negotiation, error handling, versioning and authentication for you, allowing you to concentrate on your application.
In this introductory talk we look at what Apigility is and how to create a simple REST API that allows us to view a list of music albums, showing how to start using Apigility and how to publish an API using this tool.
- PHPUK Feb '15: Reviews Slides Video
- PHPNW October '14: Reviews Slides Video
- Endpoint September '14: Reviews Slides
- PHPNE Mar '14: Reviews Slides
Zend Framework 2 has matured nicely over the last 6 months, so this talk looked at how it works! In this talk, I walked through the structure of a ZF 2 application. I covered configuration, service location, modules, events, and the MVC system to provide a clear introduction to the key elements of a Zend Framework 2 application.
- PHP Conference Argentina Nov '14: Slides
- De Montfort University Nov '13: Slides
- NomadPHP May '13: Slides
The Dependency Injection pattern separates the creation of objects and their dependencies. This session will look at what Dependency Injection is, how it is integral to Zend Framework 2 and the benefits that it brings. We’ll then look at how Zend\ ServiceManager works and how to make best use of it within your application.
Give yourself a refresher in Zend Framework 2 before taking the certification right here at ZendCon. This tutorial is designed to take developers who are well versed in ZF2 to the point where they are confident in passing the ZFCA exam. This tutorial will refresh your knowledge of some of the more widely used components, but will also cover some edge cases that you may have never used (or forgotten about). I'll also be giving you sample questions along the way, as well as advice on what to expect when you actually sit the exam.
- ZendCon Nov '14: Reviews
This half-day tutorial with Evan Coury introduced ZF2's MVC including the foundation concepts of service manager and event manager. We also looked at routing, bootstrapping, controllers and views.
- ZendCon Europe Nov '13: Reviews
The talk introduced the lifecycle of the debugging processed, covering reproduction of the error, diagnosing the problem, fixing the bug and finally reflecting on how the bug was introduced in the first place. We also looked at ensuring that our PHP environment was set up correctly, how to use var_dump() and xdebug to find and fix problems.
This half-day tutorial introduced ZF2's MVC including the foundation concepts of service manager and event manager. We also looked at routing, bootstrapping, controllers and views.
- php|tek '13: Reviews
This talk looks at automated deployment of new versions of a website. We concentrate on approaches that ensure deploying new code to a live website goes smoothly. I cover organising the source code within a version control system and the mechanics of automatic deployment of a new version to the server. We also look at how we roll back when something goes wrong.
- WooWeb '13: Slides
- ConFoo '11: Reviews Slides
- PHPBNL '11: Reviews Slides
- DPC '10: Reviews Slides
- IPC '09: Reviews Slides
This half-day tutorial with Matthew Weier O'Phinney walked through building a RESTful web service using the ZF2 MVC system.We talked about fundamental ZF2 components, such as service manager and event manager and showed how ZF2′s new modular MVC system works. We also showed how the various aspects of REST, including proper use of HTTP methods, the usage of media types, approaches to content negotiation, and hyperlinking can be implemented within a ZF2 application.
ZF2 introduced a completely rewritten ZendForm component that can simplify form handling within a web application. This talk looked at how to use ZendForm to render a form, validate data with input filters and ease the pain of forms on web pages.
This full-day tutorial with Evan Coury covered ZF2 in detail, starting with key foundation concepts of service manager and event manager. We then looked at routing, bootstrapping, controllers, views, modelling and forms.
This all-day tutorial covered the state of ZF2, key foundation concepts including the autoloader, event manager and dependency injector. We then looked at an actual ZF2 application built with the prototype MVC system.
This talk covers project management tips and tricks that will help get a website developed, approved and live. We look at the documentation, meetings and processes required to deliver a successful website with an emphasis on ensuring that the PM effort matches the job in hand. We also consider how to handle the client’s change requests when they arrive.
This talk looks at some strategies to improve the performance of a Zend Framework application. We look at measuring the performance of a website and then provide some ideas on how to improve the performance.
We look at class loading, before walking through Zend_Db's performance and then cast our eyes over the view to improve performance there. We also look at the caching that you can do to improve your application's performance.
This tutorial looks at some of the next steps that you could take with Zend Framework. We look at how to use plugins and helpers within the dispatch cycle and options on how to organise your model before turning to authentication and access control. We also take a look at the layout specific view helpers and how to add caching to your application.
This talk looks at the goals of ZF2 along with what’s new and what’s different with ZF2 compared to ZF1. We look at the new ways that components are referenced now that namespaces exist along with a look at the new features of individual components that make development easier, with code samples to explain how to do it the new way.
This talk was given at PHPNW '10 with the title of
- DPC '11: Reviews Slides
- ConFoo '11: Reviews Slides
- PHPBNL '11: Reviews Slides
- PHPNW '10: Reviews Slides
This talk introduces Zend_Auth and Zend_ACL. It looks at how the Zend_Auth component can be used to provide login to a website and then how the Zend_Acl component is used to limit which pages a user can access, using lots of code samples.
- PHPWM UG July '10: Slides
This presentation is an introduction to Zend Form, looking at how to use it, especially using decorators.
This all-day tutorial with Matthew Weier O'Phinney looks at a number of Zend Framework components and development strategies that improve every aspect of application lifecycle. Starting with custom Zend_Application resources and bootstrapping techniques for better initialisation, we then look at routing web services using the Zend_Rest components. Whilst looking at domain models, we consider the proper usage of Zend_Form in relation to filtering data, as well as how Zend_Paginator can be used as a generalised data type for model data used in views. Placeholder view helpers, coupled with Zend_Layout and the ContextSwitch action helper, are looked at in detail to provide a rich view system. Finally, we also be covered application-wide concepts such as caching and testing.
This presentation is an introduction to Zend Framework. The slides cover more than that I got through in the talk!
This presentation is an introduction to the Windows Azure cloud computing platform and covers the basics of how one can develop a PHP application that can be deployed to Windows Azure, using the Eclipse tools for Windows Azure and the Windows Azure SDK for PHP
This presentation is an introduction to caching techniques that can be used in a PHP project to increase performance. We look at a variety of caching techniques, showing practical implementations and before and after statistics. Cache storage options available and when you might use one over another will be covered and we also address how to get browsers to cache content for us.
This tutorial is designed for programmers who are well rooted in Zend Framework, and who feel prepared to take the Certification Exam. A 3 hour refresher intended to help you study for taking the exam, and covers the less well known features of the framework you may not have previously thought about.
This presentation discusses Zend Framework’s capabilities and what it has to offer the developer. We explore Zend Framework’s MVC components and look at how they fit together. Finally we build a simple Zend Framework MVC application from scratch so that we can look in detail at the code.
This session was a 1.5 hour joint session where three of us gave a short 20 minute presentation on three different frameworks and then took questions as a panel. I talked on Zend Framework, Ian Christian talked on Symfony and Toby Beresford talked on Code Igniter.
- PHPUK '08: Slides