proklung/web-profilier-bundle 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

proklung/web-profilier-bundle

Composer 安装命令:

composer require proklung/web-profilier-bundle

包简介

Custom profilier for Bitrix+Symfony or Wordpress+Symfony.

README 文档

README

Экспериментальное решение частной задачи - прикручивание, взятого за основу WebProfilerBundle к кастомным вариантам Битрикс + Symfony (или Wordpress + Symfony)

INTERNAL

В процессе разработки.

Установка

Composer 2.0:

composer require proklung/web-profilier-bundle

Composer 1.0:

composer.json:

    "repositories": [
{
"type": "git",
"url": "https://github.com/proklung/web-profilier-bundle"
}
]

Конфигурирование

Файл custom-web-profiler.yaml в /local/config/packages

custom-web-profiler:
  enabled: true
  profiler_cache_path: '%kernel.cache_dir%/profiler.json'
  # Дополнительный путь к твиговским шаблонам профайлера и коллекторов
  profiler_twig_templates_path:
    - '%kernel.project_dir%/twig/view'
  # Игнорируемые url (частичное совпадение)
  ignoring_url:
    - '/bitrix/admin'
    - 'public_session.php'
    - '/bitrix/urlrewrite.php'
    - '/_profiler'
  
  # Отключение некоторых профайлеров из стандартного набора по коду. Если false, то будет отрублен.
  # По умолчанию они все включены.
  profilers:
    json_response: false

Подключение собственных data collectors

Эксплуатация

Работает только, если пользователь залогинен админом. Не рекомендуется использовать на проде.

При включении бандла в standalone_bundles.php появляется страница /_profiler/, где выводятся данные о происходящем в текущей сессии.

Если бандл не установлен, то профайлер находится по адресу /bitrix/admin/_profiler.php (при инициализации будет единожды скопирован туда).

В админке появляются две кнопки на административной панели (открывать в новом окне):

  1. Профайлер текущего запроса - ссылка на профайлер с данными на текущую открытую страницу.
  2. Профайлер последнего запроса - ссылка на профайлер с данными на последний запрос. Отличие от первой кнопки в том, что можно сделать в другой вкладке открыть страницу, возвращающую, скажем json, и посмотреть ее профайл.

Нюансы

Чтобы отслеживать роуты Symfony роутер должен соблюсти два условия:

  1. После обработки роута, но до определения, что это роут нативный или симфонический, нужно запустить кастомное событие kernel.after_handle_request, передав ему в качестве параметра класс, отнаследованный от Symfony\Contracts\EventDispatcher\Event и реализущий два метода - getRequest и getResponse.

  2. Перед выходом из скрипта, после обработки симфонического роутера должно инициироваться битриксовое событие OnAfterEpilog, где в качестве параметров передается response и request.

В моем изыскательном бандле все это поддерживается.

  1. Не перехватываются профайлером данные, выплевываемые в браузер "диким" способом. Типа:
$data = ['success' => true]
echo json_encode($data);

统计信息

  • 总下载量: 39
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: Twig

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-08-20

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固