PHP code example of processid / manager

1. Go to this page and download the library: Download processid/manager library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

processid / manager example snippets


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'
]);


    
    use processid\manager\attributes\DbFactory;
    use processid\manager\attributes\ClassName;
    use processid\manager\attributes\Table;
    use processid\manager\Manager;
    
    #[DbFactory('main')]
    #[ClassName('\src\model\Test')]
    #[Table('nom_table')]
    class TestManager extends Manager
    {
        public function __construct()
        {
            parent::__construct();
        }
    }


    namespace src\model;
    
    use processid\manager\attributes\Field;
    use processid\manager\attributes\ID;
    use processid\manager\attributes\Encrypted;
    use processid\manager\Manager;
    use processid\manager\Model;
    
    class Test extends Model
    {
        #[Field('test_id')]
        #[ID]
        private $idTest;
        
        #[Field('name')]
        private $name;
        
        #[Field('encrypted')]
        #[Encrypted]
        private $encrypted;
    }

$this->encrypt_column($champ);

$this->decrypt_column($champ);

$this->persist(\src\model\Clients $object, [$ignore = FALSE]);

$this->findById($ID, $champs);

$this->findByIds($IDs, $champs);

$this->delete($ID);

$arg = ['start' => 0, 'limit' => 10, 'fields' => [], 'search' => [], 'sort' = []];

$arg['fields'][] = ['table' => 'clients', 'field' => 'IDclients']
$arg['fields'][] = ['table' => 'clients', 'field' => 'nom']

$arg['search'][] = ['table' => 'clients', 'field' => 'pays', 'operator' => '=', 'value' => 'France'];

$arg['sort'][] = ['table' => 'clients', 'field' => 'nom', 'reverse' => false];

// Retourner un tableau d'objet model Clients
$taClients = $clientsManager->findBy($arg);

// Retourner un tableau d'objet quelquonque
$taClients = $clientsManager->findBy($arg, '\src\Obj\ClientsCustom');

$arg = ['start' => 0, 'limit' => 10, 'fields' => [], 'search' => [], 'sort' = []];

$arg['fields'][] = ['table' => 'clients', 'field' => 'IDclients']
$arg['fields'][] = ['table' => 'clients', 'field' => 'nom']

$arg['search'][] = ['table' => 'clients', 'field' => 'pays', 'operator' => '=', 'value' => 'France'];

$arg['sort'][] = ['table' => 'clients', 'field' => 'nom', 'reverse' => false];

$nbItems = $clientsManager->countBy($arg);

/**
 * format sort : nom_colonne => constante du class Manager SORT_ASC ou SORT_DESC
 */
$this->persist($fields, [$sort = array()]);

$this->countAll();

use processid\manager\QueryBuilder;
use processid\manager\enum\QueryOperator;

$manager = new SomeManager(); // Une instance de Manager
$queryBuilder = new QueryBuilder($manager);

$args = $queryBuilder
    ->field('id')
    ->field('name',)
    ->search('name', 'test', QueryOperator::LIKE_BOTH)
    ->orSearch('id', range(1, 20), QueryOperator::IN_ARRAY)
    ->sort('created_at', true)
    ->limit(10, 0)
    ->build();

$qb = $queryBuilder
    ->field('id')
    ->field('name',)
    ->search('name', 'test', QueryOperator::LIKE_BOTH)
    ->orSearch('id', range(1, 20), QueryOperator::IN_ARRAY)
    ->sort('created_at', true)
    ->limit(10, 0);

// Construit les arguments de requête
$args = $qb->build();

// Exécute la requête et retourne le résultat
$result = $qb->run();

// update des resultats par rapport au critère en paramètre et retourne le nombre de lignes affectées
$nbElementAffecte = $qb->update(['name' => 'test update']);

// Exécute la requête en suppriment les résultats et retourne le nombre de lignes affectées
$nbElementAffecte = $qb->delete();