PHPackages                             hmj1026/devkit - 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. [Logging &amp; Monitoring](/categories/logging)
4. /
5. hmj1026/devkit

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

hmj1026/devkit
==============

Generic PHP/Laravel dev kit — unified entity audit logging, Http gateway, Elasticsearch toolkit, SMS dispatch, file uploader, Google Chat logger, and Laravel helpers. Targets PHP 7.3 → 8.x and Laravel 6 → 11.

v1.0.0(1mo ago)00MITPHPPHP ^7.3 || ^8.0CI passing

Since May 29Pushed 1mo agoCompare

[ Source](https://github.com/hmj1026/devkit)[ Packagist](https://packagist.org/packages/hmj1026/devkit)[ RSS](/packages/hmj1026-devkit/feed)WikiDiscussions master Synced 1w ago

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

hmj1026/devkit
==============

[](#hmj1026devkit)

**English** | [繁體中文](./README.zh-TW.md)

[![Tests](https://github.com/hmj1026/devkit/actions/workflows/tests.yml/badge.svg)](https://github.com/hmj1026/devkit/actions/workflows/tests.yml)[![Latest Version](https://camo.githubusercontent.com/3ec08b06269c98046748d4fc4408845c4e8912ab378d306a598cbbcd875e2c96/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f686d6a313032362f6465766b69742e737667)](https://packagist.org/packages/hmj1026/devkit)[![PHP Version](https://camo.githubusercontent.com/3c02c4d22e2d08d75c022c9e872a3224fd53fd03034345fc18518cf06baf95c2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f686d6a313032362f6465766b69742f7068702e737667)](https://packagist.org/packages/hmj1026/devkit)[![License](https://camo.githubusercontent.com/0f6e65f12035abec911a52edf926d31ca2a05a0b5ac76fd31ca64c86ad336837/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f686d6a313032362f6465766b69742e737667)](./LICENSE)

A generic, framework-agnostic PHP toolkit with optional Laravel integration. Bundles common building blocks for backend services — HTTP gateway, Elasticsearch toolkit, SMS dispatch, file uploader, audit logging, Google Chat error logger, meta tags, breadcrumb trail — into a single Composer package.

Released as **v1.0.0** (stable). All 14 capabilities are implemented, tested across a 19-cell PHP × Laravel CI matrix, and documented. See the [CHANGELOG](./CHANGELOG.md) for release history and [CONTRIBUTING](./CONTRIBUTING.md) for the development workflow.

Supported runtimes
------------------

[](#supported-runtimes)

PHPLaravelMonologNotes7.36.x / 7.x / 8.x2.9Lowest supported floor (PHP 7.2 excluded — `elasticsearch/elasticsearch ^7.17` requires PHP 7.3+)7.46.x / 7.x / 8.x2.9Most common legacy target8.06.x / 7.x / 8.x / 9.x2.98.18.x / 9.x / 10.x2.9 (L8/9) / 3.x (L10)8.29.x / 10.x / 11.x2.9 (L9) / 3.x (L10/11)L11 also requires `butschster/meta-tags ^3.0`8.310.x / 11.x3.x8.411.x3.xNewest cell; requires PHPUnit `^11.0`Incompatible cells (e.g. PHP 7.3 + Laravel 9, PHP 8.1+ + Laravel 6/7, PHP 7.2 + anything) are excluded by Composer's resolver and by the CI matrix in [`.github/workflows/tests.yml`](./.github/workflows/tests.yml). Every valid cell admitted by the `php: ^7.3 || ^8.0` constraint (19 in total) is exercised. The package declares `monolog/monolog ^2.9 || ^3.0` and `butschster/meta-tags ^2.1 || ^3.0`; Laravel 10+ forces monolog 3, Laravel 11 forces meta-tags 3, and the GoogleChat handler + Meta wrapper detect the installed major at autoload time.

A v2 with PHP `^8.1` floor will swap Monolog → 3.x, Flysystem → 3-only, and consider [spatie/laravel-activitylog](https://github.com/spatie/laravel-activitylog) as the audit-log engine.

Install
-------

[](#install)

```
composer require hmj1026/devkit
```

On Laravel projects, the root `Devkit\Laravel\DevkitServiceProvider` is registered via `extra.laravel.providers` package auto-discovery. Module sub-providers are enabled by default and can be disabled per module via `config/devkit.php`.

Usage
-----

[](#usage)

### Framework-agnostic (no Laravel)

[](#framework-agnostic-no-laravel)

```
use Devkit\Http\Client\Gateway;
use GuzzleHttp\Client;

$gateway = new Gateway(new Client(['base_uri' => 'https://api.example.com']));
$response = $gateway->request('GET', '/health');
```

### Laravel

[](#laravel)

```
use Devkit\Laravel\Http\Facades\HttpUri;

$assetUrl = HttpUri::url('/images/logo.png');
```

Module-level usage lives in [`docs/`](./docs/) and the capability specs under [`openspec/specs/*/spec.md`](./openspec/specs/).

Module map (14 capabilities)
----------------------------

[](#module-map-14-capabilities)

Framework-agnostic core (`Devkit\Core\*`, `Devkit\Database\*`, `Devkit\Http\*`, `Devkit\Storage\*`, `Devkit\Search\*`, `Devkit\Messaging\*`, `Devkit\Logging\*`, `Devkit\Ui\*`):

- `devkit-enum` — Reflection-based PHP enum base class for the PHP 7.3+ compatibility floor.
- `devkit-http-foundation` — `AbstractHttpException` + JSON/Web envelope returns PSR-7 `ResponseInterface`.
- `devkit-http-gateway` — Single-class Gateway around Guzzle with retry/backoff + log observer.
- `devkit-asset-versioning` — PSR-16-cached asset URL versioning.
- `devkit-file-uploader` — Director pattern over Flysystem 1/2/3 with cross-version visibility mapping.
- `devkit-elasticsearch` — ES 7.17 client with Index/Alias bases and raw array DSL (no Query Builder).
- `devkit-sms-dispatch` — Driver contract + Manager + NullDriver + `AbstractHttpSmsDriver`.
- `devkit-googlechat-logger` — Dual Monolog 2.9 / 3.x handler for Google Chat webhooks (version selected per Laravel cell).
- `devkit-blade-helpers` — Trail (breadcrumb) + dual butschster/meta-tags 2.x / 3.x wrapper with weight-sorted ordering.
- `devkit-eloquent-helpers` — `HasUuid` / `HasStatus` / `HasAuditLog` traits + Criteria + Casts. Laravel 6 consumers must `use UsesClassCastCompatibility` on models with `EncryptedCast` / `HashedCast`.
- `devkit-audit-logging` — Strategy-based entity change logger with Eloquent + Elasticsearch targets.
- `devkit-sqs-fifo-queue` — Laravel-only SQS FIFO queue connector.

Laravel glue (`Devkit\Laravel\*`):

- `devkit-laravel-integration` — Root `DevkitServiceProvider`, 5 opt-in Artisan generators (`devkit:make:service`, `:action`, `:enum`, `:audit-log-target`, `:http-client`), publishable stubs, `devkit:install`.

Local development
-----------------

[](#local-development)

Composer scripts drive the test, lint, and static-analysis tooling:

```
composer test:core      # phpunit --testsuite=core (pure PHP, no Laravel)
composer test:laravel   # phpunit --testsuite=laravel (Orchestra Testbench)
composer test:unit      # both testsuites
composer lint           # php-cs-fixer --dry-run --diff
composer lint:fix       # php-cs-fixer
composer stan           # phpstan (level 5; requires phpstan on PATH — see below)
```

Static analysis runs on PHP 8.2 via a PHPStan PHAR (PHPStan 2.x does not install on the PHP 7.3 cells), so `composer stan` needs `phpstan` available — install it globally or use the CI `quality` job. The baseline (`phpstan-baseline.neon`) freezes the cross-version polyfill artifacts; new code must analyse clean.

Reproduce a single CI cell locally (cleanup with `git checkout -- composer.json && composer install`):

```
composer matrix:list                          # list every (php, laravel) cell
composer matrix:test -- 8.2 11                # install that cell's deps + run both suites
```

The full CI matrix (PHP 7.3 → 8.4 × Laravel 6 → 11, 19 cells) plus a `quality` job (PHPStan + coverage) runs on GitHub Actions; see [`.github/workflows/tests.yml`](./.github/workflows/tests.yml).

Versioning
----------

[](#versioning)

This package follows [Semantic Versioning](https://semver.org). The public contracts under `Devkit\Core\*`, `Devkit\Http\*`, `Devkit\Storage\*`, `Devkit\Search\*`, `Devkit\Messaging\*`, `Devkit\Logging\*`, `Devkit\Ui\*`, and the documented Laravel facades are stable within the `1.x` line. Breaking changes — bumping the PHP floor to `^8.1`, dropping Monolog 2 / Flysystem 1 support, or scaffolding output requiring newer PHP syntax — are reserved for `2.0` (see [`docs/v2-roadmap.md`](./docs/v2-roadmap.md)). Release history: [CHANGELOG](./CHANGELOG.md).

Contributing &amp; security
---------------------------

[](#contributing--security)

- [CONTRIBUTING.md](./CONTRIBUTING.md) — branch flow, OpenSpec workflow, polyfill discipline, local commands.
- [SECURITY.md](./SECURITY.md) — supported versions and private vulnerability reporting.

OpenSpec workflow
-----------------

[](#openspec-workflow)

This package is managed with [OpenSpec](https://github.com/Fission-AI/OpenSpec). The canonical capability specs live under [`openspec/specs/`](./openspec/specs/); in-flight changes (each a proposal + design + spec delta) live under [`openspec/changes/`](./openspec/changes/), and completed changes are archived under `openspec/changes/archive/`.

License
-------

[](#license)

Released under the [MIT License](./LICENSE). Copyright (c) 2026 Paul.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance89

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity40

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://avatars.githubusercontent.com/u/18025418?v=4)[Paul](/maintainers/hmj1026)[@hmj1026](https://github.com/hmj1026)

---

Top Contributors

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

---

Tags

phpFlysystemlaravelelasticsearchsmsmonologaudit-logGoogle-Chathttp-gateway

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/hmj1026-devkit/health.svg)

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

###  Alternatives

[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k16](/packages/tempest-framework)[flow-php/flow

PHP ETL - Extract Transform Load - Data processing framework

85036.3k](/packages/flow-php-flow)[laravel/framework

The Laravel Framework.

34.8k543.8M20.5k](/packages/laravel-framework)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M600](/packages/shopware-core)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[aedart/athenaeum

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

255.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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