PHP design patterns

Practical design patterns in PHP, by Hugo Hamon

Recorded @ Web Summer Camp 2018

Established in the 70's by the "Gang of Four", Design Patterns are generic reusable abstract solutions to solve often recurring problems in software design. Object-oriented frameworks like Symfony leverage them to design robust, extensible, and testable code, letting developers build their applications on top of solid foundations. In this workshop, you will (re)discover useful patterns like Builder, Factory Method, Abstract Factory, Composite, Decorator and Adapter on the first and Flyweight, Memento, Strategy, Template Method, Mediator or Visitor on the second day of the workshop.

Basic CQRS and Event Sourcing with Prooph, by Marco Pivetta

Recorded @ Web Summer Camp 2017

CQRS and Event Sourcing are challenging if approached for the first time, and especially if done from scratch. Marco will help you with installing, configuring, and getting Prooph to run. You'll build a fairly simple event-sourced aggregate in order for you to understand how to organize things inside CQRS/ES stack, and how to massively simplify some problems that usually cause very big performance issues when put at scale.

Lean and functional domain modelling, by M. Duarte 

Recorded @ Web Summer Camp 2017

Rich domain models, inspired by imperative objective-oriented approaches, dominate our industry. But lean domain models are a compelling alternative. By separating behaviour and state, lean models offer an effective way to represent units of behaviour. This session explores how to represent a lean domain model using a functional programming paradigm. In this workshop video, you'll explore how types can be used as a natural way to represent business constraints alongside smart constructors and functional validation. You will also learn how type properties can be modelled with property based testing, how behaviour can be better composed, how to keep domain behaviour isolated from application state, and much more.

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.