Recent Changes - Search:

PmWiki

pmwiki.org

edit SideBar

NovaTelemetry

Nova.NovaTelemetry History

Hide minor edits - Show changes to output

Changed line 2 from:
!!Свойсва
to:
!!Свойства
Changed lines 34-35 from:
* TDECODE - раскомментировать блоки кода отладки/тестирования. В поле data[key] можно передать ключ-индикатор раскомментируемых блоков кода. См. раздел TCODE далее.
to:
* TDECODE - раскомментировать блоки кода отладки/тестирования. В поле data передается массив параметров декодирования. См. раздел TCODE далее.
Changed lines 51-60 from:
Т.о. если передать комманду {command:"TDECODE"}, будет раскомментирован первый блок, а если передать {command:"TDECODE",data:{key:"KEY"}} будут раскомментированы два блока ниже.\\
to:
Далеко не всегда нужно получать все отладочные сообщения, потому формат TCODE предусматривает возможность использования '''ключа''' - специальных меток, позволяющих декодеру отличать одни фрагменты TCODE от других.
Т.о. если передать комманду {command:"TDECODE",data:{'':1}}или {command:"TDECODE"}, будет раскомментирован первый блок, а если передать {command:"TDECODE",data:{"KEY":1}} будут раскомментированы два блока ниже.
\\
Также для каждого ключа можно указать список слотов и php файлов которые вы хотите обработать:
[@
{command:"TDECODE",data:{"KEY":{"includes":[":SLOT1",":SLOT2"],"files":["file1.php","file2.php"]}}}
@]
Декодер будет обработает включаемый php файл, если путь заканчивается подстрокой, равной одной из строк списка files.Например:
Если files cодержит строку '/dir_include/file.php', то файл '/var/www/html/mysite/dir_include/file.php' будет обработан, а файлы '/var/www/html/mysite/dir_do_not_include/file.php' и '/var/www/html/mysite/file.php' - нет.\\
'''Обратите внимание''': что-бы файл php был обработан, он должен включаться позже, чем была получена команда TDECODE.\\
Changed line 52 from:
TCODE может внедряться и будет обработан как в коде модулей, коде eval_php.php, так и в их настройках.
to:
TCODE может внедряться в код модулей, код eval_php.php, а также в настройки слотов.
Changed lines 52-62 from:
TCODE может внедряться и будет обработан как в коде модулей, коде eval_php.php, так и в их настройках.
!!!Вызов телеметрии в блоке TCODE
Когда модуль телеметрии активен, он добавляет обработчик отправки и получения данных телеметрии: $_ENV['T'];
[@
code ...
/*<!--{
//отправим отладочные данные
$_ENV['T'](array('command'=>'log','page'=>'some_test_report_page','obj'=>array('foo'=>$foo,'bar'=>$bar)));
}-->*/
code ...
@]
to:
TCODE может внедряться и будет обработан как в коде модулей, коде eval_php.php, так и в их настройках.
Changed lines 10-62 from:
* RunCode($code) - выполняет переданный в параметре $code код и возвращает полученное значение.
to:
* RunCode($code) - выполняет переданный в параметре $code код и возвращает полученное значение.
!!!Команды:
* GET_INCLUDES - Возвращает список всех слотов, загруженных на странице: obj['includes']=array('PLACE'=>array('inc_id'=>$inc_id,'module'=>$module),...).
* GET_REQUEST_DATA - Возвращает список всех слотов, загруженных на странице. obj['_GET']=$_GET,obj['_POST']=$_POST,obj['_COOKIE']=$_COOKIE,obj['_FILES']=$_FILES, obj['_SERVER']=$_SERVER;
* INJECT_REQUEST_DATA - позволяет переопределить переменные данных выполняемого запроса значениями переданными в поле data: $_GET=$data['_GET'],$_POST=$data['_POST'],...
* INJECT_SESSION_DATA - позволяет переопределить данные сессии. '''!Сессия при этом не инициализируется и не прерывается. По завершении скрипта внесенные данные могут автоматически сохраниться и пререзапишут оригинал!'''.
* GET_INCLUDE - возвращает данные слота с именем, переданным в поле data['place'].
* GET_PAGE - возвращает метаданные страницы.
* WATCH_INCLUDE - включает трассировку вызовов слота с именем в поле data['place']. При каждом выполнении слота могут передаваться аргументы его вызова (если установлено поле data[args]), вывод (data[output]), результат выполнения (data[result]). Если слот не был определен на странице, но была попытка его вызвать, дополнительно будет возвращен признак no_include. Каждый запуск слота порождает отдельный вызов телеметрии.
* WATCH_SQL_QUERIES - включает трассировку SQL запросов. В поле data[pattern] нужно передать регулярное выражение, которому должны соответствовать строки запросов, что-бы попасть в отчет. Каждый удовлетворяющий правилу запрос порождает вызов телеметрии. Возможна настройка отправки вызова как до выполнения запроса (data[before]), так и после (data[after]).
* REGISTER_SHUTDOWN_FUNCTION - позволяет определить функцию, выполняемую в момент завершения сценария. Код функции передается в поле data.
* GET_MEMORY_USAGE - получить количество памяти, выделенной php в момент вызова (см. memory_get_usage). obj[memory]=memory_get_usage().
* GET_SQL_ERROR_INFO - получить информацию о последней ошибке SQL.
* GET_LOADED_EXTENSIONS - получить список загруженых расширений php. obj[extensions]=array(/*extensions list*/);
* GET_INCLUDED_FILES - получить список включенных файлов php. obj[included_files]=array(/*files list*/);
* GET_DEFINED_CONSTANTS - получить список определенных констант. obj[constants]=array(/*files list*/);
* INI_GET_ALL - вывести значения переменных конфигурации php (ini_get_all).
* PHPINFO - получить html код выполнения phpinfo(): obj[phpinfo]=/*html*/.
* OK - продолжить выполнение.
* EXIT - прервать выполнение.
* DIE - прервать выполнение и вывести сообщение из data. (die($data));
* DUMP_EVAL - выполнить код из data и отправить результат.'''Все команды EVAL выполняются в контексте метода NovaTelemetry::RunCode.
* RETURN_VALUE - передать управление вызвавшему коду и вернуть значение, переданное в data.
* RETURN_EVAL - выполнить php код в поле data и вернуть полученное значение вызвавшему коду.
* TDECODE - раскомментировать блоки кода отладки/тестирования. В поле data[key] можно передать ключ-индикатор раскомментируемых блоков кода. См. раздел TCODE далее.

!!!TCODE
TCODE - специально сформированные комментарии, содержащие код, который в рабочей версии программы выполняться не должен, однако может быть запущен при необходимости отладки или тестирования.\\
Пример:
[@
some code...
/*<!--{
echo "This is test var:".$test_var;
}-->*/
some code...
//<!--KEY{echo "This another debug block with KEY";}-->
some more code...
/*<!--KEY{
echo "This another debug block with KEY";
}KEY-->*/
@]
Т.о. если передать комманду {command:"TDECODE"}, будет раскомментирован первый блок, а если передать {command:"TDECODE",data:{key:"KEY"}} будут раскомментированы два блока ниже.\\
TCODE может внедряться и будет обработан как в коде модулей, коде eval_php.php, так и в их настройках.
!!!Вызов телеметрии в блоке TCODE
Когда модуль телеметрии активен, он добавляет обработчик отправки и получения данных телеметрии: $_ENV['T'];
[@
code ...
/*<!--{
//отправим отладочные данные
$_ENV['T'](array('command'=>'log','page'=>'some_test_report_page','obj'=>array('foo'=>$foo,'bar'=>$bar)));
}-->*/
code ...
@]
Added line 9:
* IO($args) - низкоуровневый обработчик. Выполняет вызов телеметрии, передачу параметров и возвращает неформатированную строку ответа.
Changed line 6 from:
* PageData - объект страницы [PageData] на которой запустился модуль телеметрии.
to:
* PageData - объект страницы [[PageData]] на которой запустился модуль телеметрии.
Changed lines 1-9 from:
Класс NovaTelemetry предоставляет функционал для тестирования и отладки приложений Nova.
to:
Класс NovaTelemetry предоставляет функционал для тестирования и отладки приложений Nova.
!!Свойсва
* Config - массив параметров конфигурации телеметрии.
* Connection - идентификатор открытого соединения телеметрии (curl).
* TDecoders - массив объектов декодеров TCode.
* PageData - объект страницы [PageData] на которой запустился модуль телеметрии.
!!Методы
* Report($args) - выполняет вызов url телеметрии, передачу параметров $args, получение ответа, разбор и запуск на выполнение полученных команд.
* RunCode($code) - выполняет переданный в параметре $code код и возвращает полученное значение
.
Added line 1:
Класс NovaTelemetry предоставляет функционал для тестирования и отладки приложений Nova.
Edit - History - Print - Recent Changes - Search
Page last modified on November 12, 2015, at 01:36 PM EST