rizalmf / slim-simple-profiler
用于 Slim Framework 3 的简单中间件进行性能分析
v1.0.0
2021-07-06 12:39 UTC
Requires
- php: >=7.3
- maximebf/debugbar: ^1.16
- psr/http-message: >=1.0
- twig/twig: ^3.3
Requires (Dev)
- phpunit/phpunit: *
- slim/slim: ~3.0
This package is auto-updated.
Last update: 2024-09-06 21:54:00 UTC
README
用于 Slim Framework 3 的简单中间件进行性能分析。实现了优秀的库 maximebf/debugbar。受到 Codeigniter 性能分析器的启发。
屏幕截图
目录
安装
通过 "composer require" 设置
composer require rizalmf/slim-simple-profiler
使用方法
use Simple\Profiler\Profiler; use Simple\Profiler\Container; require_once __DIR__ . '/vendor/autoload.php'; // example path $app = new \Slim\App(); // add middleware $app->add(new Profiler(new Container()));
启用/禁用暗黑模式
设置暗黑模式的 HTML 格式。默认:true
// ... $container = new Container(); $container->setDarkMode(false); $app->add(new Profiler($container));
Eloquent/ORM
将 \Illuminate\Database\Capsule\Manager 注册到容器中
//-------- OPTION ONE --------// // in case you use static Manager // ... $DB = new \Illuminate\Database\Capsule\Manager(); $DB->addConnection($settings['your_eloquent_cfg']); $DB->setAsGlobal(); $DB->bootEloquent(); // register to container $container->setEloquentManager($DB); // add middleware $app->add(new Profiler($container)); //-------- OPTION TWO --------// // in case you set eloquent to slim container // ... $settings = require __DIR__.'/../config/settings.php'; $app = new \Slim\App($settings); $appContainer = $app->getContainer(); $appContainer['capsule'] = function ($c) { $capsule = new \Illuminate\Database\Capsule\Manager; $capsule->addConnection($c->get('settings')['your_eloquent_cfg']); $capsule->setAsGlobal(); $capsule->bootEloquent(); return $capsule; }; // register capsule to container $container->setEloquentManager($appContainer['capsule']); // add middleware $app->add(new Profiler($container));
Doctrine/ORM
将 \Doctrine\DBAL\Logging\DebugStack 注册到容器中
// ... $settings = require __DIR__.'/../config/settings.php'; $app = new \Slim\App($settings); $appContainer = $app->getContainer(); $appContainer['dao'] = function ($c) { $settings = $c->get('settings'); $config = \Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration( $settings['doctrine']['meta']['entity_path'], $settings['doctrine']['meta']['auto_generate_proxies'], $settings['doctrine']['meta']['proxy_dir'], $settings['doctrine']['meta']['cache'], false ); return \Doctrine\ORM\EntityManager::create($settings['doctrine']['connection'], $config); }; // first.. you have to bind DebugStack to your entityManager $logger = new \Doctrine\DBAL\Logging\DebugStack(); $appContainer['dao']->getConnection() ->getConfiguration() ->setSQLLogger($logger); // register DebugStack to container $container->setDoctrineStack($logger); // add middleware $app->add(new Profiler($container));
GuzzleHttp
通过 Profiler::guzzleStack() 捕获 guzzlehttp 事件
// ... $stack = \GuzzleHttp\HandlerStack::create(); $stack->push(\Simple\Profiler\Profiler::guzzleStack()); // set options \GuzzleHttp\Client $options['handler'] = $stack; $client = new \GuzzleHttp\Client($options);
设置响应格式
默认:Container::HTTP_FORMAT
// ... $container = new Container(); // response as text/html $container->setResponseFormat(Container::HTTP_FORMAT); // response as application/json content-type $container->setResponseFormat(Container::JSON_FORMAT); $app->add(new Profiler($container));
LICENSE
MIT 许可证 (MIT) 版权所有 (c) 2021 Rizal Maulana Fahmi