PHP code example of digitalstars / daemon

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

    

digitalstars / daemon example snippets







use DigitalStars\Daemon\Server; // Подключаем класс Server

$s = new Server(9); // Инициализируем демона с ID = 9

$s = Server::create(9);
 
> $s = Server::create(9)->isLog(false)->isMultiThread()->maxThreads(4);
> 

use PDO;
use DigitalStars\Daemon\Server;
$s = Server::create(9);

$db = null;

$s->init(function () use (&$db) {
    $db = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'DB_USER', 'DB_PASSWORD');
});

use PDO;
use DigitalStars\Daemon\Server;
$s = Server::create(9);

$db = null;

$s->init(function () use (&$db) {
    $db = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'DB_USER', 'DB_PASSWORD');
});

$s->errorHandler(function ($error, $error_str, $error_file, $error_line, $e) use ($db) {
    // Составляем текст ошибки
    $text = "Error: $error\n" .
        "Str: $error_str" .
        "File: $error_file ($error_line)\n" . (($e instanceof Throwable) ? "Back Trace:" . $e->getTraceAsString() : "");
        
    // Записываем ошибку в таблицу логов в БД
    
    $db->prepare("INSERT INTO error_log (text_error) VALUE (?)")->execute([$text]);
});

use PDO;
use DigitalStars\Daemon\Server;
$s = Server::create(9);

$db = null;

$s->init(function () use (&$db) {
    $db = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'DB_USER', 'DB_PASSWORD');
});

$s->module('testFunction', function ($text) use (&$db) {
    $db->prepare("INSERT INTO log_action (text_value) VALUE (?)")->execute([$text]);
});

use DigitalStars\Daemon\Client;
$c = Client::create(9);

$c->testFunction('Какое-то тестовое сообщение, которое передастся серверу');

use PDO;
use DigitalStars\Daemon\Server;
$s = Server::create(9)->isMultiThread()->maxThreads(2);

$db = null;

$s->init(function () use (&$db) {
    $db = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'DB_USER', 'DB_PASSWORD');
});

$s->module('testFunction', function ($text) use (&$db) {
    $db->prepare("INSERT INTO log_action (text_value) VALUE (?)")->execute([$text]);
});


use DigitalStars\Daemon\Client; // Подключаем класс Server

$c = new Client(9); // Инициализируем клиент демона с ID = 9 (ID должен совпадать у клиента и сервера)

$c = Client::create(9);

use PDO;
use DigitalStars\Daemon\Server;
$s = Server::create(9);

$db = null;

$s->init(function () use (&$db) {
    $db = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'DB_USER', 'DB_PASSWORD');
});

$s->module('testFunctionTwoArguments', function ($val1, $val2) use (&$db) {
    $db->prepare("INSERT INTO log_action_two_field (field_1, field_2) VALUE (?, ?)")->execute([$val1, $val2]);
});

$s->module('testFunctionOneArguments', function ($text) use (&$db) {
    $db->prepare("INSERT INTO log_action (text_value) VALUE (?)")->execute([$text]);
});

use DigitalStars\Daemon\Client;
$c = Client::create(9);

// Следующие 2 строки равносильны. Они вызовут функцию testFunctionTwoArguments на сервере и передадут в неё 2 параметра
$c->testFunctionTwoArguments('Значение 1', 'Значение 2');
$c->send('testFunctionTwoArguments', ['Значение 1', 'Значение 2']);

// Следующие 3 строки равносильны. Они вызовут функцию testFunctionOneArguments на сервере и передадут в неё 1 параметр
$c->testFunctionOneArguments('Одно значение');
$c->send('testFunctionOneArguments', ['Одно значение']);
$c->send('testFunctionOneArguments', 'Одно значение');