Technical insights and software architecture

Deep dives into PHP development, Horde Framework evolution, and practical software engineering. Focused on real-world solutions for complex technical challenges.

Core Topics

PHP, Horde Framework, authentication systems, composer workflows, and modern development practices.

Long-form Analysis

Comprehensive technical articles exploring architectural decisions, migration strategies, and lessons learned from real projects.

Code & Community

Open source contributions, framework development, and sharing knowledge with the PHP developer community.

Tag: PHP

  • Web: Why “No Frontend Framework” is the Right Framework for Horde 6

    Part 3 of 4: Architectural Evolution in Horde 6 I really did not want to build another frontend framework. Or adopt one for that matter. When jQuery Mobile became untenable (see Part 1), my instinct was to find the next framework. Something modern, well-maintained, with good documentation and community support. React? I embraced it wholeheartedly…

  • JWT Authentication: Building a Hybrid Model That Actually Works

    Part 2 of 4: Architectural Evolution in Horde 6 In part 1 of the evolution series: The jQuery Problem I discussed frontend concerns – How to move off a dead mobile-only framework towards a mobile-first responsive design and not get caught in the next framework I don’t need. This time we move towards authentication concerns.…

  • Horde’s new Two-Factor API

    New Horde 6 feature: The horde/horde base app’s next release supports two factor logins.Dmitry Petrov is working to release a new One-Time Password module which integrates with this new API. Seemless integration for One Time Passwords. Several years ago I did some downstream development for a customer. They wanted to use One Time Passwords (OTP)…

  • Sunsetting the Maintaina Horde Fork

    by

    in ,

    A few years back I started a downstream fork of Horde to develop features I needed for foss and customer deployments without upstream dependencies. It went successful, was a great learning opportunity and a good exercise in critiquing our old tool chain and approaches. We had some well-known downstream users and contributors but I’d say…

  • PHP: The case for standalone null parameters

    PHP 8.0 introduced null and false as members of union types but disallowed them as standalone parameter types. PHP 8.2 changed that and allowed null as standalone parameter types. What is this good for? Should they extend this to “never” one day? Why do I call standalone null parameters poor man’s generics? What’s a null parameter?…

  • A wicked problem from the past

    In the last few evenings there was great despair. Trying to solve one problem would reveal yet another one. As a result, I hesitated to release some of the changes immediately. I don’t want to make people suffer, having to deal with new improved problems of the day whenever they run an update on their…

  • Unit Testing Horde 6

    Some years ago I reasoned about upgrading unit tests from ancient PHPUnit 4 to then-recent PHPUnit 9.Back then Horde’s unit test suite would use a Horde_Test class inheriting from the actual phpunit test cases. Even then I was fairly certain that this approach was not very practical in the long run.Why extending PHPUnit might be…

  • I want to run horde/components on new PHP

    If you want to run horde-components on a version of PHP which is not yet reflected in packagist.org released versions: me@mine:~/horde/components$ composer config minimum-stability devme@mine:~/horde/components$ composer install –ignore-platform-reqs No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.Loading composer repositories with package informationUpdating dependenciesLock file operations:…

  • Horde 6: Return of the Git Tree

    Over the last few weekends, Horde 6 code has been merged back from the Maintaina fork and from separate contributions to the former Horde development version, “master”. It was time to upgrade the development tool chain. Back in the Horde 5 days, there was a utility called git-tools developed by Michael Rubinsky. It would checkout…