← Back to Blog

Traq 3.9 development update

By Jack ·

Development for Traq 3.9 is well underway, and I'm excited to share some major architectural improvements that are coming to the codebase. This is a significant milestone release that focuses on modernising the internal structure, improving code organisation, and enhancing the developer experience for both core development and plugin authors.

Major Changes in Traq 3.9

This release represents one of the biggest updates to the Traq codebase in years, bringing extensive refactoring and reorganisation to make it cleaner, more maintainable, and more secure. These changes lay the foundation for a modern, sustainable codebase moving forward. Here's what's changing:

View Inheritance System

Views now support inheritance using extendView('layouts/default.phtml'), making it easier to create consistent layouts and reduce code duplication across templates. This brings a more modern, maintainable approach to view rendering.

New Middleware System

Controllers now use a new middleware system to more efficiently, reliably, and securely check each request for authentication and permissions. This provides better security and cleaner separation of concerns in the application architecture.

Response Objects

Controllers are now returning Response objects instead of strings and arrays. This provides a more standardised and flexible way to handle HTTP responses, making the codebase more predictable and easier to work with.

Codebase Reorganisation

All core files are moving out of the vendor/traq directory and into the src directory. Additionally, plugins are being moved to data/plugins, themes to data/themes, and languages to data/locale. This creates a cleaner, more intuitive project structure.

Important for Plugin & Theme Developers

Due to the extensive modernisation of the codebase, Traq 3.9 introduces breaking changes that are not backwards compatible for plugins and themes. Plugins with controllers will need to be updated to return their own Response objects. Themes will need to be updated to work with the new view inheritance system and relocated to the new data/themes directory. If you maintain a Traq plugin or theme, please review your code and make the necessary updates to ensure compatibility with version 3.9.

Join the Conversation

These are significant architectural improvements, and I want to hear your feedback. If you have questions about these changes or suggestions for future development, head over to the community discussions on GitHub.

Discuss on GitHub