PHPackages                             processid/manager - 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. [Database &amp; ORM](/categories/database)
4. /
5. processid/manager

ActiveLibrary[Database &amp; ORM](/categories/database)

processid/manager
=================

Database management

3.0.0(1mo ago)15903PHPPHP &gt;=8.3

Since Jul 7Pushed 1mo ago2 watchersCompare

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

READMEChangelog (10)Dependencies (4)Versions (57)Used By (0)

Manager
=======

[](#manager)

Système de gestion et de connexion de base de données.

Installation :
--------------

[](#installation-)

Ajoutez à votre fichier composer.json dans la section require, "processid/manager": "3.0.0". Puis lancez la commande composer update. Voici un exemple de fichier composer.json avec uniquement l'usage du Manager.

```
{
    "require": {
        "processid/manager": "3.0.0"
    },
    "autoload": {
        "psr-4": {
            "src\\": "src/"
        }
    }
}
```

Utilisation
===========

[](#utilisation)

ConnectionManager :
-------------------

[](#connectionmanager-)

Le `Manager` permet d’interagir avec la base de données via un objet `DbConnect`.
Il ne contient aucune logique de récupération de configuration.

La gestion des connexions est entièrement déléguée à une classe centrale :
`ConnectionManager`.

Cette architecture permet :

- d’isoler le Manager de toute source de configuration
- de rendre le package portable (compatible Composer)
- de gérer plusieurs connexions (main, read\_only, etc.)
- de laisser l’application décider d’où provient la configuration (JSON, Config, .env, variables d’environnement, secrets manager, etc.)

Avant d’utiliser un `Manager`, l’application doit déclarer les configurations au démarrage (bootstrap, index.php, kernel, CLI, etc.).

Exemple
-------

[](#exemple)

```
ConnectionManager::setConfig(['main' => [
    'type'        => 'mysql',
    'host'        => 'localhost',
    'database'    => 'dbname',
    'user'        => 'dbuser',
    'pass'        => 'dbpassword',
    'key_aes256'  => '...',
    'key_hash512' => '...',
    'method'      => 'aes-256-cbc'
], 'read_only' => [
    'type'        => 'mysql',
    'host'        => 'localhost',
    'database'    => 'dbnamero',
    'user'        => 'dbuserro',
    'pass'        => 'dbpasswordro',
    'key_aes256'  => '...',
    'key_hash512' => '...',
    'method'      => 'aes-256-cbc'
]);
```

Héritage de la classe Manager
-----------------------------

[](#héritage-de-la-classe-manager)

`Manager.php` est une classe abstraite qui doit être héritée par autant de classes filles que de tables que vous souhaitez interroger avec le Manager. On utilise des attributs de classe PHP 8.0 pour configurer un manager.

### Attributs de classe

[](#attributs-de-classe)

#### DbFactory :

[](#dbfactory-)

Attribut qui s'applique au class et qui permet de définir la factory de connexion à la base de données pour la class manager fille. Cette attribute est optionnel, s'il n'est pas défini, la première factory dans le fichier de configuration sera utilisée.

#### ClassName :

[](#classname-)

Attribut qui s'applique au class et qui permet de définir le nom de la classe (modèle) qui gère l'objet fourni au manager.

#### Table :

[](#table-)

Attribut qui s'applique au class et qui permet de définir le nom de la table représentée par la class manager fille.

Voici un exemple de classe fille de `Manager.php` avec les différents attributs de classe : Il est à noter que les attributes utilisé doit être importé (avec le **use**) dans la class ou on les utilise.

```
