PHPackages                             marcoconsiglio/ephemeris - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. marcoconsiglio/ephemeris

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

marcoconsiglio/ephemeris
========================

A Laravel package that query the Swiss Ephemeris executable, in order to get planets position for astronomy/astrology purposes.

v1.3.0-alpha(1mo ago)7300↓12.5%2[4 issues](https://github.com/MarcoConsiglio/laravel-swiss-ephemeris/issues)AGPL-3.0-or-laterPHPPHP ^8.4CI passing

Since Nov 30Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/MarcoConsiglio/laravel-swiss-ephemeris)[ Packagist](https://packagist.org/packages/marcoconsiglio/ephemeris)[ GitHub Sponsors](https://github.com/MarcoConsiglio)[ RSS](/packages/marcoconsiglio-ephemeris/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)Dependencies (10)Versions (11)Used By (0)

[![GitHub License](https://camo.githubusercontent.com/09a02098b62c6b0e6cb3c6ae360134c5e2c8e9c5720648941990b1e67d6d920f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f4d6172636f436f6e7369676c696f2f6c61726176656c2d73776973732d657068656d65726973)](https://camo.githubusercontent.com/09a02098b62c6b0e6cb3c6ae360134c5e2c8e9c5720648941990b1e67d6d920f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f4d6172636f436f6e7369676c696f2f6c61726176656c2d73776973732d657068656d65726973)[![Static Badge](https://camo.githubusercontent.com/b66a41fa9d597578246352bf234352a3b4db6188c53961c5c8f89e3e29df4c0f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d76312e332e302d2d616c7068612d7768697465)](https://camo.githubusercontent.com/b66a41fa9d597578246352bf234352a3b4db6188c53961c5c8f89e3e29df4c0f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d76312e332e302d2d616c7068612d7768697465)
[![Static Badge](https://camo.githubusercontent.com/c8bb3ac16242973a4e2ecff80b432a82e780de20d01cdb30a85d933c8240dea0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f3130302532352d7267622834302532432532303136372532432532303639293f6c6162656c3d4c696e65253230636f766572616765266c6162656c436f6c6f723d7267622832353525324332353525324332353529)](https://camo.githubusercontent.com/c8bb3ac16242973a4e2ecff80b432a82e780de20d01cdb30a85d933c8240dea0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f3130302532352d7267622834302532432532303136372532432532303639293f6c6162656c3d4c696e65253230636f766572616765266c6162656c436f6c6f723d7267622832353525324332353525324332353529)[![Static Badge](https://camo.githubusercontent.com/5bddb979a2c2688251aeac8b91225578a5e9f1220ed6268f4df1b8283df62242/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f39372532352d7267622834302532432532303136372532432532303639293f6c6162656c3d4272616e6368253230636f766572616765266c6162656c436f6c6f723d7267622832353525324332353525324332353529)](https://camo.githubusercontent.com/5bddb979a2c2688251aeac8b91225578a5e9f1220ed6268f4df1b8283df62242/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f39372532352d7267622834302532432532303136372532432532303639293f6c6162656c3d4272616e6368253230636f766572616765266c6162656c436f6c6f723d7267622832353525324332353525324332353529)[![Static Badge](https://camo.githubusercontent.com/677d5dad3242547847202b685163f0d1a199661b6dfc9ebcaa33339e75f32f00/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f38352532352d7267622832353525324331393325324337293f6c6162656c3d50617468253230636f766572616765266c6162656c436f6c6f723d7267622832353525324332353525324332353529)](https://camo.githubusercontent.com/677d5dad3242547847202b685163f0d1a199661b6dfc9ebcaa33339e75f32f00/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f38352532352d7267622832353525324331393325324337293f6c6162656c3d50617468253230636f766572616765266c6162656c436f6c6f723d7267622832353525324332353525324332353529)

Laravel Swiss Ephemeris
=======================

[](#laravel-swiss-ephemeris)

This laravel package perform queries to the [Swiss Ephemeris](https://github.com/aloistr/swisseph) executable and therefore relies on it using the same AGPL license. Using this package in your Laravel project means you'll need to use the same license. For commercial use, you'll need to [purchase the corresponding license](https://www.astro.com/swisseph/swephprice_e.htm).

The aim of this project is to query ephemeris data to produce planetar positions in order to be used for purposes such as astronomy/astrology, planetary calendar, biodynamic calendar, etc.

In this software, only a fraction of the swiss ephemeris are used: you can query planets, Moon, and known asteroids from **1800** CE (AD) to **2399** CE (AD).

Development Roadmap
===================

[](#development-roadmap)

Check the next features in the [development roadmap](./docs/md/Roadmap.md).

Installation
============

[](#installation)

```
composer require marcoconsiglio/ephemeris
```

After installation run this command to publish the Swiss Ephemeris database and config file in your Laravel project.

```
php artisan vendor:publish --provider="MarcoConsiglio\Ephemeris\SwissEphemerisServiceProvider"
```

Remember to grant execution privileges to the `swetest` file, otherwise this software won't work. To do this, run the command

```
chmod u+x ./resources/swiss_ephemeris/swetest
```

To extend the ephemeris data, download the [ephemeris files](https://github.com/aloistr/swisseph/tree/master/ephe) you wish and put them in the `resources/swiss_ephemeris` directory. If you don't know which files to download to extend the time range of the ephemeris, please refer to the [description of the ephemerides](https://www.astro.com/swisseph/swisseph.htm#_Toc112511704).

Usage
=====

[](#usage)

First of all, to query ephemeris data you need to instantiate the 'LaravelSwissEphemeris' class. You need to pass a `PointOfView` class, if none is used, it defaults to `Geocentric` point of view.

```
use use Illuminate\Support\Facades\Config;
/** @var \MarcoConsiglio\Ephemeris\LaraverlSwissEphemeris $ephemeris */
/** @var \MarcoConsiglio\Ephemeris\Observer\Topocentric $pov */

$pov = new Topocentric(
    Config::get("ephemeris.latitude"),
    Config::get("ephemeris.longitude"),
    Config::get("ephemeris.altitude")
);
$ephemeris = new LaravelSwissEphemeris(
    $pov,
    Config::get("ephemeris.timezone")
);
```

or instead, another PointOfView class:

```
use MarcoConsiglio\Ephemeris\Observer\Heliocentric;
/** @var \MarcoConsiglio\Ephemeris\LaraverlSwissEphemeris $ephemeris */

$ephemeris = new LaravelSwissEphemeris(new Heliocentric);
```

Check all [available points of view](docs/md/PointOfView.md) for more info.

If something went wrong (e.g. like uncorrect permission for the files placed in the folder `resources/swiss_ephemeris`, outbound quering date, ect.) it will throw a `MarcoConsiglio\Ephemeris\Exceptions\SwissEphemerisException` exception. (This need to be tested and proved).

Premise
-------

[](#premise)

When using the word *collection*, it is meant that the class extends the [Illuminate\\Support\\Collection](https://laravel.com/docs/12.x/collections), so you can treat it like [*any other collection*](https://laravel.com/docs/12.x/collections).

API Documentation
=================

[](#api-documentation)

For more information, see the API documentation at `./docs/html`.

Index
=====

[](#index)

Point of View
-------------

[](#point-of-view)

- [Point of View](docs/md/PointOfView.md)

Datetime
--------

[](#datetime)

- [Swiss Ephemeris Datetime](docs/md/SwissEphemerisDateTime.md)

Moon Ephemeris
--------------

[](#moon-ephemeris)

- [Synodic Rhythm](docs/md/Moon/SynodicRhythm.md)
- [Moon Periods](docs/md/Moon/Periods.md)
- [Moon Phases](docs/md/Moon/Phases.md)
- [Moon Anomalistic Rhythm](docs/md/Moon/AnomalisticRhythm.md)
- [Moon Draconic Rhythm](docs/md/Moon/DraconicRhythm.md)

###  Health Score

46

—

FairBetter than 93% of packages

Maintenance77

Regular maintenance activity

Popularity23

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 91.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~224 days

Recently: every ~34 days

Total

8

Last Release

55d ago

Major Versions

v0.2.0-alpha → v1.0.0-alpha2025-10-31

### Community

Maintainers

![](https://www.gravatar.com/avatar/5fb36102dfc597a74e864afc65952e328f158bff88f21ad993c1d79c51c80133?d=identicon)[MarcoConsiglio](/maintainers/MarcoConsiglio)

---

Top Contributors

[![MarcoConsiglio](https://avatars.githubusercontent.com/u/39809954?v=4)](https://github.com/MarcoConsiglio "MarcoConsiglio (11 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

---

Tags

astrologyastronomybiodynamic-calendarbiodynamicsephemerislaravel-packagemoonswiss-ephemeris

###  Code Quality

TestsPHPUnit

Static AnalysisRector

### Embed Badge

![Health badge](/badges/marcoconsiglio-ephemeris/health.svg)

```
[![Health](https://phpackages.com/badges/marcoconsiglio-ephemeris/health.svg)](https://phpackages.com/packages/marcoconsiglio-ephemeris)
```

###  Alternatives

[secl-group/phpcs-secl-standard

A PHP\_CodeSniffer maintainability standard for Secl Group applications

149.7k](/packages/secl-group-phpcs-secl-standard)[novatree/wallet

Simple Wallet

272.5k](/packages/novatree-wallet)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
