About:

The website is a blog authored by Dominik Chrástecký.

Website:

Subscribe to RSS:
The blog post explores unconventional PHP tricks, particularly focusing on modifying readonly properties, changing enum values, and manipulating internal object properties using ArrayObject. It explains how readonly properties, wh...
The blog post discusses how to enhance PHP applications by offloading compute-heavy tasks to Go using PHP's Foreign Function Interface (FFI). It explains the performance limitations of PHP for CPU-bound tasks and how Go, being a c...
Angular's SSR capability allows for improved SEO by enabling direct rendering of metadata in HTML, with practical coding examples for implementation.
The blog post discusses a new feature in PHP 8.5 that allows closures to be used as constant expressions, enabling them to serve as default parameter values and attribute values. This change simplifies code by eliminating the need...
The blog post discusses the new pipe operator introduced in PHP 8.5, which enhances code readability and expressiveness when dealing with nested function calls. It explains how the pipe operator allows chaining results from one ex...
The article discusses several smaller yet significant features introduced in PHP 8.5 that may not be headline-grabbing but are important for developers. Key changes include the mandatory inclusion of OPcache, the ability to declar...
PHP 8.5 adds support for final properties using constructor promotion, allowing the declaration of final properties and omitting the visibility modifier if final is included. The author expresses a preference for explicit over imp...
PHP 8.5 introduces a new function, grapheme_levenshtein(), that calculates the Levenshtein distance between strings with proper UTF-8 support. This function operates on graphemes, not bytes or code points, making it especially use...
PHP 8.5 introduces support for attributes on non-class constants, allowing annotations on compile-time constants. The ReflectionConstant class has been updated with a new method, getAttributes(), to support retrieving these annota...
PHP 8.5 introduces the new #[NoDiscard] attribute to mark a function or method's return value as important. It is used to prevent accidental omission or unnoticed errors. The warning is triggered immediately before the function ca...
The text is a guide on creating an encrypted Matrix bot using Golang. It covers the process of setting up the bot, sending unencrypted and encrypted messages, and verifying the session for secure communication.
ActivityPub is a protocol for federated social media, with strong points like interoperability and human-readable JSON, but also critical flaws such as undefined behavior and privacy issues. It needs a second iteration to eliminat...
The article discusses the issues with using PHPStan and the official AWS SDK for PHP, and introduces a package created to address this problem. It explains how the package works, the process of making the Result class generic, and...
The blog discusses the use of transpiling to write code using the latest PHP features and then transpile it down to the target PHP version. It also explains how to downgrade your Composer package to support older PHP versions.
The text discusses the creation of a configurable calendar 3D model using OpenSCAD, a 3D modeling software with impressive scripting abilities. The model is highly user-friendly with multiple configurable options, including select...
The text explains how to install packages that persist across system upgrades on the Steam Deck using Nix, a package manager that uses declarative definitions for software. It provides step-by-step instructions for installing Nix ...
The article discusses the addition of lazy objects to PHP 8.4, allowing delayed initialization until necessary, particularly useful for I/O operations. It explores the implementation of lazy deserializer, deserialization of comple...
The article discusses a method to ensure type safety in ng-template in Angular by creating a type assertion guard directive. It explains the problem of losing TypeScript's type safety when using <ng-template> that accepts paramete...
Feature flags, also known as feature toggles, allow you to enable or disable specific features or code paths at runtime without deploying new code. Unleash is an open-source tool for managing feature flags efficiently, offering bo...
The text discusses the limitations of SQLite for modifying tables and the issue with foreign key checks in a Doctrine project. It also provides a solution using PHP 8.4's new property hooks.