PHPackages                             bitartist/vvophp - 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. bitartist/vvophp

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

bitartist/vvophp
================

PHP library for accessing real-time public transport data from the VVO (Verkehrsverbund Oberelbe) network

0.1.3(3y ago)08.2k↑43.8%MITPHPPHP &gt;=8.0

Since May 20Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/B0bbyD0llar/vvophp)[ Packagist](https://packagist.org/packages/bitartist/vvophp)[ Docs](https://github.com/B0bbyD0llar/vvophp)[ RSS](/packages/bitartist-vvophp/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (4)Dependencies (6)Versions (6)Used By (0)

VVOphp
======

[](#vvophp)

[![PHP Version](https://camo.githubusercontent.com/a947a63fced48b3197290b3f8784ac2370a05381db60e6ce79c0e3adaa3b95d5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f6269746172746973742f76766f7068702f706870)](https://packagist.org/packages/bitartist/vvophp)[![License: MIT](https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667)](LICENSE)[![PHPStan Level 6](https://camo.githubusercontent.com/2761aeebb3945f1ca4e4b0f156a71a3558c10dd6e3da83b1feb44f4d33013329/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d6c6576656c253230362d627269676874677265656e2e737667)](https://phpstan.org/)

A PHP library for accessing real-time public transport data from the [Verkehrsverbund Oberelbe (VVO)](https://www.vvo-online.de/de) network, including [Dresdner Verkehrsbetriebe (DVB)](https://www.dvb.de/de-de/).

> Inspired by [kiliankoe/vvo](https://github.com/kiliankoe/vvo)

Features
--------

[](#features)

- **Departure Monitor** -- Query real-time departures for any stop, including delays, platforms, and route changes
- **Point Finder** -- Search for stops, streets, and points of interest across the VVO network
- **10+ Transport Modes** -- Tram, CityBus, IntercityBus, Train, SuburbanRailway, Ferry, Cableway, and more
- **PSR-3 Logging** -- Optional logger integration for debugging
- **Proxy Support** -- Configurable HTTP proxy for API requests

Requirements
------------

[](#requirements)

- PHP 8.2+
- ext-curl

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

[](#installation)

```
composer require bitartist/vvophp
```

Quick Start
-----------

[](#quick-start)

### Search for a Stop

[](#search-for-a-stop)

```
use VVOphp\Config;
use VVOphp\VVOphp;

$vvo = new VVOphp(new Config());

// Search for stops matching "Hauptbahnhof"
$response = $vvo->searchPoint('Hauptbahnhof', limit: 5, stopOnly: true);

foreach ($response->getPoints() as $point) {
    echo $point->getName() . ' (ID: ' . $point->getId() . ')' . PHP_EOL;
}
```

### Get Departures

[](#get-departures)

```
use VVOphp\Config;
use VVOphp\VVOphp;

$vvo = new VVOphp(new Config());

// Get next departures for a stop (e.g. Postplatz = 33000037)
$response = $vvo->getMonitorData(33000037, limit: 10);

echo $response->getName() . ', ' . $response->getPlace() . PHP_EOL;

foreach ($response->getDepartures() as $departure) {
    echo sprintf(
        "Line %s -> %s (%s)\n",
        $departure->getLineName(),
        $departure->getDirection(),
        $departure->getScheduledTime()->format('H:i'),
    );
}
```

### With PSR-3 Logger

[](#with-psr-3-logger)

```
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use VVOphp\Config;
use VVOphp\VVOphp;

$logger = new Logger('vvo');
$logger->pushHandler(new StreamHandler('php://stderr'));

$vvo = new VVOphp(new Config(), $logger);
```

### Proxy Configuration

[](#proxy-configuration)

```
use VVOphp\Config;
use VVOphp\VVOphp;

$config = new Config();
$config->setProxyEnabled(true);
$config->setProxyHost('http://proxy.example.com:8080');

$vvo = new VVOphp($config);
```

Demo
----

[](#demo)

A web-based testing GUI is available in a separate repository:

[bitartist/vvophp-demo](https://github.com/bitartist/vvophp-demo)

Development
-----------

[](#development)

### Prerequisites

[](#prerequisites)

- [Task](https://taskfile.dev/) (optional, for task automation)
- [Composer](https://getcomposer.org/)

### Setup

[](#setup)

```
composer install
```

### Run All Checks

[](#run-all-checks)

```
task
```

### Individual Tasks

[](#individual-tasks)

```
task cs    # Code style (PHP CS Fixer + Composer Normalize)
task sca   # Static analysis (PHPStan level 6)
task t     # Unit tests (PHPUnit)
```

Roadmap
-------

[](#roadmap)

- Trip queries and trip details
- Line information
- Route changes
- Test suite
- Extended documentation

License
-------

[](#license)

This project is licensed under the MIT License -- see the [LICENSE](LICENSE) file for details.

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance56

Moderate activity, may be stable

Popularity24

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity47

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 ~75 days

Total

4

Last Release

1232d ago

PHP version history (2 changes)0.1.0PHP ^8.0

0.1.3PHP &gt;=8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/dbfab4ab9ccfaf01615431d32df3da0ff17d38caac4791bfca393a0ca47a7c10?d=identicon)[BobbDee](/maintainers/BobbDee)

---

Top Contributors

[![B0bbyD0llar](https://avatars.githubusercontent.com/u/14181646?v=4)](https://github.com/B0bbyD0llar "B0bbyD0llar (14 commits)")

###  Code Quality

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/bitartist-vvophp/health.svg)

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

###  Alternatives

[ecotone/ecotone

Supporting you in building DDD, CQRS, Event Sourcing applications with ease.

558549.8k17](/packages/ecotone-ecotone)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

728272.9k20](/packages/civicrm-civicrm-core)[j0k3r/php-readability

Automatic article extraction from HTML

186808.8k6](/packages/j0k3r-php-readability)[tomaj/hermes

Simple php background processing library

38251.0k5](/packages/tomaj-hermes)[symfony/ai-platform

PHP library for interacting with AI platform provider.

51927.7k136](/packages/symfony-ai-platform)[symfony/ai-agent

PHP library for building agentic applications.

30536.7k44](/packages/symfony-ai-agent)

PHPackages © 2026

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