Всем привет!
Столкнулся с тем, что при разработке собственного модуля не виден класс-хелпер логирования.
Вот код
/local/modules/mycompany.files/install/index.php:
Файл: /local/modules/mycompany.files/lib/helpers/debuger.php:
При вызове Debuger::dbgLog('events:', '_moduleEvents'); я получаю ошибку:
Подскажите, где я неправильно подключаю класс Mycompany\Files\Helpers\Debuger в файле /local/modules/mycompany.files/install/index.php ? Почему в файле /local/modules/mycompany.files/install/index.php не виден класс Mycompany\Files\Helpers\Debuger ?
Столкнулся с тем, что при разработке собственного модуля не виден класс-хелпер логирования.
Вот код
/local/modules/mycompany.files/install/index.php:
| Код |
|---|
<?php
use Bitrix\Main\Loader;
use Bitrix\Main\Localization\Loc,
Bitrix\Main\ModuleManager,
Bitrix\Main\EventManager,
Bitrix\Main\Application;
Loader::includeModule("mycompany.files");
use Mycompany\Files\Helpers\Debuger;
Loc::loadMessages(__FILE__);
class Mycompany_files extends \CModule
{
public function __construct()
{
$this->MODULE_ID = 'mycompany.files';
$this->setVersionData();
$this->MODULE_NAME = Loc::getMessage("MYCOMPANY_FILES_WATCHING_MODULE_NAME");
$this->MODULE_DESCRIPTION = Loc::getMessage("MYCOMPANY_FILES_WATCHING_MODULE_DESC");
$this->PARTNER_NAME = Loc::getMessage("MYCOMPANY_FILES_WATCHING_PARTNER_NAME");
$this->PARTNER_URI = Loc::getMessage("MYCOMPANY_FILES_WATCHING_PARTNER_URI");
$this->SHOW_SUPER_ADMIN_GROUP_RIGHTS = 'Y';
$this->MODULE_GROUP_RIGHTS = 'Y';
}
public function doInstall()
{
//Главный модуль, миграции, и rest проверяем, установлены ли они
if (!$this->isRequiredModulesInstalled()) {
return false;
}
$this->installFiles();
$this->installDB();
$this->installEvents();
return true;
}
//Регистрируем обработчики событий
public function installEvents()
{
$eventManager = EventManager::getInstance();
$eventManager->registerEventHandler('main', 'OnFileSave', $this->MODULE_ID,
'\Mycompany\Files\Event\Files', 'OnFileSaveHandler');
$handlers[] = EventManager::getInstance()->findEventHandlers("main", "OnFileSave");
try {
Debuger::dbgLog('events:', '_moduleEvents');//Вот тут ошибка Class "Mycompany\Files\Helpers\Debuger" not found
Debuger::dbgLog($handlers, '_moduleEvents');
} catch (Exception $ex) {
echo 'Exception: ', $ex->getMessage(), "\n";
}
return true;
}
} |
Файл: /local/modules/mycompany.files/lib/helpers/debuger.php:
| Код |
|---|
<?php
namespace Mycompany\Files\Helpers;
class Debuger
{
public static function dbgLog($data, string $suffix = '_1')
{
if (
!empty($suffix)
&&
preg_match('![^-0-9a-zA-Z_]+!', $suffix)
) {
$suffix = '';
}
$fileName = $_SERVER["DOCUMENT_ROOT"]."/"."logs/dbg-" . date("Ymd") . $suffix . ".txt";
$r = fopen($fileName, 'a');
fwrite($r, PHP_EOL);
fwrite($r, date('Y-m-d H:i:s') . PHP_EOL);
fwrite($r, print_r($data, 1));
fwrite($r, PHP_EOL);
fclose($r);
}
} |
При вызове Debuger::dbgLog('events:', '_moduleEvents'); я получаю ошибку:
| Код |
|---|
Class "Mycompany\Files\Helpers\Debuger" not found |
Подскажите, где я неправильно подключаю класс Mycompany\Files\Helpers\Debuger в файле /local/modules/mycompany.files/install/index.php ? Почему в файле /local/modules/mycompany.files/install/index.php не виден класс Mycompany\Files\Helpers\Debuger ?