PHPackages                             wlib/utils - 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. wlib/utils

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

wlib/utils
==========

Helpers functions for arrays, strings, files, debugging, ...

v1.6.0(11mo ago)0522CECILL-2.1PHPPHP &gt;=7.1.0

Since Jul 28Pushed 11mo ago1 watchersCompare

[ Source](https://github.com/SamRay1024/wlib-utils)[ Packagist](https://packagist.org/packages/wlib/utils)[ RSS](/packages/wlib-utils/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (8)Dependencies (1)Versions (12)Used By (2)

wlib/utils
==========

[](#wlibutils)

Fonctions PHP utilitaires.

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

[](#installation)

```
composer require wlib/utils
```

Sucreries disponibles
---------------------

[](#sucreries-disponibles)

### Tableaux

[](#tableaux)

#### Fonctions génériques

[](#fonctions-génériques)

```
// Vérifier la présence d'une clé dans un tableau ou une instance de ArrayAccess
function isArrayKey(array|ArrayAccess $aArray, int|string $mKey): bool;

// Accéder à une valeur dans un tableau ou retourner une valeur par défaut
function arrayValue(array|ArrayAccess &$aArray, int|string $mKey, mixed $mDefault = null): mixed;

// Etendre un tableau à la façon jQuery.extend()
function arrayExtend(array &$aTarget, array ...$aArrays): void;
```

#### Accesseurs génériques

[](#accesseurs-génériques)

```
function access(array &$aArray, string|array $mName = '', mixed $mDefault = null): mixed;
function unaccess(array &$aCursor, string|int ...$mKey): void;
```

`access()` et `unaccess()` sont des accesseurs génériques qui permettent de lire, écrire et retirer des éléments dans des tableaux multidimentionnels de façon simplifiée.

Ils permettent notamment d'économiser les contrôles incessants sur l'existence des clés avant d'y accéder :

```
// Accès basique
access($array, 'keyname');
access($array, 'keyname', 'default value if keyname is not set');

// Accès multidimentionnel
access($array, 'level1.level2.level3');
// Similaire à $array['level1']['level2']['level3']...sans avoir besoin de vérifier l'existence de chaque dimension

// Ecrire un élément (ajout ou mise à jour)
access($array, ['keyname' => 'keyvalue']);

// Ecrire plusieurs éléments
access($array, [
	'key1' => 'value1',	// Similaire à $array['key1'] = 'value1';
	'key2' => 'value2',
	'a.b.c' => 'value3'	// Similaire à $array['a']['b']['c'] = 'value3';
]);

// Retirer des éléments
unaccess($array, 'key1');					// Similaire à unset($array['key1'])
unaccess($array, 'a.b.c');					// Similaire à unset($array['a']['b']['c']);
unaccess($array, 'key2', 'key3', 'a.b.c');	// Similaire à unset($array['key2'], $array['key3'], $array['a']['b']['c']);
```

#### Accès aux superglobales

[](#accès-aux-superglobales)

Maintenant que vous connaissez `access()` et `unaccess()`, vous pouvez accédez aux superglobales de PHP de la même façon :

```
// Encapsulation d'access()
function globals(string|array $mName = '', mixed $mDefault = null): mixed;
function server(string|array $mName = '', mixed $mDefault = null): mixed;
function get(string|array $mName = '', mixed $mDefault = null): mixed;
function post(string|array $mName = '', mixed $mDefault = null): mixed;
function files(string|array $mName = '', mixed $mDefault = null): mixed;
function cookie(string $sName = '', mixed $mDefault = null): mixed;
function session(string|array $mName = '', mixed $mDefault = null): mixed;
function request(string|array $mName = '', mixed $mDefault = null): mixed;
function env(string|array $mName = '', mixed $mDefault = null): mixed;

// Encapsulations d'unaccess()
function unglobals(string|int $mKey): void;
function unserver(string|int $mKey): void;
function unget(string|int $mKey): void;
function unpost(string|int $mKey): void;
function unfiles(string|int $mKey): void;
function uncookie(string|int $mKey): void;
function unsession(string|int $mKey): void;
function unrequest(string|int $mKey): void;
function unenv(string|int $mKey): void;
```

#### `config()`

[](#config)

```
function config(string $sName = '', mixed $mDefault = null): mixed;
```

Cette fonction, qui bénéficie également des petites douceurs proposées par `access()`, est un outil qui propose de structurer des tableaux contenants, par exemple, les valeurs de configuration de votre application :

```
// Prérequis, définir le(s) dossier(s) où vont se trouver des fichiers de configuration
$_CONFIG['__include_paths'] = __DIR__.'/cfg';

// Fichier __DIR__.'/cfg/app.php'
return [
	'title'	=> 'My awesome app',
	'locale' => [
		'timezone' => 'Europe/Paris'
	]
]

// Le premier terme de $sName correspond au nom du fichier auquel accéder
echo config('app.title', 'Define your title app'); // > My awesome app
date_default_timezone_set(config('app.locale.timezone'));
```

### Déboguage

[](#déboguage)

```
// Dumper les arguments donnés et continuer l'exécution
function vd(...$var): void;

// Dumper les arguments donnés et arrêter l'exécution
function vdd(...$var): void;
```

### Fichiers

[](#fichiers)

```
// Créer le dossier à l'adresse donnée s'il n'existe pas déjà
function ckdir($sDirName, $iMode = 0644): bool;
```

### Chaînes de caractères

[](#chaînes-de-caractères)

```
// Vérifier si la chaîne donnée est au format UTF-8
function isUTF8($sString): bool;

// Retirer les accents de la chaîne donnée
function removeAccents($sString): string;
```

*Ces deux fonctions proviennent de la base de code de WordPress !*

#### Chiffrement

[](#chiffrement)

```
// Générer un mot de passe aléatoire de la longueur donnée
function makePassword(int $iLen): string;

// Générer une clé privée de la longueur attendue par l'algorythme donné
function makePrivateKey(string $sCipher = 'aes-256-ctr'): string;

// Crypter une chaîne
function encrypt(string $sData, string $sPrivateKey, string $sCipher = 'aes-256-ctr'): string;

// Décrypter une chaine
function decrypt(string $sData, string $sPrivateKey, string $sCipher = 'aes-256-ctr'): string;
```

Exemple :

```
$key = makePrivateKey();
$data = 'Some content to protect';

$enc = encrypt($data, $key);

if (decrypt($enc, $key) == $data)
	echo 'All is under control !';
```

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance51

Moderate activity, may be stable

Popularity8

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity45

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

Recently: every ~117 days

Total

11

Last Release

344d ago

### Community

Maintainers

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

---

Top Contributors

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

---

Tags

arrayhelpersdebugfilesstringsutilswlib

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/wlib-utils/health.svg)

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

###  Alternatives

[danielstjules/stringy

A string manipulation library with multibyte support

2.4k26.0M191](/packages/danielstjules-stringy)[voku/arrayy

Array manipulation library for PHP, called Arrayy!

4875.5M16](/packages/voku-arrayy)[voku/stringy

A string manipulation library with multibyte support

1783.8M19](/packages/voku-stringy)[dereuromark/cakephp-tools

A CakePHP plugin containing lots of useful and reusable tools

338920.1k32](/packages/dereuromark-cakephp-tools)[pragmarx/ia-arr

Laravel Illuminate Agnostic Arr

553.6M12](/packages/pragmarx-ia-arr)[statamic/stringy

A string manipulation library with multibyte support, forked from @statamic

234.5M14](/packages/statamic-stringy)

PHPackages © 2026

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