Another round of refactoring has been conducted to improve the structure of Tuskfish and to make it easier to read and to test. No new functionality has been added.
Changelog:
The larger methods have been broken down into smaller logical components, to make the code more readable and easier to test.
Implemented an admin controller class to clean up the admin controller script and allow reuse for common operations.
Extended bad login count and retry delay to the two-factor Yubikey version of the login script.
Converted rights to a trait to allow for reuse across system.
Error messages have been improved to give a more precise indication of what went wrong.
Tuskfish has been substantially refactored to improve its internal structure, and to make it easier to extend. Please note that due to changes in the database schema version 1.1 is not compatible with previous versions.
Changelog:
Static methods have been largely eliminated in favour of dependency injection.
Some reassignment of methods between classes, to improve compliance with the single responsibility principle.
Many methods and variables renamed to better indicate function and make code more self-describing.
Variables, properties and database columns have been converted to camel case for consistency.
Class and method documentation improved.
Restored manual type checking in methods to reinforce the strict types directive.
Modularised the structure to facilitate development of discrete expansions.
Reverted to Bootstrap-fileinput V4.4.7 due to issues with FontAwesome.
The baseline release of the Tuskfish content management system is now available for download. It requires PHP 7.2 or higher, with the sqlite3, PDO, pdo_sqlite, and gd extensions. Please refer to the installation guide and user manual.