An elderly wizard with a long white beard and pointed hat sits at a desk, surrounded by books and candles, intently studying ancient scrolls and manuscripts.

This post covers refactoring code related to the CakePHP Tree Behavior and slugs in Willow CMS. Originally, both Articles and Tags had duplicated code for tree operations. This was refactored into the OrderableBehavior, making the code reusable and testable. Similarly, slug management, previously scattered across multiple locations, was consolidated into the new SlugBehavior. This behavior handles slug generation, validation, and history, simplifying the ArticlesTable and TagsTable classes while adding features like automatic slug generation from titles, custom slugs, and slug history tracking for better SEO. This refactoring significantly reduced code duplication and improved maintainability and testability.


In this technical deep-dive, we explore how combining PHP traits and magic methods can dramatically simplify image URL generation in a CMS. The article describes the implementation of ImageUrlTrait, a clever solution that replaces verbose, error-prone code with a clean, maintainable approach. By leveraging PHP's trait mechanism for code reuse and magic methods for dynamic property handling, the solution allows developers to easily access different image sizes through intuitive properties like $image->smallImageUrl or $image->largeImageUrl. The transformation from complex, nested HTML helper calls to a streamlined element-based approach demonstrates significant improvements in code readability and maintainability.


Page 1 of 1, showing 2 record(s) out of 2 total

About

Welcome to willowcms.app. This site uses Willow - a content management system I'm building in the open. Here you'll find development updates, feature highlights, and guides on using Willow for your own sites.

Featured posts

Elsewhere

  1. GitHub

Feeds

  1. RSS Feed