PHPackages                             dwarvesforge/thorin - 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. dwarvesforge/thorin

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

dwarvesforge/thorin
===================

PHP toolkit that offers you some nice helpers, missing functions, advanced capabilities through vendors, etc...

2.0.10(7y ago)0493[5 PRs](https://github.com/Dwarvesforge/thorin/pulls)1MITPHPPHP &gt;=5.4

Since Dec 22Pushed 3y ago1 watchersCompare

[ Source](https://github.com/Dwarvesforge/thorin)[ Packagist](https://packagist.org/packages/dwarvesforge/thorin)[ RSS](/packages/dwarvesforge-thorin/feed)WikiDiscussions master Synced 2w ago

READMEChangelogDependencies (39)Versions (38)Used By (1)

[![Thorin](.resources/doc-header.jpg)](.resources/doc-header.jpg)

Thorin
======

[](#thorin)

 [ ![](https://camo.githubusercontent.com/01b106b14d436d020739527d3768c03e6fad37e18527b0acf5051b73f20acf46/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f44776172766573666f7267652f74686f72696e2e7376673f7374796c653d666c61742d737175617265) ](https://travis-ci.org/Dwarvesforge/thorin)

Thorin is a pretty simple toolkit that gives you a lot of cool helpers functions in multiple areas like:

#### Functions

[](#functions)

- [App](doc/functions/app.md)
- [Array](doc/functions/array.md)
- [Cache](doc/functions/cache.md)
- [Cast](doc/functions/cast.md)
- [Collection](doc/functions/collection.md)
- [Color](doc/functions/color.md)
- [Config](doc/functions/config.md)
- [Datetime](doc/functions/datetime.md)
- [DB](doc/functions/db.md)
- [Email](doc/functions/email.md)
- [Event](doc/functions/event.md)
- [Filesystem](doc/functions/filesystem.md)
- [Function](doc/functions/function.md)
- [Hook](doc/functions/hook.md)
- [i18n](doc/functions/i18n.md)
- [Image](doc/functions/image.md)
- [Is](doc/functions/is.md)
- [Media](doc/functions/media.md)
- [Object](doc/functions/object.md)
- [Path](doc/functions/path.md)
- [Recaptcha](doc/functions/recaptcha.md)
- [Security](doc/functions/security.md)
- [Session](doc/functions/session.md)
- [String](doc/functions/string.md)
- [Url](doc/functions/url.md)
- [Util](doc/functions/util.md)
- [Vendor](doc/functions/vendor.md)
- [View](doc/functions/view.md)

#### Classes

[](#classes)

- [Singleton](doc/src/classes/util/Singleton.md)

Table of content
----------------

[](#table-of-content)

1. [Goals](#readme-goals)
2. [Install](#readme-install)
3. [Documentation](doc)
4. [Contribute](#readme-contribute)
5. [License](#readme-license)
6. [Who are Dwarvesforge](#readme-who-are-dwarvesforge)

Goals
-----

[](#goals)

The main goal of this toolkit is to **give you some nice and powerful features through a simple API**. We will make this package grow every time we encounter and implement some nice functions/classes/helpers.

Install
-------

[](#install)

```
composer require dwarvesforge/thorin

```

> You can install the [Thorin Visual Studio Code Snippets Extension](https://marketplace.visualstudio.com/items?itemName=Dwarvesforge.dwarvesforge-thorin-snippets) to help you using the package.

Get Started
-----------

[](#get-started)

To start using Thorin you have two choices. The first is the simplier the second the harder.

### First solution

[](#first-solution)

Create the files/folders structure described bellow and start using Thorin with his full power right now:

- | .env
- | app
- |--- cache
- |------- views
- |--- config
- |--- lang
- |------- en
- |--- views
- | public (document root)
- |--- dist

### Second solution

[](#second-solution)

The second solution require that you set the various configurations by yourself if you need another folders structure. To do so, you'll need first:

#### Specify where your config files are

[](#specify-where-your-config-files-are)

First choice, using the `.env` file at the root of your project

```
T_CONFIG_PATH=/something/absolute/to/the/server/root/

```

Or by defining a constant like so **BEFORE loading Thorin**:

```
define('T_CONFIG_PATH', '/something/absolute/to/the/server/root/');
```

The default value for this config is `app/config/`

#### Changing the path of each modules individually

[](#changing-the-path-of-each-modules-individually)

To do so, you'll need to create some config files to override the default configs that you can find here:

- Application config : [`app/config/app.php`](doc/config/app.md)
- Cache config : [`app/config/cache.php`](doc/config/cache.md)
- DB config : [`app/config/db.php`](doc/config/db.md)
- Email config : [`app/config/email.php`](doc/config/email.md)
- Filesystem config : [`app/config/filesystem.php`](doc/config/filesystem.md)
- i18n config : [`app/config/i18n.php`](doc/config/i18n.md)
- Image config : [`app/config/image.php`](doc/config/image.md)
- **Path config** : [`app/config/path.php`](doc/config/path.md)
- Recaptcha config : [`app/config/recaptcha.php`](doc/config/recaptcha.md)
- Session config : [`app/config/session.php`](doc/config/session.md)

To override some config, simply create a file with the same name in your config folder and override it inside this file.

`.env` file
-----------

[](#env-file)

The `.env` file can contains a set of environment variables. Here's the file that document them:

- **Example** : [`.env.example`](doc/.env.example.md)

Contribute
----------

[](#contribute)

Dwarvesforge is an open source project and will ever be! You are more that welcomed to contribute to his development and make it more awesome every day. To do so, you have several possibilities:

1. [Share the love ❤️](https://github.com/Dwarvesforge/dwarvesforge/blob/master/contribute.md#contribute-share-the-love)
2. [Declare issues](https://github.com/Dwarvesforge/dwarvesforge/blob/master/contribute.md#contribute-declare-issues)
3. [Fix issues](https://github.com/Dwarvesforge/dwarvesforge/blob/master/contribute.md#contribute-fix-issues)
4. [Add features](https://github.com/Dwarvesforge/dwarvesforge/blob/master/contribute.md#contribute-add-features)

License
-------

[](#license)

The code is available under the [MIT license](LICENSE.txt). This mean that you can use, modify, or do whatever you want with it. This mean also that it is shipped to you for free, so don't be a hater and if you find some issues, etc... feel free to [contribute](https://github.com/Dwarvesforge/dwarvesforge/blob/master/contribute.md) instead of sharing your frustrations on social networks like an asshole...

Who are Dwarvesforge
--------------------

[](#who-are-dwarvesforge)

We try to be **some cool guys** that build **some cool tools** to make our (and yours hopefully) **every day life better**.

#### [More on who we are](https://github.com/Dwarvesforge/dwarvesforge/blob/master/who-are-we.md)

[](#more-on-who-we-are)

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity70

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

Recently: every ~24 days

Total

31

Last Release

2589d ago

Major Versions

1.1.11 → 2.0.02018-11-20

### Community

Maintainers

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

---

Top Contributors

[![olivierbossel](https://avatars.githubusercontent.com/u/739765?v=4)](https://github.com/olivierbossel "olivierbossel (382 commits)")

---

Tags

phptoolkitforgethorindwarves

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/dwarvesforge-thorin/health.svg)

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

###  Alternatives

[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.6k38.2k](/packages/matomo-matomo)[psalm/plugin-laravel

Psalm plugin for Laravel

3345.1M337](/packages/psalm-plugin-laravel)[aedart/athenaeum

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

245.2k](/packages/aedart-athenaeum)[flarum/core

Delightfully simple forum software.

201.4M2.2k](/packages/flarum-core)

PHPackages © 2026

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