In order to better understand our install base and end user environments, a plugin has been created to send those stats back to a Joomla controlled central server. No worries though, no identifying data is captured at any point, and we only keep the data last sent to us.
- PHP 8.1+
- PDO with MySQL support
- MySQL
- Composer
- Apache with mod_rewrite enabled and configured to allow the .htaccess file to be read
- Clone this repo on your web server
- Create a database on your MySQL server
- Copy
etc/config.dist.jsontoetc/config.jsonand fill in your database credentials - Run the
composer installcommand to install all dependencies - Run the
bin/stats installcommand to create the application's database
The DisplayStatisticsController optionally supports additional configuration values which affect the application's behavior, to include:
- Raw Data Access - The API supports requesting the raw, unfiltered API data by sending a
Joomla-Rawheader with the API request. The value of this must match thestats.rawdataconfiguration key.
Additionally, the application behavior is affected by the following configuration settings:
- Error Reporting - The
errorReportingconfiguration key can be set to a valid bitmask to be passed into theerror_reporting()function - Logging - The application's logging levels can be fine tuned by adjusting the
logconfiguration keys:log.level- The default logging level to use for all application loggerslog.application- The logging level to use specifically for themonolog.handler.applicationlogger; defaults to thelog.levelvaluelog.database- The logging level to use specifically for themonolog.handler.databaselogger; defaults to thelog.levelvalue (Note: ifdatabase.debugis set to true then this level will ALWAYS correspond to the debug level)
- Joomla's Jenkins server will automatically push any commits to the
masterbranch to the production server- TODO - Future iterations of this setup should require a passing Travis-CI build before deploying
- Because of the use of custom delimiters in the database schema (which are not parsed correctly with PDO), database migrations are not automatically executed
- If a change is pushed that includes updates to the database schema, then the merger needs to log into the server and run any migrations required; the application's
database:migratecommand will take care of thisphp /path/to/application/bin/stats database:migrate
- Don’t put any triggers inside the migrations, those should be added to the main
etc/mysql.sqlschema file then manually run on the database using your preferred database management tool



