PHPackages                             phnxdgtl/ctrl-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. [API Development](/categories/api)
4. /
5. phnxdgtl/ctrl-client

ActiveLibrary[API Development](/categories/api)

phnxdgtl/ctrl-client
====================

A collection of client APIs for use with the CTRL CMS

038PHP

Since Jan 20Pushed 2y ago1 watchersCompare

[ Source](https://github.com/phnxdgtl/ctrl-client)[ Packagist](https://packagist.org/packages/phnxdgtl/ctrl-client)[ RSS](/packages/phnxdgtl-ctrl-client/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

\#CTRL Client Package

\##Installation instructions

Add this code to your `composer.json` file:

```
"repositories": [
    {
        "type": "git",
        "url": "https://github.com/phnxdgtl/ctrl-client"
    }
]

```

You can then install the libraries via:

`composer require phnxdgtl/ctrl-client`

\###Note

We have an installation issue with Laravel Datatables in Laravel 9, as described here:

([https://github.com/yajra/laravel-datatables-buttons/issues/143)\[https://github.com/yajra/laravel-datatables-buttons/issues/143\]](https://github.com/yajra/laravel-datatables-buttons/issues/143)%5Bhttps://github.com/yajra/laravel-datatables-buttons/issues/143%5D)

In the short-term, we've added these lines to `composer.json` for the Client

```
"psr/simple-cache": "^1.0",
"maatwebsite/excel": "^3.1",

```

This also requires the `--with-all-dependencies` option, as follows:

`composer require phnxdgtl/ctrl-client -W`

These should be removed once Laravel Datatables is updated to fully support Laravel 9.

\##S3 buckets

Each site requires its own S3 bucket. These can be configured as Linode Object Storage.

Once a key has been generated, add the following lines to `app/config/filesystems.php`:

```
ctrl' => [
    'driver'   => 's3',
    'key'      => env('LINODE_STORAGE_ACCESS_KEY'),
    'secret'   => env('LINODE_STORAGE_SECRET_ACCESS_KEY'),
    'endpoint' => env('LINODE_STORAGE_ENDPOINT'),
    'region'   => env('LINODE_STORAGE_REGION'),
    'bucket'   => env('LINODE_STORAGE_BUCKET'),
],

```

You'll also need the following in `.env`; the default keys are shown here:

```
LINODE_STORAGE_ACCESS_KEY=BPFQN7ALXK1F3AQV1SQR
LINODE_STORAGE_SECRET_ACCESS_KEY=dsoJpJez2AIF75SJCwk5sh3HtTMKEgFLsCfRrzQF
LINODE_STORAGE_ENDPOINT=https://eu-central-1.linodeobjects.com
LINODE_STORAGE_REGION=eu-central-1
LINODE_STORAGE_BUCKET=********

```

\##Images

I like [Laravel Thumbnail](https://github.com/rolandstarke/laravel-thumbnail) for this.

`composer require rolandstarke/laravel-thumbnail`

You can then call the following to render an image from CTRL:

`Thumbnail::src(Storage::disk('ctrl')->url(*$object->image*))->smartcrop(200, 200)->url();`

\##Typesense

Add the following to `.env` to use the default Typesense account:

```
TYPESENSE_HOST=1yhk982netu73cplp-1.a1.typesense.net
TYPESENSE_KEY=kUp6Gg9CEzlR0dsdGxx87rMf1yJNYxVM

```

\##Setting up the site in CTRL

Log into the CTRL Server, and add the site.

You should then copy the API Key to `.env`, as follows:

`\CTRL_KEY=********`

That's it.

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity25

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/8045680d1e581119cf3cae2dce03fd8de65b8c04cf3f4c0c47fa315c875218af?d=identicon)[phnxdgtl](/maintainers/phnxdgtl)

---

Top Contributors

[![phnxdgtl](https://avatars.githubusercontent.com/u/68986931?v=4)](https://github.com/phnxdgtl "phnxdgtl (39 commits)")

### Embed Badge

![Health badge](/badges/phnxdgtl-ctrl-client/health.svg)

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

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M475](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M270](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M453](/packages/google-gax)

PHPackages © 2026

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