PHPackages                             tivins/php-core - 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. tivins/php-core

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

tivins/php-core
===============

2.0.0(1w ago)027↓100%MITPHPPHP ^8.2CI passing

Since May 16Pushed 1w agoCompare

[ Source](https://github.com/tivins/php-core)[ Packagist](https://packagist.org/packages/tivins/php-core)[ RSS](/packages/tivins-php-core/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (2)Versions (10)Used By (0)

tivins/php-core
===============

[](#tivinsphp-core)

Bibliothèque PHP légère (utilitaires CLI, HTTP sortant, fichiers, `.env`, mini-API JSON + JWT).

- **PHP** : `^8.2`
- **Licence** : MIT
- **Dépendance runtime** : [`firebase/php-jwt`](https://github.com/firebase/php-jwt) `^7.0`

Installation
------------

[](#installation)

```
composer require tivins/php-core
```

Modules
-------

[](#modules)

NamespaceRôle`Tivins\PhpCore\DotEnv`Chargement minimal d’un fichier `.env``Tivins\PhpCore\Request` / `Response`Client HTTP sortant (cURL)`Tivins\PhpCore\CliArgv`Analyse portable de `$argv` (Windows-friendly)`Tivins\PhpCore\Io\File`Lecture/écriture texte et JSON`Tivins\PhpCore\Tty`Détection du contexte CLI`Tivins\PhpCore\Api\*`Routeur regex, réponses JSON, JWT HS256Voir le [CHANGELOG](CHANGELOG.md) pour l’historique des versions.

Exemples
--------

[](#exemples)

### Variables d’environnement

[](#variables-denvironnement)

```
use Tivins\PhpCore\DotEnv;

DotEnv::loadFile(__DIR__ . '/.env');
// ou, sans erreur si le fichier est absent :
DotEnv::tryLoadFile(__DIR__ . '/.env');
```

Le parseur est volontairement simple : une paire `clé=valeur` par ligne, commentaires `#`, premier `=` séparateur. Pas de guillemets ni d’expansion de variables (contrairement à Symfony Dotenv).

### Requête HTTP sortante

[](#requête-http-sortante)

```
use Tivins\PhpCore\Request;

$response = Request::get('https://api.example.com/status')
    ->timeout(10)
    ->send();

if ($response->isSuccessful()) {
    $data = $response->decodeJson();
}
```

**Important** : n’utilisez pas `Request` avec une URL fournie par un utilisateur sans liste blanche — risque de SSRF.

### JWT (API)

[](#jwt-api)

Définir `JWT_SECRET` (≥ 32 octets) dans l’environnement :

```
use Tivins\PhpCore\Api\AccessToken;
use Tivins\PhpCore\Api\Auth;

$token = AccessToken::issue($userId);
$userId = AccessToken::verify($token);

// ou, dans un endpoint :
$userId = Auth::requireUserId(); // 401 JSON si absent / invalide
```

### CLI

[](#cli)

```
use Tivins\PhpCore\CliArgv;

$argv = CliArgv::fromGlobals();
$verbose = $argv->hasLongFlag('verbose');
$config = $argv->longFlagValue('config');
```

Développement
-------------

[](#développement)

```
composer install
composer test
composer audit
```

La CI (GitHub Actions) exécute les tests et `composer audit` sur PHP 8.2, 8.3 et 8.4 (PHPUnit 11 en dev).

Sécurité
--------

[](#sécurité)

Consulter [SECURITY.md](SECURITY.md) pour signaler une vulnérabilité et les bonnes pratiques (JWT, `.env`, HTTP sortant).

Symfony : quand migrer ?
------------------------

[](#symfony--quand-migrer-)

Ce paquet vise les **scripts et micro-services** avec peu de dépendances. Pour une application web complète (routing, sécurité, validation, DI), préférez les composants Symfony (`http-client`, `dotenv`, `security`, etc.) ou un framework complet.

Garder `php-core` reste pertinent pour homogénéiser des utilitaires transverses sans importer Symfony.

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance98

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity52

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

Every ~1 days

Total

9

Last Release

12d ago

Major Versions

1.5.2 → 2.0.02026-05-28

### Community

Maintainers

![](https://www.gravatar.com/avatar/13aae62b30274178dfd8d18ce4b6bee1a7d7bcbc9db17c2d22b2be5c7b51edc4?d=identicon)[Tivins](/maintainers/Tivins)

---

Top Contributors

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

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/tivins-php-core/health.svg)

```
[![Health](https://phpackages.com/badges/tivins-php-core/health.svg)](https://phpackages.com/packages/tivins-php-core)
```

###  Alternatives

[civicrm/civicrm-core

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

744284.3k34](/packages/civicrm-civicrm-core)[firefly-iii/data-importer

Firefly III Data Import Tool.

7905.8k](/packages/firefly-iii-data-importer)[mynaparrot/plugnmeet-sdk

plugNmeet PHP SDK

102.5k](/packages/mynaparrot-plugnmeet-sdk)

PHPackages © 2026

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