Why Carve markup Changes How You Author Rich Text in Shopware 6
One Source, Ten Surfaces Every Shopware shop hits the same wall eventually. You need rich text somewhere the core doesn’t give you a WYSIWYG – a category landing blurb, a brand story on the...
View ArticleCakePHP 5.4 is around the corner
Table of Contents Installing the RC ORM: new default eager loading strategy ORM: transaction commit callbacks finally fire correctly ORM: stricter entity class checks Catch it at static-analysis time...
View ArticleCakePHP Reactions: 👍, ❤️, or 🚀
Table of Contents Where this plugin fits Installation The database model Attach the behavior Typed reactions with enums Configure public aliases Render a reaction widget Choose a request strategy...
View ArticleCakePHP is now fully generics-able
Table of Contents What actually changed 1. The core became generic 2. The tooling caught up The last gap One LSP gotcha worth remembering The result For years, running PHPStan at level 8 on a CakePHP...
View ArticleA powerful composable menu builder for CakePHP
Table of Contents The pipeline: build, resolve, render Building: PHP, arrays, or a database row Tree manipulation: reorder, move, merge, split Named menus and the helper The rest of the helper...
View ArticleRFC 9116: security.txt for your PHP apps
Table of Contents The problem: a locked door with no doorbell What security.txt is (RFC 9116) Why it matters: lower the barrier, route to the right channel Our take: a CakePHP middleware that never...
View ArticleCakePHP Fixture Factories 2.0
Table of Contents TL;DR Why we wanted to modernize What v2 looks like Entry and terminals State, layered three ways Lifecycle hooks Associations: for(), has(), with() Sharing a parent across branches...
View ArticleCakePHP AuditStash 2.0: Beyond CRUD
Table of Contents Log anything, not just CRUD A real admin dashboard Native Slack and Discord alert channels Lifecycle hooks for the monitor A real export workflow Security: deny-by-default admin...
View ArticleACL Is Back in CakePHP
Table of Contents And This Time It Grew Up A complete rewrite, on purpose A normalized schema, eight tables deep A real admin UI, not a stale admin skin Sync: permissions that keep up with your code...
View ArticleWorking with IPs in CakePHP
Table of Contents The problem: env(’REMOTE_ADDR’) The fix: ServerRequest::clientIp() + Middleware Step 1: Add a TrustedProxyMiddleware Step 2: Configure trusted proxy IPs Multiple proxies in the chain...
View ArticleTOML Support in PHP
Table of Contents Why Consider TOML? TOML Syntax Primer Format Comparison: TOML vs YAML vs NEON Library Features Error Recovery Working with the AST Real-World Use Cases Using TOML Inside Framework...
View ArticleData Governance in CakePHP with Bouncer and AuditStash
Table of Contents The Problem: Who Changed What, and Should They Have? Meet the Plugins AuditStash: The All-Seeing Eye Bouncer: The Gatekeeper The Power of Combination Scenario: Financial Application...
View ArticleDTOs at the Speed of Plain PHP
Table of Contents The Reflection Tax What If We Just… Generated the Code? Introducing php-collective/dto: The Code-Generation Approach Why Another DTO Library? Basic concept What You Get History...
View ArticleDisplaying maps in (Cake)PHP
Table of Contents The Google Problem The Solution: A Multi-Provider Approach Interactive Maps with Leaflet Basic Usage Tile Provider Freedom Free Tile Provider Comparison Advanced Features Static Maps...
View ArticleCakePHP Tips – 2026 Part 1
Table of Contents Compact CLI output Djot Templating Why Djot instead of Markdown? Whole Templates using DjotView Partial Templates Code Snippets and Small Elements Compact CLI output If you are a...
View ArticleDjot PHP: A Modern Markup Parser
Table of Contents What is Djot? Use Cases Feature Highlights Rich Text Formatting Smart Typography Tables with Alignment Task Lists Divs with Classes Spans with Attributes Code Blocks Captions...
View ArticleCakePHP File Management Solution
Table of Contents Meet the New FileStorage Plugin Enter: The Modern FileStorage Plugin What Makes It Different? Store Anywhere (Seriously, Anywhere) Set It and Forget It Smart Architecture: One Table...
View ArticleTestHelper for your CakePHP apps
Table of Contents The TestHelper plugin Cake Linter Browser test runner Reverse URL Lookup Compare models, DB tables and fixture (factories) Migration Re-Do tool Summary More than 5 years ago I...
View ArticleCakePHP Tips Autumn 2025
Table of Contents Healthchecks / Uptime Audit log your tables Healthchecks / Uptime With increasing complexity of apps and more and more requirements on your server and tooling, it can be easily...
View ArticleFresh expert tips on CakePHP IDE and tooling best practices
You most likely have read my previous posts that go into detail regarding CakePHP and how to be most efficient in the IDE, as well as most "type safe" using PHPStan and static analyzing. See e.g. here....
View Article