Common PHP project library https://railgun.sh/index
Find a file
flashwave 4a40868f58 Added generic IntegerBaseConverter implementation and merged Base62 class with XNumber.
The Base62 implementation was always a bit misleading because both UriBase64 and Base32 handle any binary data whereas Base62 was only for converting integers.
This shake-up should lessen that confusion.
2024-07-31 19:05:41 +00:00
bench Imported into new repository. 2022-09-13 15:13:11 +02:00
docs Imported into new repository. 2022-09-13 15:13:11 +02:00
src Added generic IntegerBaseConverter implementation and merged Base62 class with XNumber. 2024-07-31 19:05:41 +00:00
tests Added generic IntegerBaseConverter implementation and merged Base62 class with XNumber. 2024-07-31 19:05:41 +00:00
tools Allow including Index through Composer. 2023-07-21 18:04:29 +00:00
.gitattributes Imported into new repository. 2022-09-13 15:13:11 +02:00
.gitignore Allow including Index through Composer. 2023-07-21 18:04:29 +00:00
composer.json Updated to PHP 8.3 and added cache provider requirements to the README. 2024-07-31 18:12:46 +00:00
composer.lock Updated to PHP 8.3 and added cache provider requirements to the README. 2024-07-31 18:12:46 +00:00
index.php Allow including Index through Composer. 2023-07-21 18:04:29 +00:00
LICENCE Bump LICENCE year. 2024-02-06 23:52:46 +00:00
phpdoc.xml Imported into new repository. 2022-09-13 15:13:11 +02:00
phpstan.neon Imported into new repository. 2022-09-13 15:13:11 +02:00
phpunit.xml Allow including Index through Composer. 2023-07-21 18:04:29 +00:00
README.md Updated to PHP 8.3 and added cache provider requirements to the README. 2024-07-31 18:12:46 +00:00
TODO.md Updated TODO list. 2023-11-09 13:55:30 +00:00
VERSION Added generic IntegerBaseConverter implementation and merged Base62 class with XNumber. 2024-07-31 19:05:41 +00:00

Index

Index is a common library for my PHP projects.

It provides a number of components that I would otherwise copy between projects (and thus become out-of-sync) as well as a number of quality of life things on top of standard PHP stdlib functionality.

Requirements and Dependencies

Index currently targets PHP 8.3 with the mbstring extension installed.

Index\Cache\Memcached

Requires either the memcached or memcache extension, if both are installed the memcached based implementation will be used. For full functionality you will want the memcached implementation. The way each implementation stores data is NOT guaranteed to be compatible, please do not mix them.

Index\Cache\Valkey

Requires the redis extension. Valkey is the name of the Linux Foundation's fork of Redis.

Index\Data\MariaDB

Requires the mysqli extension. mysqlnd is recommended as the underlying driver, but libmysql should work without a hitch. This driver also works for MySQL as the dependencies would suggest, but you should consider using MariaDB instead of possible.

Index\Data\SQLite

Requires the sqlite3 extension.

Versioning

Index versioning will mostly follow the Semantic Versioning specification v2.0.0, counting dropped support for a minor PHP version (e.g. 7.1 -> 7.2 or 7.4 -> 8.0) as a reason to increment the major version. Previous major versions may be supported for a time with backports depending on what projects of mine still target older versions of PHP.

The version is stored in the root of the repository in a file called VERSION and can be read out within Index using Index\Environment::getIndexVersion().

Contribution

By submitting code for inclusion in the main Index source tree you agree to transfer ownership of the code to the project owner. The contributor will still be attributed for the contributed code, unless they ask for this attribution to be removed. This is to avoid intellectual property rights traps and drama that could lead to blackmail situations. If you do not agree with these terms, you are free to fork off.

Licencing

Index is available under the BSD 3-Clause Clear License, a full version of which is enclosed in the LICENCE file.