PHP code example of utopia-php / registry

1. Go to this page and download the library: Download utopia-php/registry 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/ */

    

utopia-php / registry example snippets




topia\Registry\Registry;

global $dbHost, $dbUser, $dbPass, $dbScheme;

$register = new Registry();

$register->set('db', function() use ($dbHost, $dbUser, $dbPass, $dbScheme) { // Register DB connection
    $pdo = new PDO("mysql:host={$dbHost};dbname={$dbScheme}", $dbUser, $dbPass, array(
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
        PDO::ATTR_TIMEOUT => 5 // Seconds
    ));

    // Connection settings
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);   // Return arrays
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);        // Handle all errors with exceptions

    return $pdo;
});

/**
 * Execute callback and create database connection only when
 *  you need it and not a second before
 */
$register->get('db');

/**
 * Second call for db service will return the instance that has been created
 *  in the previous line of code
 */
$register->get('db');

/**
 * Third call for db service when passing the value 'true' to the $fresh argument
 *  will return a fresh and new instance of the db service
 */
$register->get('db', true);

/**
 * Using the context method you can manage multiple instances of the same resources with separated scopes.
 */
$register->context('new-set-of-instances');

/**
 * You can use the 3rd parameter `$fresh` to get a new copy of the resource in every get call
 */
$register->set('time', function() { // Register DB connection
    return microtime();
}, true);

$register->get('time'); // 0.16608900
$register->get('time'); // 0.16608905

bash
composer