PHPackages                             devmachine/guzzle-markus-client - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. devmachine/guzzle-markus-client

AbandonedArchivedLibrary[HTTP &amp; Networking](/categories/http)

devmachine/guzzle-markus-client
===============================

Guzzle client for Markus API e.g. http://forumcinemas.lv/XML.

1.1.0(10y ago)33301MITPHPPHP &gt;=5.4.0

Since Apr 28Pushed 10y ago1 watchersCompare

[ Source](https://github.com/lakiboy/guzzle-markus-client)[ Packagist](https://packagist.org/packages/devmachine/guzzle-markus-client)[ Docs](http://devmachine.net)[ RSS](/packages/devmachine-guzzle-markus-client/feed)WikiDiscussions master Synced 5d ago

READMEChangelogDependencies (2)Versions (6)Used By (1)

Guzzle Client for MCS API
=========================

[](#guzzle-client-for-mcs-api)

[![Build Status](https://camo.githubusercontent.com/642956e14c67fa3027f8377705a6be30b60811a5a1fa316abb3cd18003b915bb/68747470733a2f2f7472617669732d63692e6f72672f6465762d6d616368696e652f67757a7a6c652d6d61726b75732d636c69656e742e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/dev-machine/guzzle-markus-client)

[![SensioLabsInsight](https://camo.githubusercontent.com/92424bc92f9a962cf3cea77ab8770942bf1d3a7d0d928bbf203e2ecc196840d7/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f66393639333731622d376265322d346635632d623362372d3765333666333335646363312f6d696e692e706e67)](https://insight.sensiolabs.com/projects/f969371b-7be2-4f5c-b3b7-7e36f335dcc1)

[![Scrutinizer Code Quality](https://camo.githubusercontent.com/eb8b91e893fa86e71bc1bfbe1c90e4f1850e3a994229e6512ad299d15288750c/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6465762d6d616368696e652f67757a7a6c652d6d61726b75732d636c69656e742f6261646765732f7175616c6974792d73636f72652e706e673f733d34623237353362323963343537386638396635386430323535356339663232656261393665373339)](https://scrutinizer-ci.com/g/dev-machine/guzzle-markus-client/)

Guzzle client for Markus Cinema System installations - . Used in Baltics, Finland, Iceland and Malta. In Latvia, Lithuania and Estonia best known as *ForumCinemas* chain.

#### Cinemas list (not complete):

[](#cinemas-list-not-complete)

-
-
-
-
-
-  (incomplete and untested)
-  (Riga)
-  (Riga)

There are more MCS installations (e.g. ), but not all of them have a public XML API. If you happen to know any working XML URLs - create a pull request.

#### Description

[](#description)

This guzzle client tries to fix various inconsistencies of XML API, regroup, rename and filter returned results. Basically to make it look like you deal with fine-tuned JSON API.

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

[](#installation)

This library can be installed using Composer. Add the following to your composer.json:

```
{
    "require": {
        "devmachine/guzzle-markus-client": "1.0.*"
    }
}
```

Terminology
-----------

[](#terminology)

Some terminology explained used in MCS API:

- `area` - represents a location of theatres (usually a city),
- `event` - represents a movie,
- `show` - represents a show time of a movie i.e. theatre, auditorium, movie (event) and date/time of the show.

Sample usage
------------

[](#sample-usage)

```
use Devmachine\Guzzle\Markus\MarkusClient;

$client = MarkusClient::factory('http://forumcinemas.ee/xml');
$result = $client->areas();

var_dump($result['items']);
```

Sample output:

```
array(4) {
  [0] =>
  array(2) {
    'id' =>
    string(4) "1002"
    'name' =>
    string(21) "Tallinn - kõik kinod"
  }
  [1] =>
  array(2) {
    'id' =>
    string(4) "1008"
    'name' =>
    string(15) "Coca-Cola Plaza"
  }
  [2] =>
  array(2) {
    'id' =>
    string(4) "1005"
    'name' =>
    string(19) "Tartu - Kino Ekraan"
  }
  [3] =>
  array(2) {
    'id' =>
    string(4) "1004"
    'name' =>
    string(18) "Narva - Kino Astri"
  }
}

```

API methods
-----------

[](#api-methods)

There are no required parameters. Below there is an example with all possible arguments for each method.

```
use Devmachine\Guzzle\Markus\MarkusClient;

$client = MarkusClient::factory('http://forumcinemas.ee/xml');

// Get list of locations.
$result = $client->areas();

// Get list of languages.
$result = $client->languages();

// Get list of show dates.
$result = $client->schedule([
    'area' => $areaId // Defaults to first area in the list.
]);

// Get list of article categories.
$result = $client->articleCategories([
    'area' => $areaId // Filter by area.
]);

// Get list of articles.
$result = $client->articles([
    'area'     => $areaId,    // Filter by area.
    'event'    => $eventId,   // When specified "category" parameter has no effect.
    'category' => $categoryId // Filter by category.
]);

// Get list of events.
$result = $client->events([
    'area'            => $areaId,  // Has no effect when "coming_soon" parameter is set to true.
    'id'              => $eventId, // When specified "area" and "coming_soon" parameters have no effect.
    'include_videos'  => true,     // Include video data. Defaults to false.
    'include_links'   => true,     // Include links data. Defaults to false.
    'include_gallery' => true,     // Include gallery data. Defaults to false.
    'all_images'      => true,     // Fetch all available images (except gallery). Defaults to false.
    'coming_soon'     => true      // Show upcoming events. Defaults to false.
]);

// Get list of shows.
$result = $client->shows([
    'area'           => $areaId,      // Defaults to first area in the list.
    'event'          => $eventId,     // Filter by event.
    'date'           => '2014-04-28', // Defaults to today.
    'days_from_date' => 2,            // Amount of days to include from date. Defaults to 1.
]);
```

Image formats
-------------

[](#image-formats)

Accoding to findings MCS API has consistent images naming/dimensions.

NamePortraitLandscapemicro59x8788x31small99x146148x100medium320x480310x150large480x711670x250xlarge640x948851x315hd720x12801280x720full hd1080x19201920x1080poster768x1097-

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity62

Established project with proven stability

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

Total

5

Last Release

3902d ago

### Community

Maintainers

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

---

Top Contributors

[![lakiboy](https://avatars.githubusercontent.com/u/1089265?v=4)](https://github.com/lakiboy "lakiboy (34 commits)")

---

Tags

apiGuzzlemarkusforumcinemas

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/devmachine-guzzle-markus-client/health.svg)

```
[![Health](https://phpackages.com/badges/devmachine-guzzle-markus-client/health.svg)](https://phpackages.com/packages/devmachine-guzzle-markus-client)
```

###  Alternatives

[ajt/guzzle-toggl

Toggl API client written on top of Guzzle PHP.

8826.2k2](/packages/ajt-guzzle-toggl)[loco/swizzle

Build Guzzle service descriptions from Swagger compliant APIs

279.7k2](/packages/loco-swizzle)[antoinelemaire/aircall-php

Aircall API client built on top of Guzzle 6

1049.6k](/packages/antoinelemaire-aircall-php)

PHPackages © 2026

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