v37.6.0 – Various Improvements


The release of Qobrix v37.6.0 brings a variety of developer-oriented improvements throughout the system.


Various Improvements

We are slowly making our way through the CakePHP 3.6 upgrade.  More than a half of our plugins have been upgraded, migrated, and fixed, as well as some chunks of the main Qobrix codebase has been improved and prepared.  As a side effect of this process we are bringing a variety of fixes and improvements, which mostly affect the Qobrix developers and system integrators.  Some of the improvements in this release are:

  • Improved composer dependency manager configuration.  We now have a new cakephp-composer-dev repository, which makes it a lot easier to control development requirements.
  • Improved TravisCI continuous integration configuration.  We have added PHP 7.3 to the build matrix, added support for PHPStan enforcement (which is now happening gradually), moved away from sudo setup, etc.
  • Improved PHPUnit and PHP CodeSniffer configuration.  We now have better control of which files and directories need to be tested, which need to be ignored, and how the tests are done.  That includes avoiding annoying false positives.
  • Improved Git version control configuration, in particular for the commonly ignored files.  As a side effect of the configuration changes, we are not handling SVG images a lot better.  SVG images are tricky, because their purpose is binary, while the format is text (XML-based).
  • Improved loading of models in a variety of places.  Previously we often assumed that model and controller names are always the same.  Now we don’t, which allows for some more flexibility in reusing the functionality – in particularly so from the CakePHP plugins.  (We are working on an exciting feature which will utilize this – that’s how we found out).
  • Improved file locking.  We are now handle directories and special characters in file paths a lot better.
  • Lots and lots of small cleanups throughout the codebase.

Dynamic Templates

In this release we have iterated over the Dynamic Templates functionality.  It is now possible to have more control over how Dynamic Templates are working with the previews, downloads, and generated results.  We are now rolling out the support for more flexible flow of the Dynamic Templates, placeholders in URLs, placeholder highlighting in the templates, and more.