longitude-one/geo-parser
Parser for geography coordinate strings
3.0.4
914K downloads/mo
#2581 most downloaded on Packagist
longitude-one/geo-parser
What this package is like to depend on
Last release today
23 Aug 2026
Ships unpredictably
gaps range from 9 days to 2.2 years
Most releases are documented
notes for 6 of 9 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
12 releases · first in 2024
6 releases in the last 12 months
see the full history below
Release timeline
12 releases · Mar 2024 to Aug 2026Releases
latest 12-
4.0.0-RC.215 Aug 2026 pre-releaseRelease notes
Open source →4.0.0-RC.2 (2026-08-15)
⚠ BREAKING CHANGES
- Namespace LongitudeOne/Geo/String renamed to LongitudeOne/GeoParser
- PHP8.1 and 8.2 no more supported
- Parser: Native integer and float inputs are now returned unchanged instead of being normalized by the lexer. This preserves their values and types but may affect callers that rely on implicit conversion or parser validation.
-
4.0.0-RC.108 Aug 2026 pre-releaseRelease notes
Open source →4.0.0-RC.1 (2026-08-08)
⚠️ BREAKING CHANGES
- PHP8.1 and 8.2 no more supported
- Parser: Native integer and float inputs are now returned unchanged instead of being normalized by the lexer. This preserves their values and types but may affect callers that rely on implicit conversion or parser validation.
✨ New Features
- Add strict types declaration to all files (7be229c)
- Add unit tests for Angle, Cardinal, Parser, and TokenStream classes (9493d6a)
- Introduce LogicException for handling logic errors in the GeoParser (2dc0057)
- Parser: Return native numeric inputs directly. (7c7c04f)
- Refactor Parser class to streamline input handling and parsing logic (947a5b1)
🐛 Bug Fixes
- add input validation in Parser constructor and corresponding test (8e7b08d)
♻️ Refactoring
- enhance symbol matching logic and coordinate handling in Parser class (97a9d2a)
- improve handling of space-separated coordinate pairs in Parser class (854d1a3)
- simplify symbol matching logic in Parser class (e462dbf)
- streamline cardinal direction handling in Parser class (6bf081f)
- update minutes and seconds methods to return float values and normalize fractions (e324539)
📚 Documentation
- Update contributing guidelines and enhance quality tool commands (2669781)
🌳 Environmental Impact
- ci: reduce cache storage (cc0beeb)
👷 CI/CD
- correct composer cache directory command in CI workflow (cf8e898)
- update CI workflow to conditionally run full CI based on open pull requests (689d8ff)
- update composer require command to use caret versioning for lexer dependency (926c401)
- update output setting for Composer cache directory in CI workflow (ff61117)
🔧 Maintenance
- add a script to use php-xs-fixer (c7414cb)
- release: v4.0.0-RC.0 🎉 (53d12d1)
- update headers (67c68c4)
- Update PHP version requirement to ^8.3 and adjust doctrine/lexer dependency (86be558)
📊 Quality tools
- Clean up PHPStan baseline by removing outdated ignore errors (d80aa7b)
- exclude TooManyPublicMethods rule in code size checks for tests (8b03143)
- Update PHP CS Fixer rules to include case statements in ordered class elements (c4544d7)
- update project metadata in php-cs-fixer configuration file (190e316)
📗 PHPUnit tests
Release notes
Open source →⚠ BREAKING CHANGES
- PHP8.1 and 8.2 no more supported
- Parser: Native integer and float inputs are now returned unchanged instead of being normalized by the lexer. This preserves their values and types but may affect callers that rely on implicit conversion or parser validation.
✨ New Features
- Add strict types declaration to all files (7be229c)
- Add unit tests for Angle, Cardinal, Parser, and TokenStream classes (9493d6a)
- Introduce LogicException for handling logic errors in the GeoParser (2dc0057)
- Parser: Return native numeric inputs directly. (7c7c04f)
- Refactor Parser class to streamline input handling and parsing logic (947a5b1)
🐛 Bug Fixes
- add input validation in Parser constructor and corresponding test (8e7b08d)
♻️ Refactoring
- enhance symbol matching logic and coordinate handling in Parser class (97a9d2a)
- improve handling of space-separated coordinate pairs in Parser class (854d1a3)
- simplify symbol matching logic in Parser class (e462dbf)
- streamline cardinal direction handling in Parser class (6bf081f)
- update minutes and seconds methods to return float values and normalize fractions (e324539)
📚 Documentation
- Update contributing guidelines and enhance quality tool commands (2669781)
🌳 Environmental Impact
- ci: reduce cache storage (cc0beeb)
👷 CI/CD
- correct composer cache directory command in CI workflow (cf8e898)
- update CI workflow to conditionally run full CI based on open pull requests (689d8ff)
- update composer require command to use caret versioning for lexer dependency (926c401)
- update output setting for Composer cache directory in CI workflow (ff61117)
🔧 Maintenance
- add a script to use php-xs-fixer (c7414cb)
- release: v4.0.0-RC.0 🎉 (53d12d1)
- update headers (67c68c4)
- Update PHP version requirement to ^8.3 and adjust doctrine/lexer dependency (86be558)
📊 Quality tools
- Clean up PHPStan baseline by removing outdated ignore errors (d80aa7b)
- exclude TooManyPublicMethods rule in code size checks for tests (8b03143)
- Update PHP CS Fixer rules to include case statements in ordered class elements (c4544d7)
- update project metadata in php-cs-fixer configuration file (190e316)
📗 PHPUnit tests
-
4.0.0-RC.007 Aug 2026 pre-releaseRelease notes
Open source →Version 4.0.0-RC.0 (2026-08-07)
⚠ BREAKING CHANGES
- PHP8.1 and 8.2 no more supported
🐛 Bug Fixes
- add input validation in Parser constructor and corresponding test (8e7b08d)
♻️ Refactoring
- enhance symbol matching logic and coordinate handling in Parser class (97a9d2a)
- improve handling of space-separated coordinate pairs in Parser class (854d1a3)
- simplify symbol matching logic in Parser class (e462dbf)
- streamline cardinal direction handling in Parser class (6bf081f)
- update minutes and seconds methods to return float values and normalize fractions (e324539)
🌳 Environmental Impact
- ci: reduce cache storage (cc0beeb)
👷 CI/CD
- correct composer cache directory command in CI workflow (cf8e898)
- update CI workflow to conditionally run full CI based on open pull requests (689d8ff)
- update composer require command to use caret versioning for lexer dependency (926c401)
- update output setting for Composer cache directory in CI workflow (ff61117)
🔧 Maintenance
- add a script to use php-xs-fixer (c7414cb)
- update headers (67c68c4)
- Update PHP version requirement to ^8.3 and adjust doctrine/lexer dependency (86be558)
📊 Quality tools
- exclude TooManyPublicMethods rule in code size checks for tests (8b03143)
- update project metadata in php-cs-fixer configuration file (190e316)
📗 PHPUnit tests
Release notes
Open source →⚠ BREAKING CHANGES
- PHP8.1 and 8.2 no more supported
🐛 Bug Fixes
- add input validation in Parser constructor and corresponding test (8e7b08d)
♻️ Refactoring
- enhance symbol matching logic and coordinate handling in Parser class (97a9d2a)
- improve handling of space-separated coordinate pairs in Parser class (854d1a3)
- simplify symbol matching logic in Parser class (e462dbf)
- streamline cardinal direction handling in Parser class (6bf081f)
- update minutes and seconds methods to return float values and normalize fractions (e324539)
🌳 Environmental Impact
- ci: reduce cache storage (cc0beeb)
👷 CI/CD
- correct composer cache directory command in CI workflow (cf8e898)
- update CI workflow to conditionally run full CI based on open pull requests (689d8ff)
- update composer require command to use caret versioning for lexer dependency (926c401)
- update output setting for Composer cache directory in CI workflow (ff61117)
🔧 Maintenance
- add a script to use php-xs-fixer (c7414cb)
- update headers (67c68c4)
- Update PHP version requirement to ^8.3 and adjust doctrine/lexer dependency (86be558)
📊 Quality tools
- exclude TooManyPublicMethods rule in code size checks for tests (8b03143)
- update project metadata in php-cs-fixer configuration file (190e316)
📗 PHPUnit tests
-
3.0.423 Aug 2026Release notes
Open source → -
3.0.307 Aug 2026Release notes
Open source →Change log 3.0.3 (2026-08-07)
📚 Documentation
- Update changelog and improve documentation clarity (012ed02)
👷 CI/CD
- Add '4-x-dev' branch to CI workflow triggers (303b3ca)
Release notes
Open source →📚 Documentation
- Update changelog and improve documentation clarity (012ed02)
👷 CI/CD
- Add '4-x-dev' branch to CI workflow triggers (303b3ca)
-
3.0.206 Aug 2026Release notes
Open source →3.0.2 (2026-08-06)
🐛 Bug Fixes
- quality errors found by upgraded PHP-Stan (088841e)
- sanitize exception message values to prevent inflated messages injection (f97a790)
📚 Documentation
- Lexer compatibilities and test reported (4706459)
- Lexer version mentioned (c28e46c)
- markdown linting (94deaea)
- Roadmap added (6ab4aab)
🌳 Environmental Impact
- Decrease the package size (a2e912b)
👷 CI/CD
🔧 Maintenance
- add missing emoji (52b899e)
- create script-shorcuts for composer (5e25b49)
- Dockerfile optimze installations of quality tools (e5e9ef1)
- headers updated (e18454a)
📊 Quality tools
- new tool : commit-and-tag-version (e48e43b)
- PHP-STAN upgraded (83cf636)
- update PHPMD ruleset name and adjust maximum method length allowed (85accad)
📗 PHPUnit tests
- Security test added (95fe6e8)
Release notes
Open source →🐛 Bug Fixes
- Fix quality errors found by the upgraded PHPStan (088841e)
- Sanitize exception message values to prevent inflated-message injection (f97a790)
📚 Documentation
- Report Lexer compatibility and test coverage (4706459)
- Mention the Lexer version (c28e46c)
- Add Markdown linting (94deaea)
- Add a roadmap (6ab4aab)
🌳 Environmental Impact
- Decrease package size (a2e912b)
👷 CI/CD
🔧 Maintenance
- Add a missing emoji (52b899e)
- Create Composer script shortcuts (5e25b49)
- Optimize Dockerfile installation of quality tools (e5e9ef1)
- Update headers (e18454a)
📊 Quality tools
- Add commit-and-tag-version (e48e43b)
- Upgrade PHPStan (83cf636)
- Update the PHPMD ruleset name and maximum permitted method length (85accad)
📗 PHPUnit tests
- Add a security test (95fe6e8)
-
3.0.123 May 2024Release notes
Open source →What's Changed
- Ecologic feature by @Alexandre-T in #18
- Documentation test by @Alexandre-T in #19
- CI updated to avoid to launch it two times (push and pull-request) by @Alexandre-T in main
- #20 Range exception enhancement done by @Alexandre-T in #21
- #21 Fix "geo-parser miss some out-of-ranges" by @Alexandre-T in #23
Full Changelog: 3.0.0...3.0.1
-
3.0.027 Apr 2024Release notes
Open source →What's Changed
- Deprecation lexer feature by @Alexandre-T in #8
- switch replaced by match by @Alexandre-T in #9
- Type of properties hard-coded by @Alexandre-T in #10
- Updating code-climate by @Alexandre-T in #12
- Code coverage plugin by @Alexandre-T in #13
- Lexer 3 feature by @Alexandre-T in #11
- Code climate feature by @Alexandre-T in #14
- Merging updates from main to dev by @Alexandre-T in #15
- Merging dev into main by @Alexandre-T in #17
Full Changelog: 2.1.0...3.0.0
Release notes
Open source →Added
- Docker support for development and testing.
Changed
- Namespaces are now PSR-4 compliant.
- Namespaces are now
LongitudeOne\Geo\ParserandLongitudeOne\Geo\Parser\Exception. - Updated README.md to reflect new namespaces.
Removed
- Support for PHP 5.*, 7.1, 7.2, 7.3.
[2.2.1] - 2019-08-07
Changed
[2.2.0] - 2019-08-06
Added
- Support for PHP 7.1 through 7.3
Removed
- Support for PHP earlier than 7.1
[2.1.0] - 2016-05-03
Added
- Support for numbers in scientific notation.
Changed
- Parser constructor no longer requires a value, enabling instance reuse.
- Lexer constructor no longer requires a value, enabling instance reuse.
- Tests now use Composer autoload.
- PHPUnit config XML now conforms to XSD.
- Documentation updated with new usage pattern.
- Move non-value comparison into if statement in Lexer::getType().
- Test case and test data cleanup.
Removed
- The TestInit class is no longer needed.
[2.0.0] - 2015-11-18
Added
- Change base namespace to CrEOF\Geo\String to avoid class collision with other CrEOF packages.
[1.0.1] - 2015-11-17
Added
- Exclude fingerprint for Code Climate fixme engine to ignore "Stub TODO.md file." in changelog.
Changed
- Removed code for unused conditions in Parser error methods.
- Removed case for token T_PERIOD in getType method of Lexer, it's not used in Parser.
[1.0.0] - 2015-11-11
Added
- Change log file to chronicle changes.
- Dependency on SPL extension to composer.json since the package exceptions extend them.
- Stub TODO.md file.
- CONTRIBUTING.md file with guidelines.
- Travis CI config
- Code Climate config
- Add support for unicode prime and double prime.
- Tests for uncovered parser branches.
Changed
- Use string compare instead of regex for cardinal direction.
- Remove unneeded dependencies for PHPMD and PHPCS; Code Climate handles this.
- Match seconds symbol with symbol().
- Change property names in parser to more accurately indicate what they're for.
-
2.1.018 Mar 2024Release notes
Open source →What's Changed
- Parsing a float is now deprecated (provide a string instead) by @Alexandre-T in #7
Full Changelog: 2.0.0...2.1.0
-
2.0.018 Mar 2024Nothing published for this version
-
1.0.013 Mar 2024Nothing published for this version
-
3.0.0.RC24 Mar 2024Nothing published for this version