PHPackages                             utg/epg-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. utg/epg-client

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

utg/epg-client
==============

HTTP Client for EPG API

2.3+api.0.10(5y ago)22.0k[3 PRs](https://github.com/utelecom/epg-client/pulls)proprietaryPHP

Since May 15Pushed 3y ago1 watchersCompare

[ Source](https://github.com/utelecom/epg-client)[ Packagist](https://packagist.org/packages/utg/epg-client)[ RSS](/packages/utg-epg-client/feed)WikiDiscussions master Synced 4d ago

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

HTTP Client for EPG service
===========================

[](#http-client-for-epg-service)

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

[](#installation)

```
$ composer require utg/epg-client ^2.0

```

Then you need to implement `\EpgClient\ConfigInterface` on you project. It would be persistent storage for client config variables.

Get account specific entities
-----------------------------

[](#get-account-specific-entities)

Client initialization by read-only api key:

```
/** @var \EpgClient\ConfigInterface $config */
$config = new YourConfig();
$config->set($config::API_URL, 'https://');
$config->set($config::API_KEY, '');

$client = new EpgClient\Client($config);
$client->setAuthType(EpgClient\Client::AUTH_TYPE_API_KEY);
$client->setAcceptLanguage(EpgClient\Client::LANG_UK); #optional

```

Channels:

```
/** @var EpgClient\Context\AccountChannel[] $channels */
$channels = $client->getAccountChannelResource()
    ->get()
    ->exec()
    ->getArrayResult();

/** @var EpgClient\Context\AccountChannel $channel */
$channel = $client->getAccountChannelResource()
    ->get($channelId)
    ->exec()
    ->getSingleResult();

```

Categories:

```
/** @var EpgClient\Context\AccountCategory[] $categories */
$categories = $client->getAccountCategoryResource()
    ->get()
    ->exec()
    ->getArrayResult();

/** @var EpgClient\Context\AccountCategory $categorie */
$category = $client->getAccountCategoryResource()
    ->get($categoryId)
    ->exec()
    ->getSingleResult();

```

Genres:

```
/** @var EpgClient\Context\AccountGenre[] $genres */
$genres = $client->getAccountGenreResource()
    ->get()
    ->exec()
    ->getArrayResult();

/** @var EpgClient\Context\AccountGenre $genre */
$genre = $client->getAccountGenreResource()
    ->get($genreId)
    ->exec()
    ->getSingleResult();

```

Programs:

```
/**
 * You can get program collection by instance of Channel
 *
 * @var EpgClient\Context\Channel $channel
 * @var EpgClient\Context\AccountProgram[] $programs
 */
$programs = $client->getAccountProgramResource()
    ->getByChannel($channel)
    ->setPeriod(AccountProgramResource::PERIOD_NOW)
    ->exec()
    ->getArrayResult();

/**
 * Or you cat get program collection by channel id
 *
 * @var string $channelId
 * @var EpgClient\Context\AccountProgram[] $programs
 */
$programs = $client->getAccountProgramResource()
    ->getByChannelId($channelId)
    ->setPeriod(AccountProgramResource::PERIOD_TODAY)
    ->exec()
    ->getArrayResult();

/**
 * Search program by title
 */
$programs = $client->getAccountProgramResource()
   ->getByTitle('Program title')
   ->setPeriod(AccountProgramResource::PERIOD_MONTH)
   ->limit(10)
   ->exec()
   ->getArrayResult();

/**
 * @var string $programId
 * @var EpgClient\Context\AccountProgram $program
 */
$program = $client->getAccountProgramResource()
   ->get($programId)
   ->exec()
   ->getSingleResult();

```

Manage entities
---------------

[](#manage-entities)

Client initialization by login/password

```
/** @var \EpgClient\ConfigInterface $config */
$config = new YourConfig();

$config->set($config::API_URL, 'https://');
$config->set($config::API_ADMIN, '');
$config->set($config::API_PASSWORD, '');

$client = new EpgClient\Client($config);

# Optional client settings
$client->setAcceptLanguage(EpgClient\Client::LANG_UK);

```

Channels (full example):

```
/** @var EpgClient\Context\AccountChannel[] $channels */
$channels = $client->getAccountResource()
    ->getChannels()
    ->disablePagination()                                               # optional: pagination disable
    ->withGroup(EpgClient\Resource\ChannelResource::GROUP_TRANSLATIONS) # optional: translations, images, ...
    ->setLanguage(EpgClient\Client::LANG_UK)                            # optional: set language only for one request
    ->exec()
    ->getArrayResult();

```

Categories (short example):

```
/** @var EpgClient\Context\AccountCategory[] $categories */
$categories = $client->getAccountResource()
    ->getCategories()
    ->exec()
    ->getArrayResult();

```

Genres:

```
/** @var EpgClient\Context\AccountGenre[] $genres */
$genres = $client->getAccountResource()
    ->getGenres()
    ->exec()
    ->getArrayResult();

```

### Coming soon later, for another example please look at tests/Integration

[](#coming-soon-later-for-another-example-please-look-at-testsintegration)

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity65

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

Total

17

Last Release

2014d ago

Major Versions

0.1.9 → 1.02020-07-30

1.3.3+api.0.6 → 2.0+api.0.72020-09-19

### Community

Maintainers

![](https://www.gravatar.com/avatar/473ff02e02c03daad55bda9fce9c6fec9f9b7af620f55139ce27b1d71545506c?d=identicon)[scruwi](/maintainers/scruwi)

---

Top Contributors

[![scruwi](https://avatars.githubusercontent.com/u/13875215?v=4)](https://github.com/scruwi "scruwi (49 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/utg-epg-client/health.svg)

```
[![Health](https://phpackages.com/badges/utg-epg-client/health.svg)](https://phpackages.com/packages/utg-epg-client)
```

###  Alternatives

[spatie/crawler

Crawl all internal links found on a website

2.8k16.3M52](/packages/spatie-crawler)[shopify/shopify-api

Shopify API Library for PHP

4634.8M16](/packages/shopify-shopify-api)[omniphx/forrest

A Laravel library for Salesforce

2724.4M8](/packages/omniphx-forrest)[xeroapi/xero-php-oauth2

Xero official PHP SDK for oAuth2 generated with OpenAPI spec 3

1054.3M14](/packages/xeroapi-xero-php-oauth2)[bigcommerce/api

Enables PHP applications to communicate with the Bigcommerce API.

1501.1M8](/packages/bigcommerce-api)[muhammadhuzaifa/telescope-guzzle-watcher

Telescope Guzzle Watcher provide a custom watcher for intercepting http requests made via guzzlehttp/guzzle php library. The package uses the on\_stats request option for extracting the request/response data. The watcher intercept and log the request into the Laravel Telescope HTTP Client Watcher.

98239.8k1](/packages/muhammadhuzaifa-telescope-guzzle-watcher)

PHPackages © 2026

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