- Improve the error handling when the user tries to open a directory with the pure PHP reader.
- Improve the typehints on arrays in the PHPDocs.
- Resolve warnings when compiling the C extension.
- Fix various type issues detected by PHPStan level. Pull request by LauraTaylorUK. GitHub #160.
- Replace runtime define of a constant to facilitate opcache preloading. Reported by vedadkajtaz. GitHub #134.
- Resolve minor issue found by the Clang static analyzer in the C extension.
- Fix a
TypeError
exception in the pure PHP reader when using large databases on 32-bit PHP builds with thebcmath
extension. Reported by dodo1708. GitHub #124.
- When using the pure PHP reader, unsigned integers up to PHP_MAX_INT
will now be integers in PHP rather than strings. Previously integers
greater than 2^24 on 32-bit platforms and 2^56 on 64-bit platforms
would be strings due to the use of
gmp
orbcmath
to decode them. Reported by Alejandro Celaya. GitHub #119.
- The
maxminddb
extension is now buildable on Windows. Pull request by Jan Ehrhardt. GitHub #115.
- Fixes for PHP 8.0. Pull Request by Remi Collet. GitHub #108.
- IMPORTANT: PHP 7.2 or greater is now required.
- The extension no longer depends on the pure PHP classes in
maxmind-db/reader
. You can use it independently. - Type hints have been added to both the pure PHP implementation and the extension.
- The
metadata
method on the reader now returns a new copy of the metadata object rather than the actual object used by the reader. - Work around PHP
is_readable()
bug. Reported by Ben Roberts. GitHub #92. - This is the first release of the extension as a PECL package. GitHub #34.
- 1.5.0 and 1.5.1 contained a possible memory corruptions when using
getWithPrefixLen
. This has been fixed. Reported by proton-ab. GitHub #96. - The
composer.json
file now conflicts with all versions of themaxminddb
C extension less than the Composer version. This is to reduce the chance of having an older, conflicting version of the extension installed. You will need to upgrade the extension before runningcomposer update
. Pull request by Benoît Burnichon. GitHub #97.
- Minor performance improvements.
- Make tests pass with older versions of libmaxminddb. PR by Remi Collet. GitHub #90.
- Test enhancements. PR by Chun-Sheng, Li. GitHub #91.
- PHP 5.6 or greater is now required.
- The C extension now supports PHP 8. Pull request by John Boehr. GitHub #87.
- A new method,
getWithPrefixLen
, was added to theReader
class. This method returns an array containing the record and the prefix length for that record. GitHub #89.
- The
maxminddb
extension now returns a string when auint32
value is greater thanLONG_MAX
. Previously, the value would overflow. This generally only affects 32-bit machines. Reported by Remi Collet. GitHub #79. - For
uint64
values, themaxminddb
extension now returns an integer rather than a string when the value is less than or equal toLONG_MAX
. This more closely matches the behavior of the pure PHP reader.
- The
maxminddb
extension now has the arginfo when using reflection. PR by Remi Collet. GitHub #75. - The
maxminddb
extension now providesMINFO()
function that displays the extension version and the libmaxminddb version. PR by Remi Collet. GitHub #74. - The
maxminddb
configure
script now usespkg-config
when available to get libmaxmindb build info. PR by Remi Collet. GitHub #73. - The pure PHP reader now correctly decodes integers on 32-bit platforms. Previously, large integers would overflow. Reported by Remi Collet. GitHub #77.
- There are small performance improvements for the pure PHP reader.
- IMPORTANT: The
maxminddb
extension now obeysopen_basedir
. Ifopen_basedir
is set, you must store the database within the specified directory. Placing the file outside of this directory will result in an exception. Please test your integration before upgrading the extension. This does not affect the pure PHP implementation, which has always had this restriction. Reported by Benoît Burnichon. GitHub #61. - A custom
autoload.php
file is provided for installations without Composer. GitHub #56.
- PHP 5.4 or greater is now required.
- The
Reader
class for themaxminddb
extension is no longer final. This was change to match the behavior of the pure PHP class. Reported and fixed by venyii. GitHub #52 & #54.
- Fix incorrect version in
ext/php_maxminddb.h
. GitHub #48.
- Searching for database metadata only occurs within the last 128KB (128 * 1024 bytes) of the file, speeding detection of corrupt datafiles. Reported by Eric Teubert. GitHub #42.
- Suggest relevant extensions when installing with Composer. GitHub #37.
- Development files were added to the
.gitattributes
asexport-ignore
so that they are not part of the Composer release. Pull request by Michele Locati. GitHub #39.
- The MaxMind DB extension now supports PHP 7. Pull request by John Boehr. GitHub #27.
- All uses of
strlen
were removed. This should prevent issues in situations where the function is overloaded or otherwise broken.
- Previously the MaxMind DB extension would cause a segfault if the Reader object's destructor was called without first having called the constructor. (Reported by Matthias Saou & Juan Peri. GitHub #20.)
- In the last several releases, the version number in the extension was incorrect. This release is being done to correct it. No other code changes are included.
- First production release.
- In the pure PHP reader, a string length test after
fread()
was replaced with the difference between the start pointer and the end pointer. This provided a 15% speed increase.
- Clarified behavior of 128-bit type in documentation.
- Updated phpunit and fixed some test breakage from the newer version.
- Fixed invalid reference to global class RuntimeException from namespaced code. Fixed by Steven Don. GitHub issue #15.
- Additional documentation of
Metadata
class as well as misc. documentation cleanup.
- The API now works when
mbstring.func_overload
is set. - BCMath is no longer required. If the decoder encounters a big integer, it will try to use GMP and then BCMath. If both of those fail, it will throw an exception. No databases released by MaxMind currently use big integers.
- The API now officially supports HHVM when using the pure PHP reader.
- This API is now licensed under the Apache License, Version 2.0.
- The code for the C extension was cleaned up, fixing several potential issues.
- Added optional C extension for using libmaxminddb in place of the pure PHP reader.
- Significantly improved error handling in pure PHP reader.
- Improved performance for IPv4 lookups in an IPv6 database.
- Initial release