PHPackages                             djgadd/themosis-illuminate - 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. [Caching](/categories/caching)
4. /
5. djgadd/themosis-illuminate

AbandonedArchivedLibrary[Caching](/categories/caching)

djgadd/themosis-illuminate
==========================

A themosis plugin that implements the illuminate/cache packing with a WP\_Object\_Cache driver

1.1.5(8y ago)3559↓100%11GPL-3.0-or-laterPHPPHP &gt;=7.0

Since Mar 6Pushed 8y ago1 watchersCompare

[ Source](https://github.com/djgadd/themosis-illuminate)[ Packagist](https://packagist.org/packages/djgadd/themosis-illuminate)[ RSS](/packages/djgadd-themosis-illuminate/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (10)Versions (17)Used By (11)

Themosis Illuminate
===================

[](#themosis-illuminate)

A package for the Themosis framework that implements various Illuminate packages, some replace the Themosis packages (such as config and validator.) Also loads in most of Laravel's helper functions (see below.)

Install
-------

[](#install)

Install through composer: - `composer require keltiecochrane/themosis-illuminate`

See below for how to activate the individual packages.

Packages
--------

[](#packages)

The following packages have been implemented: -

- [illuminate/config](https://github.com/illuminate/config)
- [illuminate/filesystem](https://github.com/illuminate/filesystem)
- [illuminate/mail](https://github.com/illuminate/mail)
- [illuminate/translation](https://github.com/illuminate/translation)
- [illuminate/validation](https://github.com/illuminate/validation)

### Config

[](#config)

To use the config (which we recommend as it implements ArrayAccess which is required by most of the package implementations here) you'll need to replace Themosis' Service Provider and Facade. It's API compatible but implements additional features (it seems likely Themosis will eventually move to the Illuminate package [in the future too](https://github.com/themosis/framework/issues/372).) Also allows config files to be extended, which is useful in parent/child scenarios.

#### Activation

[](#activation)

Add the service provider to your `theme/resources/config/providers.config.php`: - `KeltieCochrane\Illuminate\Config\ConfigServiceProvider::class`,

Replace the facade in your `theme/resources/config/theme.config.php`: - `'Config' => KeltieCochrane\Illuminate\Config\ConfigFacade::class,`

Note: You don't necassarily have to add the facade at this moment, as it effectively does the same thing that the Themosis facade, but it's worth adding in case we need to make any changes in line with the Illuminate facade in the future.

#### Examples

[](#examples)

Use at you normally would, e.g.: -

```
  // Normal usage
  Config::get('something');

  // Setting a default
  Config::get('theme.locale', 'en-GB');

  // Using ArrayAccess
  app('config')['theme.locale'];

```

### Filesystem

[](#filesystem)

The filesystem is required by Translation and Validation, but is a useful feature to have anyway.

#### Activation

[](#activation-1)

Copy the `filesystem.config.php` file to your `theme/resources/config` folder, some defaults have been setup for you.

Add the service provider to your `theme/resources/config/providers.config.php`: - `KeltieCochrane\Illuminate\Filesystem\FilesystemServiceProvider::class,`

Optionally add the facades in your `theme/resources/config/theme.config.php`: -

```
  'File' => KeltieCochrane\Illuminate\Filesystem\FileFacade::class,
  'Storage' => KeltieCochrane\Illuminate\Filesystem\StorageFacade::class,

```

#### Examples

[](#examples-1)

```
  // Get an array of files in the current directory
  File::files(__DIR__);

  // Make a file in the current directory
  File::put(__DIR__.DS.'file.txt', 'Contents');

  // Put a file in your 'storage' directory
  Storage::disk('local')->put('file.txt', 'Contents');

  // Check if a file exists in your theme's 'dist' directory
  Storage::disk('dist')->exists('css/app.css');

  // Get a file url in your theme's 'dist' directory
  Storage::disk('dist')->url('css/app.css');

```

See the [Laravel docs](https://laravel.com/docs/5.4/filesystem) for more info.

### Mail

[](#mail)

Mail is optional and not required by anything else, but is a nicer way of sending emails than through WordPress. A wp\_mail Transport is provided and is used by default, so if your WordPress instance can send mail so can the Mail service.

#### Activation

[](#activation-2)

Copy the `mail.config.php` file to your `theme/resources/config` folder, configure as appropriate.

If you're going to be using an external service such as MailGun or SparkPost you'll need to add the following to your `theme/resources/services.config.php` (you may need to create this file if you haven't already got one): -

```
  'mailgun' => [
      'domain' => env('MAILGUN_DOMAIN'),
      'secret' => env('MAILGUN_SECRET'),
  ],

  'ses' => [
      'key' => env('SES_KEY'),
      'secret' => env('SES_SECRET'),
      'region' => 'us-east-1',
  ],

  'sparkpost' => [
      'secret' => env('SPARKPOST_SECRET'),
  ],

```

Add the service provider to your `theme/resources/config/providers.config.php`: - `KeltieCochrane\Illuminate\Mail\MailServiceProvider::class,`

Optionally add the facades in your `theme/resources/config/theme.config.php`: - `'Mail' => KeltieCochrane\Illuminate\Mail\MailFacade::class,`

#### Examples

[](#examples-2)

```
  // Send an email
  Mail::send('mail.welcome', ['with' => 'Some data for the view.'], function ($mailer) {
    $attachmentPath = Storage::disk('dist')->getDriver()->getAdapter()->getPathPrefix().'images/call-icon.svg';

    $mailer->to('someone@somecompany.tld')
      ->bcc('mailbin@somecompany.tld')
      ->subject('Subject')
      ->attach($attachmentPath);
  });

```

See the [Laravel docs](https://laravel.com/docs/5.4/mail) for more info.

### Translation

[](#translation)

Translation requires Filesystem to be loaded in and is required by Validation.

#### Activation

[](#activation-3)

Add the service provider to your `theme/resources/config/providers.config.php`: - `KeltieCochrane\Illuminate\Translation\TranslationServiceProvider::class,`

Optionally add the facades in your `theme/resources/config/theme.config.php`: - `'Lang' => KeltieCochrane\Illuminate\Translation\LangFacade::class,`

#### Files

[](#files)

You can add translations from the [Laravel](https://github.com/laravel/laravel/tree/master/resources/lang), you'll need to add them to your `theme/resources/lang` folder, the only one worth copying for now is the validation file (if indeed you're using validation.) You can of course create your own files to add translation throughout your site, but we'd still recommend using a translation plugin.

#### Examples

[](#examples-3)

```
  // Is there a translation available in 'file' under 'key'
  Lang::has('file.key');

  // Is there a translation under the 'it' locale for 'file' under 'key'
  // Refuse to use the fall back locale
  Lang::has('file.key', 'it', false);

  // Get the translation
  Lang::trans('file.key');

  // Get the translation and replace some text in it
  Lang::trans('file.key', ['name' => 'John']);

  // Get the 'it' translation and replace some text in it
  // Refuse to use the fall back locale
  Lang::trans('file.key', ['name' => 'John'], 'it', false);

```

See the [Laravel docs](https://laravel.com/docs/5.4/localization) for more info.

### Validation

[](#validation)

Validation requires Translation and Filesystem. It replaces the built in Themosis Validator (if you use the facade) which is more of a sanatiser than a validator. The Validator has been extended with a `valid_nonce` rule that can be used to verify a nonce.

#### Activation

[](#activation-4)

Add the service provider to your `theme/resources/config/providers.config.php`: - `KeltieCochrane\Illuminate\Validation\ValidationServiceProvider::class,`

Add the facades in your `theme/resources/config/theme.config.php`: - `'Validator' => KeltieCochrane\Illuminate\Validation\ValidatorFacade::class,`

#### Examples

[](#examples-4)

```
  $validator = Validator::make($request->all(), [
    'title' => 'required|max:255',
    'body' => 'required',
    'nonce' => 'valid_nonce:action',
  ]);

  if ($validator->fails()) {
    return view()->with([
	  'errors' => $validator->errors(),
    ]);
  }

```

See the [Laravel docs](https://laravel.com/docs/5.4/validation#manually-creating-validators) for more info.

Helpers
-------

[](#helpers)

The following (additional) helpers are available: -

- array\_add
- array\_collapse
- array\_divide
- array\_dot
- array\_first
- array\_flatten
- array\_forget
- array\_has
- array\_last
- array\_only
- array\_pluck
- array\_prepend
- array\_pull
- array\_sort
- array\_sort\_recursive
- array\_where
- array\_wrap
- camel\_case
- class\_basename
- class\_uses\_recursive
- collect
- config
- data\_fill
- data\_get
- data\_set
- ends\_with
- env
- head
- kebab\_case
- last
- object\_get
- preg\_replace\_array
- retry
- request
- snake\_case
- str\_finish
- str\_limit
- str\_plural
- str\_random
- str\_replace\_array
- str\_replace\_first
- str\_replace\_last
- str\_singular
- str\_slug
- studly\_case
- tap
- title\_case
- trait\_uses\_recursive
- trans
- trans\_choice
- validator
- windows\_os

See the [Laravel docs](https://laravel.com/docs/5.4/helpers) for more info.

Todo
----

[](#todo)

- Tests - a lot of this is trusting in the Laravel packages and Themosis behaving themselves
- Add more packages
- Possibly merge Cache and Logger into this so there's one package to rule them all

Support
-------

[](#support)

This package is provided as is, though we'll endeavour to help where we can.

Contributing
------------

[](#contributing)

Any contributions would be encouraged and much appreciated, you can contribute by: -

- Reporting bugs
- Suggesting features
- Sending pull requests

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity66

Established project with proven stability

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

Recently: every ~79 days

Total

10

Last Release

2942d ago

Major Versions

0.1.0 → 1.0.02017-04-13

### Community

Maintainers

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

---

Tags

themosisthemosis-frameworkwordpresspluginthemosis

### Embed Badge

![Health badge](/badges/djgadd-themosis-illuminate/health.svg)

```
[![Health](https://phpackages.com/badges/djgadd-themosis-illuminate/health.svg)](https://phpackages.com/packages/djgadd-themosis-illuminate)
```

###  Alternatives

[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[genealabs/laravel-model-caching

Automatic caching for Eloquent models.

2.4k4.8M26](/packages/genealabs-laravel-model-caching)[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)[themosis/framework

The Themosis framework.

676307.9k18](/packages/themosis-framework)[mikebronner/laravel-model-caching

Automatic caching for Eloquent models.

2.4k127.1k1](/packages/mikebronner-laravel-model-caching)

PHPackages © 2026

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