PHP middleware

Middleware architecture in PHP with Zend Expressive, by Marco Perone and Stefan Maraspin

Recorded @ Web Summer Camp 2017

Middleware has recently become a must-know concept for PHP developers. With the advent of PSR-7, which standardized HTTP messages, many frameworks embraced and fostered the spread of such an approach making it easier for developers to create performant, composable, and customizable software architectures.
In this workshop, you will incrementally develop a RESTful API using Zend Expressive, exploring its components and its workflow. You will discover how the framework allows to easily create simple and well organized code, exploiting open source libraries and middleware layers which could be reused for other projects, even with other frameworks!

Writing API clients with HTTPlug, by David Buchmann & Márk Sági-Kazár

Recorded @ Web Summer Camp 2016

PSR-7 defines common interfaces for HTTP requests and responses but the libraries that need to send HTTP requests need more than that. HTTPlug defines an interface for HTTP clients and provides adapters for existing clients like Guzzle, as well as a plugin system operating directly on PSR-7. This tool chain allows building API clients that do not depend on a specific HTTP client at all. This workshop by the two of the main authors of HTTPlug will cover: * Working with PSR-7 request and response * Using HTTPlug and the MessageFactory * Bootstrapping clients explicitly or with Puli * Using the PHP-HTTP plugin system * Strategies for writing an API client.

Knowing your state machines, by Tobias Nyholm 

Recorded @ Web Summer Camp 2018

Web development is not just about delivering a response, it is also about writing good code. The state pattern will help you move complexity from being all over your code to one or more state machines. Tobias' workshop will introduce state machines, show you how to identify uses of them, and implement them in your Symfony application in an object-oriented manner using the Symfony Workflow component.

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.