jayeshmepani/jpl-moshier-ephemeris-php
PHP 8.3+ FFI wrapper for the JPL Moshier Ephemeris C library, exposing all 204 jme_* functions and native JME_* constants. Supports JPL, Moshier, and VSOP87/ELP2000/Meeus engines with no hidden rounding or output reshaping. Requires ext-ffi and a compiled libjme shared library.
ephemeris_bodies.id, cache keys, or API payloads) must migrate to the new named constants. This is the single largest architectural concern in this release and it is not merely a version bump — it can silently corrupt stored references if not addressed.base_path() vs. storage_path() vs. container CWD).composer.json been pinned to 2.0.0 (and native libs checksum-verified) to prevent drift?config/ephemeris.php) exposing kernel_dir and kernel_name. Prefer absolute paths derived from storage_path() to survive CWD differences.libs/ directory and the configured kernel directory:
public function boot(): void {
if (!Ephemeris::isLibraryLoaded()) {
throw new RuntimeException('Native ephemeris libraries not found. Check libs/.');
}
if (!is_dir(config('ephemeris.kernel_dir'))) {
throw new RuntimeException('Ephemeris kernel directory missing.');
}
}
kernel_dir to a stable absolute path; test in web, queue, and scheduler.2.0.0; upgrade wrapper + libs/ together; checksum-verify.kernel_dir absolutely; validate across runtime contexts.libs/.ephemeris.kernel_dir as a first-class supported config with docs.NOTICE/license files ship with deployments.How can I help you explore Laravel packages today?