papoon/inspector
Composer 安装命令:
composer require papoon/inspector
包简介
Framework-agnostic service container inspector
README 文档
README
A powerful tool for inspecting, visualizing, and tracking mutations in PHP service containers (Laravel, Symfony, PSR-11).
Features
- Web dashboard for service inspection and visualization
- CLI commands for analysis and export
- Mutation tracking (bindings, aliases, etc.)
- Dependency graph export (Graphviz/D3.js)
- Service comparison across environments
- Tagged service listing
- Circular dependency and duplicate binding detection
Installation
composer require papoon/inspector --dev
Quick Start
Web Dashboard
php -S localhost:8000 -t public
Visit http://localhost:8000 in your browser.
CLI Usage
List services:
php bin/inspect inspector:list-services
Compare containers:
php bin/inspect inspector:compare-containers local staging prod
Export service map:
php bin/inspect inspector:export-map json
Usage in Laravel
-
Wrap your container with the Inspector adapter:
use Inspector\Adapters\LaravelAdapter; use Illuminate\Container\Container; $container = app(); $adapter = new LaravelAdapter($container);
-
Track mutations:
use Inspector\MutationEventDispatcher; $dispatcher = new MutationEventDispatcher(); $dispatcher->listen(function ($mutation) { logger()->info('Container mutation', $mutation); }); $adapter->setMutationDispatcher($dispatcher);
-
Use adapter methods for mutations:
$adapter->bind('foo', function () { return new Foo(); }); $adapter->alias('foo', 'bar');
-
Inspect services and mutations:
use Inspector\Inspector; $inspector = new Inspector($adapter); $services = $inspector->browseServices(); $mutations = $inspector->getMutations();
Usage in Symfony
-
Wrap your container with the Inspector adapter:
use Inspector\Adapters\SymfonyAdapter; use Symfony\Component\DependencyInjection\ContainerBuilder; $container = $this->container; $adapter = new SymfonyAdapter($container);
-
Track mutations:
use Inspector\MutationEventDispatcher; $dispatcher = new MutationEventDispatcher(); $dispatcher->listen(function ($mutation) { // Log or display mutation events }); $adapter->setMutationDispatcher($dispatcher);
-
Use adapter methods for mutations:
$adapter->setDefinition('foo', new Definition(Foo::class)); $adapter->removeDefinition('foo');
-
Inspect services and mutations:
use Inspector\Inspector; $inspector = new Inspector($adapter); $services = $inspector->browseServices(); $mutations = $inspector->getMutations();
Test Coverage
To generate a coverage report locally:
vendor/bin/phpunit --coverage-html coverage
Open coverage/index.html in your browser to view the report.
Contributing
Pull requests and issues are welcome!
Please ensure all code is covered by tests and passes CI.
License
MIT
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-08-26