v37.2.0 – CakePHP App, Dotenv, and More


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


CakePHP App Skeleton

Qobrix is built on top of the CakePHP framework, which provides a number of libraries, components, and best practices.  The current version of the CakePHP framework on which Qobrix is based is v3.5.  With the PHP 5 to PHP 7 switch over out of the way, we are now preparing the Qobrix codebase for the CakePHP 3.6+ upgrade.

While we keep the main framework and the plugins pretty up-to-date, there is one part of the framework that we have been ignoring for a while.  It is the CakePHP App Skeleton.  In fact, since the initial release of Qobrix, we haven’t updated the application skeleton to any new versions.  Instead, we were developing our own functionality and only partially porting some of the features and fixes from the mainstream vendor.

In this release, we have started the process of a more generic update of the Qobrix skeleton to the latest and greatest CakePHP App.  So far, we have managed to merge in the updates all the way through from v3.0.0-RC2 to v3.2.0.  These changes should not affect the performance of the application and should have no impact on the end-users.  Instead, these should provide an easier and simpler upgrade process for later releases and lay the foundation for a tighter integration and collaboration between Qobrix and the rest of the CakePHP.

Dotenv Switch

Qobrix uses the .env files heavily in order to provide an easy and flexible way of configuring a particular environment (test, staging, production, etc).  Since the early days, we have been using vlucas/phpdotenv library for this functionality.  Recent versions of the CakePHP framework introduced support for the .env files as well, albeit with a different library providing this functionality.  In order to keep things consistent, in this release we have switched from vlucas/phpdotenv to josegonzalez/php-dotenv, which is used by CakePHP and a few other projects.


As always, we have packed a variety of fixes and improvements throughout the system.  Some of these are:

  • Another iteration of the Dynamic Templates functionality.
  • Improvements and increased test code coverage, especially around the conversion process used in the CRM systems.
  • Fixed a regression with “belongs to Group” permissions not always providing sufficient access.
  • Improved git integrations, with updates to both git attributes configuration and ignore patterns now including some common patterns.
  • Fixes for issues identified by PHPStan, coding style improvements, documentation fixes, and more.