{"id":15296274,"url":"https://github.com/darkfriend/php7-debug","last_synced_at":"2026-01-06T02:05:39.024Z","repository":{"id":56962444,"uuid":"229422883","full_name":"darkfriend/php7-debug","owner":"darkfriend","description":null,"archived":false,"fork":false,"pushed_at":"2021-03-30T18:28:42.000Z","size":20,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-21T22:02:55.368Z","etag":null,"topics":["debug","development","helper","logger","php","php7","trace"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darkfriend.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-21T12:15:15.000Z","updated_at":"2022-02-12T09:26:46.000Z","dependencies_parsed_at":"2022-08-21T09:50:25.102Z","dependency_job_id":null,"html_url":"https://github.com/darkfriend/php7-debug","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkfriend%2Fphp7-debug","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkfriend%2Fphp7-debug/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkfriend%2Fphp7-debug/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkfriend%2Fphp7-debug/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darkfriend","download_url":"https://codeload.github.com/darkfriend/php7-debug/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245407755,"owners_count":20610232,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debug","development","helper","logger","php","php7","trace"],"created_at":"2024-09-30T18:09:56.368Z","updated_at":"2026-01-06T02:05:38.995Z","avatar_url":"https://github.com/darkfriend.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Debug, Log, Trace\r\n\r\n``composer require darkfriend/php7-debug``\r\n\r\nКлассы помощники для PHP7\r\n* для трассировки и логирования данных\r\n* для дебага разных частей кода\r\n\r\n## Trace\r\nТрассировка данных в файл\r\n\r\n* ``` Trace::init($sessionHash = null, $mode = null, $pathLog = '/') ``` - инициализация, указывается только для изменения первоначальных или ранее определенных настроек\r\n* ``` Trace::add($message, $category = 'common') ``` - добавление сообщения в файл\r\n\r\n### Trace Example\r\n```php\r\n// basic usage\r\n\\darkfriend\\helpers\\Trace::add('my message'); // добавляет строку\r\n// \\darkfriend\\helpers\\Trace::add(['my message']); // добавляем любой массив или объект\r\n```\r\n\r\n```php\r\n// example: set trace file\r\n\\darkfriend\\helpers\\Trace::init(\r\n    null,\r\n    null,\r\n    './logs/trace.log'\r\n);\r\n\\darkfriend\\helpers\\Trace::add('my message'); // добавляет строку в файл trace.log\r\n// \\darkfriend\\helpers\\Trace::add(['my message']); // добавляем любой массив или объект в файл trace.log\r\n\r\n\\darkfriend\\helpers\\Trace::init(\r\n    null,\r\n    null,\r\n    './logs/custom.log'\r\n);\r\n\\darkfriend\\helpers\\Trace::add('my message'); // добавляет строку в файл custom.log\r\n// \\darkfriend\\helpers\\Trace::add(['my message']); // добавляем любой массив или объект в файл custom.log\r\n```\r\n\r\n## Log\r\nЛогированные данных в файл\r\n\r\n* ``` Trace::init($sessionHash = null, $mode = null, $pathLog = '/') ``` - инициализация, указывается только для изменения первоначальных или ранее определенных настроек\r\n* ``` Trace::add($message, $category = 'common') ``` - добавление сообщения в файл\r\n\r\n### Trace Example\r\n```php\r\n// basic usage\r\n\\darkfriend\\helpers\\Log::add('my message'); // добавляет строку\r\n// \\darkfriend\\helpers\\Trace::add(['my message']); // добавляем любой массив или объект\r\n```\r\n\r\n```php\r\n// example: set trace file\r\n\\darkfriend\\helpers\\Log::init(\r\n    null,\r\n    null,\r\n    './logs/basic.log'\r\n);\r\n\\darkfriend\\helpers\\Log::add('my message'); // добавляет строку в файл basic.log\r\n// \\darkfriend\\helpers\\Trace::add(['my message']); // добавляем любой массив или объект в файл basic.log\r\n\r\n\\darkfriend\\helpers\\Log::init(\r\n    null,\r\n    null,\r\n    './logs/custom.log'\r\n);\r\n\\darkfriend\\helpers\\Log::add('my message'); // добавляет строку в файл custom.log\r\n// \\darkfriend\\helpers\\Trace::add(['my message']); // добавляем любой массив или объект в файл custom.log\r\n```\r\n\r\n## Debug (alias DebugHelper) - удобный дебаггинг и трассировка данных\r\n\r\n* ```DebugHelper::$mainKey``` - свойство, содержащее имя ключа для $_COOKIE и $_GET\r\n* ```DebugHelper::print_pre($o,$die,$show)``` - статичный метод, который выводит всю структуру массива и объекта, с информацией о файле и строке (подробности ниже)\r\n* ```DebugHelper::call($func,$params)``` - статичный метод, который вызывает переданную функцию только у админа, передавая нужные параметры (подробности ниже)\r\n* ```DebugHelper::trace($message,$category='common')``` - статичный метод трессировки (ниже примеры использования)\r\n\r\n## DebugHelper::print_pre($o,$die,$show);\r\n* $o - данные, которые надо вывести\r\n* $die - прерывать ли после вывода выполнение скрипта (по умолчанию false)\r\n* $show - выводить всем [или только в определенных случаях] (по умолчанию true)\r\n\r\n### Пример\r\n```php\r\nuse \\darkfriend\\devhelpers\\DebugHelper;\r\n$data = [\r\n  'key1' =\u003e 'value1',\r\n  'key2' =\u003e 'value2',\r\n  'key3' =\u003e [\r\n    'subKey1' =\u003e 'subValue1',\r\n    'subKey2' =\u003e 'subValue2',\r\n  ],\r\n];\r\nDebugHelper::print_pre($data);\r\n```\r\n\r\n## DebugHelper::call($func,$params)\r\n* $func - функция, которую надо вывести\r\n* $params - массив параметров которые надо передать\r\n\r\n### Пример\r\n```php\r\nuse \\darkfriend\\helpers\\DebugHelper;\r\n$data = [\r\n  'key1' =\u003e 'value1',\r\n  'key2' =\u003e 'value2',\r\n  'key3' =\u003e [\r\n    'subKey1' =\u003e 'subValue1',\r\n    'subKey2' =\u003e 'subValue2',\r\n  ],\r\n];\r\n\r\n// способ 1: используя $params\r\nDebugHelper::call(function($data) {\r\n  DebugHelper::print_pre($data);\r\n},$data);\r\n\r\n// способ 2: используя use\r\nDebugHelper::call(function() use ($data) {\r\n  DebugHelper::print_pre($data);\r\n});\r\n```\r\n\r\n## DebugHelper::trace($message,$category)\r\n* $message - сообщение\r\n* $category - категория трассировки\r\n\r\n### Дополнительные возможности\r\n\r\n* поддержка режимов трассировния\r\n    * TRACE_MODE_REPLACE - режим перезаписи лога\r\n    * TRACE_MODE_APPEND - режим дополнение лога\r\n    * TRACE_MODE_SESSION - режим trace-сессии\r\n* поддержка trace-сессий - каждый запуск в отдельном \r\n\r\n\r\n### Example 1: простая трассировка\r\n_Задача: Простая запись данных в лог_\r\n```php\r\nuse \\darkfriend\\helpers\\DebugHelper;\r\n$array1 = [\r\n  'key1' =\u003e 'value1',\r\n  'key2' =\u003e 'value2'\r\n];\r\n\r\n// trace 1\r\nDebugHelper::trace($array1);\r\n// итог: запишет $array1 с категорией common.\r\n\r\n$array1['key3'] = [\r\n  'subKey1' =\u003e 'subValue1',\r\n  'subKey2' =\u003e 'subValue2',\r\n];\r\n\r\n// trace 2\r\nDebugHelper::trace($array1);\r\n// итог: допишет в лог обновленный $array1 с категорией common\r\n```\r\n\r\n#### Example 1: FAQ\r\n\r\n* _Где лежит файл?_ - путь ``$_SERVER['DOCUMENT_ROOT].'/trace.log'``\r\n* _Что будет в логе?_ - будет 2 записи переменной $array1. По умолчанию идет запись лога сверху вниз\r\n* _Какая категория будет?_ - по умолчанию категория \"common\"\r\n\r\n### Example 2: каждый запуск в отдельный файл\r\n_Задача: Мы сохраняем данные и хотим трассировать id-строки и сохраняемые данные_\r\n\r\n```php\r\nuse \\darkfriend\\helpers\\DebugHelper;\r\n\r\n$id = 1; // идентификатор\r\n\r\n// делаем инициализацию\r\n// $id - ключ trace-session\r\n// self::TRACE_MODE_SESSION - включаем режим trace-session\r\nDebugHelper::traceInit($id, DebugHelper::TRACE_MODE_SESSION);\r\n\r\n$array1 = [\r\n  'key1' =\u003e 'value1',\r\n  'key2' =\u003e 'value2',\r\n  'key3' =\u003e 'value3'\r\n];\r\n\r\nDebugHelper::trace($array1);\r\n// итог: запишет $array1 с категорией common.\r\n\r\n$array1['key3'] = [\r\n  'subKey1' =\u003e 'subValue1',\r\n  'subKey2' =\u003e 'subValue2',\r\n];\r\n\r\n// trace 2\r\nDebugHelper::trace($array1);\r\n// итог: допишет в лог обновленный $array1 с категорией common\r\n```\r\n\r\n#### Example 2: FAQ\r\n\r\n* _Где лежит файл?_ - путь ``$_SERVER['DOCUMENT_ROOT].\"/{$id}-trace.log\"``\r\n* _Что будет в логе?_ - будет 2 записи переменной $array1. По умолчанию идет запись лога сверху вниз\r\n* _Какая категория будет?_ - по умолчанию категория \"common\"\r\n* _Как изменить путь до лога?_ - по умолчанию лог создается в корне, чтоб его изменить, нужно передать путь от корня в 3-ий параметр метода DebugHelper::traceInit(). Пример: ``DebugHelper::traceInit($id, self::TRACE_MODE_SESSION,'/logs')``\r\n* _Могу ли я для одного trace сделать один файл, для другого - другой?_ - да, нужно в нужный момент вызвать метод ``DebugHelper::setHashSession($hash)``, где $hash - это любой ключ.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarkfriend%2Fphp7-debug","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarkfriend%2Fphp7-debug","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarkfriend%2Fphp7-debug/lists"}