PHPackages                             gorilla-soft/grimlock - 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. gorilla-soft/grimlock

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

gorilla-soft/grimlock
=====================

Grimlock - Libraries &amp; Utilities for PHP

0.0.1(1mo ago)02MITPHPPHP &gt;=8.4

Since Apr 14Pushed 1mo agoCompare

[ Source](https://github.com/stoneneo/grimlock-php)[ Packagist](https://packagist.org/packages/gorilla-soft/grimlock)[ Docs](https://grimlock.gorilla-soft.com)[ RSS](/packages/gorilla-soft-grimlock/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (6)Versions (4)Used By (0)

Gorilla Soft - Grimlock
=======================

[](#gorilla-soft---grimlock)

[![Grimlock Logo](resources/grimlock.png)](resources/grimlock.png)

What is Grimlock?
=================

[](#what-is-grimlock)

It is a set of libraries and utilities for PHP.

Capabilities
============

[](#capabilities)

- REST Client
- PDF Generation from HTML
- Firebase Push Notifications
- Email Sending
- Logging

Requirements
============

[](#requirements)

- PHP 8.3 or higher
- Composer 2.5.5 or higher

Dependencies
============

[](#dependencies)

- Guzzle
- DomPDF
- PHPMailer
- PHPUnit
- Monolog
- Google Auth

Recommendations
===============

[](#recommendations)

Visit the wiki for more information:

Installation
============

[](#installation)

Installation is super easy with [Composer](https://getcomposer.org/):

```
composer require gorilla-soft/grimlock
```

```
// somewhere early in your project's loading, require the Composer autoloader
// see: http://getcomposer.org/doc/00-intro.md
require 'vendor/autoload.php';
```

How to use
==========

[](#how-to-use)

1. Grimlock Firebase - Push Notification with Firebase
------------------------------------------------------

[](#1-grimlock-firebase---push-notification-with-firebase)

You must have the Firebase public key in the resources folder name firebase.json

Send a notification to a specific person

```
use Grimlock\Module\Notification\Firebase\GrimlockFirebase;
use Grimlock\Module\Notification\Firebase\Bean\Person;
use Grimlock\Module\Notification\Firebase\Bean\Notification;

$firebaseKey = __DIR__ . '/../resources/firebase.json';
$firebaseProject = "";

$grimlockFirebase = new GrimlockFirebase($firebaseProject, $firebaseKey);

$person = new Person();
$person->name = 'Jon';
$person->lastname = 'Doe';
$person->idRegistration = '';

$notification = new Notification();
$notification->title = 'Message Push Test';
$notification->body = 'Hello {NAME} {LASTNAME}. It is a message test.';
$notification->image = $urlImage;

$grimlockFirebase->sendNotification($notification, $person);
```

Send a notification to a topic

```
use Grimlock\Module\Notification\Firebase\GrimlockFirebase;
use Grimlock\Module\Notification\Firebase\Bean\Person;
use Grimlock\Module\Notification\Firebase\Bean\Notification;

$firebaseKey = __DIR__ . '/../resources/firebase.json';
$firebaseProject = "";
$topicId = "topic_test_id";
$urlImage = "";//URL Image Notification

$grimlockFirebase = new GrimlockFirebase($firebaseProject, $firebaseKey);

$notification = new Notification();
$notification->topic = $topicId;
$notification->title = 'Message Push Test';
$notification->body = 'Message Push Test.';
$notification->image = $urlImage;

$grimlockFirebase->sendNotification($notification);
```

2 Grimlock Pdf - Generate PDF from HTML
---------------------------------------

[](#2-grimlock-pdf---generate-pdf-from-html)

```
use GorillaSoft\Grimlock\Module\Pdf\GrimlockPdf;

$pathHtml = __DIR__ . '/../resources/template.html.php';
$pathPdf = __DIR__ . "/../resources";
$namePdf = "test.pdf";

$vars = array("name" => "Test");

$pdf = new GrimlockPdf();
$pdf->loadHTML($pathHtml, $vars);
$pathFilePdf = $pdf->generatePDF($namePdf, $pathPdf);
```

3. Grimlock Rest Client
-----------------------

[](#3-grimlock-rest-client)

```
use Grimlock\Module\RestClient\GrimlockRestClient;

$grimlockRestClient = new GrimlockRestClient('http://localhost:8080');
$grimlockRestClient->addHeader('Authorization', 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30');

//Return Object GrimlockResponse
$response = $grimlockRestClient->get('/customers');

if ($response->getCode() == 200) {
    $data = $response->getBody();
}
```

4. Grimlock Logging
-------------------

[](#4-grimlock-logging)

It is recommended to keep the log folder outside the public area and grant it write permissions.

GrimlockLog must be initialized with the desired log level and the App name. It only needs to be initialized once.

```
use GorillaSoft\Grimlock\Core\Log\GrimlockLog;
use GorillaSoft\Grimlock\Core\Log\Enum\LevelLog;

$log = __DIR__ . '/../logs/logs.txt';
GrimlockLog::init($log, LevelLog::Info);
```

Luego se puede usar el GrimlockLog para registrar mensajes de log en los niveles correspondientes dependiendo de con que nivel fue instanciada la clase.

```
GrimlockLog::error("Message Error");
GrimlockLog::debug("Message Debug");
GrimlockLog::info(("Message Info"));
```

Licencia
--------

[](#licencia)

Grimlock PHP is licensed under the MIT License.

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance89

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 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

Unknown

Total

1

Last Release

56d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3b05d5bb1bc07d3302bf9ad12daca94ed315cfead608d078ea4300e9123aded1?d=identicon)[stoneneo](/maintainers/stoneneo)

---

Top Contributors

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

---

Tags

phputilitieslibrariessoftgorillagrimlock

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/gorilla-soft-grimlock/health.svg)

```
[![Health](https://phpackages.com/badges/gorilla-soft-grimlock/health.svg)](https://phpackages.com/packages/gorilla-soft-grimlock)
```

###  Alternatives

[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.6k38.2k](/packages/matomo-matomo)[google/cloud-core

Google Cloud PHP shared dependency, providing functionality useful to all components.

343128.8M101](/packages/google-cloud-core)[craftcms/cms

Craft CMS

3.6k3.6M2.9k](/packages/craftcms-cms)[tempest/framework

The PHP framework that gets out of your way.

2.2k31.1k11](/packages/tempest-framework)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

744284.3k34](/packages/civicrm-civicrm-core)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.4M506](/packages/shopware-core)

PHPackages © 2026

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