Skip to content

Kymyzek/WebPhpDemon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Пакет WebPhpDemon

Пакет WebPhpDemon предназначен для запуска постоянно работающего демона из браузера. Работает под Windows и *nix.

В пакет входит:

  • FileLock - класс работы с файлом блокировки
  • WebPhpDemon - класс работы с демоном
  • WebPhpScript - класс работы со скриптами
  • controller.php - демон (имя может быть измененно, задается в WebPhpDemon)
  • config.php - конфигурационный файл загрузчиком

Кроме того, для работы пакета требуется класс для работы с логами

use Kymyzek\Logger\Logger;

Для работы демона создается система каталогов, установки задаются в файле config.php

Пример

В каталоге examples содержится файл index.php, который запускает демон и устанавливает параметры для запуска двух скриптов

// Подключаем конфигурационный файл
require_once 'config.php';

use Kymyzek\WebPhpDemon\WebPhpDemon;
use Kymyzek\WebPhpDemon\WebPhpScript;

// Установки первого скрипта
$interface = 'test_interface_1';
$wps = new WebPhpScript($interface);

$params = array(
    'dir'=>D_ROOT,
    'name'=>'test_1.php',
    'wait'=>10,
);
$wps->params($params);

// Запускаем демон
$wpd = new WebPhpDemon();
$demon = array(
    'dir'   =>  D_ROOT,
);
$wpd->setParam($demon);
$wpd->run();

// Даже когда демон уже работает, можно подключать дополнительные скрипты
$interface = 'test_interface_2';
$wps = new WebPhpScript($interface);
$params['name'] = 'test_2.php';
$params['wait'] = 15;
$params['log'] = 'info';
$wps->params($params);

Работа с демоном

$wpd = new WebPhpDemon();

// можно установить параметры запуска демона, указанные ниже параметры устанавливаются по умолчанию
$set = array(
        'name' => 'controller.php',     //имя демона
        'dir' => __DIR__,               // рабочий каталог работы демона
        'wait' => 1,                    // собственная задержка работы демона, активна при отсутствии задач, 1 сек
);
$wpd->setParam($set);

// запуск демона
$wpd->run();

// остановка демона
$wpd->stop();

// получение параметров демона
$params = $wpd->loadConfig();

Работа с скриптами

// Необходимо установить уникальный интерфейс. Дубликат изменит параметры ранее установленного скрипта
$interface = 'test_interface_1';
$wps = new WebPhpScript($interface);

// Возможные параметры скрипта, все значения явяются не обязательными, в примере, стоят занчения по умолчанию
$set = array(
        'interface'     =>  '',//Основной идентификатор интерфейса
        'dir'           =>  '',  //Корневая директория скрипта
        'name'          =>  '',  //Имя скрипта
        'wait'          =>  60,  //Ожидание до следующего запуска в секундах
        'log'           =>  'error',  //если info - будет выводится лог запуска, иначе только ошибки
);
$wps->params($set);

// Чтение установленных параметров
$wps->loadParams();

// Чтение статуса скрипта, возваращает массив
$states = $wps->loadStates();

// Изменение статуса скрипта, можно передавать массив параметров или строку для статуса
$wps->setStatus('wait');

About

Запуск демона (резидентной программы) из браузера. Работает под Windows и *nix.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages