Releases: ivanstan/tle-php
Releases · ivanstan/tle-php
TLE API 2.1.0
feat: add comprehensive orbit specification library with 16 new specifications
BREAKING CHANGE: GeostationaryOrbitTleSpecification now requires low inclination
and circular orbit in addition to synchronous period. Use GeosynchronousOrbitTleSpecification
for the previous behavior (period-only check).
Bug Fixes
- Fix Tle::angularPrecessionPerOrbit() passing degrees to cos() instead of radians
- Update SunSynchronousOrbitTleSpecification comment (bug was fixed in Tle class)
New Specifications
Altitude-Based
- LowEarthOrbitTleSpecification (160-2,000 km)
- MediumEarthOrbitTleSpecification (2,000-35,786 km)
- HighEarthOrbitTleSpecification (>35,786 km apogee)
Eccentricity-Based
- CircularOrbitTleSpecification (e < threshold)
- EllipticalOrbitTleSpecification (e >= threshold)
Special Orbits
- MolniyaOrbitTleSpecification (~63.4° inclination, ~0.74 eccentricity, ~12h period)
- TundraOrbitTleSpecification (~63.4° inclination, ~0.27 eccentricity, ~24h period)
- CriticalInclinationOrbitTleSpecification (63.4° or 116.6°)
- GeosynchronousOrbitTleSpecification (~24h period, any inclination/eccentricity)
Temporal
- RecentTleTleSpecification (TLE freshness check)
- OrbitalPeriodTleSpecification (period range filter)
Decay & Stability
- DecayingOrbitTleSpecification (positive mean motion derivative)
- LowDragTleSpecification (low BSTAR coefficient)
Classification
- ClassifiedSatelliteTleSpecification (C or S classification)
- UnclassifiedSatelliteTleSpecification (U classification)
Composite (Specification Pattern)
- AndTleSpecification (all must match)
- OrTleSpecification (any must match)
- NotTleSpecification (invert result)
Tle Model Enhancements
- Add perigeeAltitude() method
- Add apogeeAltitude() method
- Add firstDerivativeMeanMotion() method
- Add bstarFloat() method (parse BSTAR as float)
Tests
- Add negative tests for all existing specifications
- Add comprehensive tests for all new specifications
- Add composite specification integration tests
TLE API 2.0.0
[2.0.0] - 2026-01-02
Breaking Changes
- PHP 8.4 Required - Minimum PHP version bumped from 8.0 to 8.4
- Native Enums - Replaced class-based enums with PHP 8.1+ native enums:
OrbitDirectionEnum- now a backed enum withPOSIGRADEandRETROGRADEcasesSatelliteClassificationEnum- now a backed enum withUNCLASSIFIED,CLASSIFIED, andSECRETcases
Added
- Sun-Synchronous Orbit Specification - New
SunSynchronousOrbitTleSpecificationclass to identify satellites in sun-synchronous orbits based on nodal precession rate (~0.9856°/day) - Configurable tolerance parameter for sun-synchronous orbit detection
Changed
- Updated PHPUnit from 9.x to 11.x
- Modernized PHPUnit configuration (
phpunit.xml) for PHPUnit 11 compatibility - Updated Guzzle HTTP client to ^7.10
- Improved test scripts in
composer.json:composer test- runs tests without coveragecomposer test:coverage- runs tests with code coverage (requires Xdebug)
TLE API 1.0.3
support php 8
TLE API 1.0.2
- Support PHP 8
TLE API 1.0.1
- Fix TleFile namespace bug