PHPackages                             johnnymck/shippingforecast - 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. johnnymck/shippingforecast

ActiveLibrary

johnnymck/shippingforecast
==========================

Shipping Forecast scraping library, pulling data from the BBC's shipping forecast page. Based on tnm/shipping-forecast

0.1.2(6y ago)016BSD-2-ClausePHP

Since Jul 28Pushed 5y ago1 watchersCompare

[ Source](https://github.com/johnnymck/ShippingForecast)[ Packagist](https://packagist.org/packages/johnnymck/shippingforecast)[ RSS](/packages/johnnymck-shippingforecast/feed)WikiDiscussions master Synced yesterday

READMEChangelog (2)Dependencies (1)Versions (3)Used By (0)

ShippingForecast.php
====================

[](#shippingforecastphp)

A straight-forward shipping forecast API written in pure PHP which scrapes up-to-date info from the BBC shipping forecast webpage.

Source based on [Ted Nyman's shipping forecast project](https://github.com/tnm/shipping-forecast). Mega props to that guy! :)

Installation
------------

[](#installation)

`composer install johnnymck/shippingforecast`

Usage
-----

[](#usage)

```
use ShippingForecast\ShippingForecast;

$forecast = new ShippingForecast();
$cromarty = $forecast->get('Cromarty'); // location names must be capitalised

echo $cromarty['time']; // eg,  'The general synopsis at 1800'...
print_r($cromarty['content']['warning']); // returns array of warnings (often empty, though not in wintertime 😅)
echo $cromarty['content']['visibility']; // eg, 'Good, occasionally poor'...
```

It's worth noting that `ShippingForecast::get($foo)` and `ShippingForecast::getAll()` both yeild an assoc array containing `['time']`, the time as a string when last updated by the BBC, and `['content']` which contains the forecast-proper, including a `['warning']` array to yeild any prevalent warning information. See `examples/` for further information.

Fun Stuff!
----------

[](#fun-stuff)

Running `php readforecast.php` in the root of the application and piping the output into a text-to-speech application (such as `say` on Macintosh) will read the latest forecast update without you having to bother tuning your wireless sets to BBC R4, 3 times a day. What a time to be alive!

`./forecast [Capitalised zone name here]` will return the forecast in plaintext in your desired zone

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~477 days

Total

2

Last Release

2369d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/51e5d09a697bf1afb213a6659323a1d432035719d36379b2acb3c88425058ed7?d=identicon)[johnnymck](/maintainers/johnnymck)

---

Top Contributors

[![johnnymck](https://avatars.githubusercontent.com/u/1323329?v=4)](https://github.com/johnnymck "johnnymck (3 commits)")

### Embed Badge

![Health badge](/badges/johnnymck-shippingforecast/health.svg)

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

###  Alternatives

[laracasts/integrated

Simple, intuitive integration testing with PHPUnit.

479206.9k2](/packages/laracasts-integrated)[jikan-me/jikan

Jikan is an unofficial MyAnimeList API

1.0k28.1k2](/packages/jikan-me-jikan)[raulr/google-play-scraper

A PHP scraper to get app data from Google Play

12892.7k](/packages/raulr-google-play-scraper)[dfridrich/ares

Communication with ARES (Czech business register)

24401.0k2](/packages/dfridrich-ares)[jansenfelipe/cpf-gratis

Com esse pacote você poderá consultar, gratuitamente, CPFs diretamente no site da receita.

1895.9k](/packages/jansenfelipe-cpf-gratis)[bubbstore/correios

Biblioteca que faz cálculo de frete, rastreamento de objetos e consulta de CEP diretamente do Webservice dos Correios.

2589.0k](/packages/bubbstore-correios)

PHPackages © 2026

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