Laminas Framework Series: Mezzio vs. MVC

In the fourth post of the Laminas Framework Series I want to compare middlewares using Mezzio and the MVC framework by Laminas. The Laminas Framework, despite its relatively new, it is derived as a full-fledged derivative and successor to the Zend Framework, firmly anchoring it in the context of PHP-centric enterprise software development. Mezzio, once … read more …

Readonly Classes in PHP: A Useful Addition to Readonly Properties

Last year around this time, I asked the question whether readonly properties replace getters. I gave a short overview about “best practices” on object oriented programming, summarized the idea of immutable objects and demonstrated how readonly properties helps writing better and more robust code with PHP, before I finalized the blog with my opinion how … read more …

What’s new in PHP 8.3

TL;DR: PHP 8.3 will be released on November 23, 2023. It will add typed class constants, a new helper function json_validate to check json payloads and some minor improvements for Randomizer class, reading ini configuration and more. The PHP team will release the new minor version of PHP to the end of this month. The … read more …

How and When to Use PHP’s Pure Intersection Types

In this publication of my PHP related blog series, I want to address Pure Intersection Types in PHP. In the previous blogs of the series, I addressed different features added to PHP with PHP 8 and PHP 8.1. The first blog was about readonly properties, the second one focused on Enums and the third and … read more …

Workation Diary II: Art and Architecture

The second blog of the Workation Diaries series is about Barcelona’s beatiful architecture and art. For the next three month, I will stay and work in Barcelona, work remotely as a freelancer and get as much insights of the city as possible. In the first post, I addressed my workation plans, the preparation and my … read more …

Vagrant Getting Started

The last few days, I was busy getting started with Vagrant. Vagrant is a nice tool to create a development environment to ‘just start’ developing. New team members, for instance, do not need to set up, but can simply run ‘vagrant up’ to have a fully configured, ready-to-start environment. Personally, in my case, it is … read more …

Traversing a 2D Matrix

The new years first blog is about algorithms – more precisely: 2 dimensional matrices. I want to explore the ways how to find connected 1’s (so called islands) in a 2D array. This problem is also known as the “find the number of islands” or “connected components in an undirected graph“. Disclaimer: I generally use … read more …

Kotlin Cheat Sheet

For a project I was involved in at short notice, I had to become familiar with the Kotlin programming language. Before starting to code, I wanted to get familiar with the syntax and the language itself. As writing on a paper is the best way to learn (for me), I created the following Cheat sheet. Enjoy! … read more …

Item-Based Collaborative Filtering

Für ein Projekt an der Uni beschäftige ich mich seit längerer Zeit mit Empfehlungssystemen (Recommender Systems), welche i.d.R. aus Collaborative Filtering und Content-Based Recommendation Techniken bestehen. In diesem Blogpost möchte ich auf die Collaborative Filtering-Komponente, genauer auf das Item-Based Collaborative Filtering eingehen. Das Item-Based Collaborative Filtering wurde ursprünglich von Amazon entwickelt. “Traditionelles” Collaborative Filtering, besser … read more …