Yii2 file daemon
Yii2 демон для работы с файлами, (*1)
Установка
Получение пакета Composer
Предпочтительный способ установки этого расширения через composer., (*2)
Выполнить команды:, (*3)
php composer.phar require --prefer-dist phantom-d/yii2-file-daemon "dev-master"
или добавить в секцию require:, (*4)
"phantom-d/yii2-file-daemon": "dev-master"
в ваш файл composer.json
, (*5)
Настройка приложения
1 - Для первоначальной настройки рекомендуется скопировать базовый файл настройки демонов.
Базовый файл конфигурации располагается в директории @vendor/phantom-d/yii2-file-daemon/config/daemons.php
, (*6)
Создать директорию:, (*7)
- Шаблон Yii2-base -
@app/config/daemons
- Шаблон Yii2-advanced -
@app/common/config/daemons
В созданную директорию скопировать базовый файл конфигурации.
В базовом файле конфигурации указаны настройки демона контролирующего запуск и остановку остальных демонов., (*8)
2 - Создаём файл контроллера демона с именем FileServerDaemonController.php
, который буде выполнять роль демона обработки файлов:, (*9)
- Шаблон Yii2-base -
@app/console
<?php
namespace app\console;
use phantomd\filedaemon\console\controllers\FileDaemonController;
/**
* Class FileServerDaemonController.
*/
class FileServerDaemonController extends FileDaemonController
{
}
- Шаблон Yii2-advanced -
@app/console/controllers
<?php
namespace console\controllers;
use phantomd\filedaemon\console\controllers\FileDaemonController;
/**
* Class FileServerDaemonController.
*/
class FileServerDaemonController extends FileDaemonController
{
}
3 - Создаём файл контроллера наблюдателя с именем WatcherDaemonController.php
, который буде выполнять роль демона обработки файлов:, (*10)
- Шаблон Yii2-base -
@app/console
<?php
namespace app\console;
use phantomd\filedaemon\console\controllers;
/**
* Class WatcherDaemonController.
*/
class WatcherDaemonController extends controllers\WatcherDaemonController
{
}
- Шаблон Yii2-advanced -
@app/console/controllers
<?php
namespace console\controllers;
use phantomd\filedaemon\console\controllers;
/**
* Class WatcherDaemonController.
*/
class WatcherDaemonController extends controllers\WatcherDaemonController
{
}
4 - Создаём файл REST контроллера с именем DaemonController.php
, с помощью которого будете добавлять данные для постановки задач на обработку, (*11)
- Шаблон Yii2-base -
@app/controllers
<?php
namespace app\controllers;
/**
* Class DaemonController. Frontend REST controller.
*/
class DaemonController extends \phantomd\filedaemon\frontend\controllers\DaemonController
{
/**
* @var string Daemon name in configuration
*/
protected static $configAlias = 'file-server';
}
- Шаблон Yii2-advanced -
@app/frontend/controllers
<?php
namespace frontend\controllers;
/**
* Class DaemonController. Frontend REST controller.
*/
class DaemonController extends \phantomd\filedaemon\frontend\controllers\DaemonController
{
/**
* @var string Daemon name in configuration
*/
protected static $configAlias = 'file-server';
}
5 - Для непрерывной работы наблюдателя добавьте эту строчку в crontab:, (*12)
5 * * * * /{PATH/TO/YII/PROJECT}/yii watcher-daemon --demonize=1
Наблюдатель не может стартовать дважды, только один процесс может работать., (*13)