proklung / web-profilier-bundle
针对 Bitrix+Symfony 或 Wordpress+Symfony 的自定义 profilier。
Requires
- php: >=7.1 || ^8.0
- ext-mysqli: *
- symfony/config: ^4.4 || ^5.0
- symfony/dependency-injection: ^4.4 || ^5.0
- symfony/framework-bundle: ^4.4 || ^5.0
- symfony/http-kernel: ^4.4 || ^5.0
- symfony/twig-bridge: ^4.4 || ^5.0
- twig/twig: ^1.43 |^2 | ^3
Requires (Dev)
README
针对特定问题的实验性解决方案 - 将基于 WebProfilerBundle 的取法应用于 Bitrix + Symfony(或 Wordpress + Symfony)的定制版本。
内部
开发中。
安装
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" } ]
配置
在 /local/config/packages
目录下配置 custom-web-profiler.yaml
文件。
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
连接自定义数据收集器
使用方法
仅在用户登录为管理员时才有效。不建议在生产环境中使用。
当在 standalone_bundles.php
中启用此包时,会出现在 /_profiler/
页面,其中会显示当前会话中的数据。
如果未安装 包,则 профайлер位于 /bitrix/admin/_profiler.php
(初始化时会复制一次)。
在管理员控制台中,出现两个按钮在行政面板上(在新窗口中打开)
- 当前请求的 профайлер - 打开当前打开页面的 profiler 数据的链接。
- 最后一个请求的 профайлер - 打开最后请求的 profiler 数据的链接。与第一个按钮的区别在于,可以在另一个选项卡中打开返回 json 的页面,并查看其 profiler。
注意事项
要跟踪 Symfony 路由,Symfony 路由必须满足两个条件
-
在处理路由之后,但在确定这是否是原生或 symphony 路由之前,需要启动一个自定义事件
kernel.after_handle_request
,并将一个继承自Symfony\Contracts\EventDispatcher\Event
并实现两个方法的类作为参数传递 -getRequest
和getResponse
。 -
在脚本执行完毕、处理 symphony 路由之后,应该触发 Bitrix 的事件
OnAfterEpilog
,其中作为参数传递response
和request
。
在我的研究 包 中,所有这些都得到了支持。
- 不被 profiler 捕获通过浏览器“野路”方式输出的数据。例如
$data = ['success' => true] echo json_encode($data);