承接 papoon/inspector 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

papoon/inspector

Composer 安装命令:

composer require papoon/inspector

包简介

Framework-agnostic service container inspector

README 文档

README

Coverage Status

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

  1. Wrap your container with the Inspector adapter:

    use Inspector\Adapters\LaravelAdapter;
    use Illuminate\Container\Container;
    
    $container = app();
    $adapter = new LaravelAdapter($container);
  2. Track mutations:

    use Inspector\MutationEventDispatcher;
    
    $dispatcher = new MutationEventDispatcher();
    $dispatcher->listen(function ($mutation) {
        logger()->info('Container mutation', $mutation);
    });
    $adapter->setMutationDispatcher($dispatcher);
  3. Use adapter methods for mutations:

    $adapter->bind('foo', function () { return new Foo(); });
    $adapter->alias('foo', 'bar');
  4. Inspect services and mutations:

    use Inspector\Inspector;
    
    $inspector = new Inspector($adapter);
    $services = $inspector->browseServices();
    $mutations = $inspector->getMutations();

Usage in Symfony

  1. Wrap your container with the Inspector adapter:

    use Inspector\Adapters\SymfonyAdapter;
    use Symfony\Component\DependencyInjection\ContainerBuilder;
    
    $container = $this->container;
    $adapter = new SymfonyAdapter($container);
  2. Track mutations:

    use Inspector\MutationEventDispatcher;
    
    $dispatcher = new MutationEventDispatcher();
    $dispatcher->listen(function ($mutation) {
        // Log or display mutation events
    });
    $adapter->setMutationDispatcher($dispatcher);
  3. Use adapter methods for mutations:

    $adapter->setDefinition('foo', new Definition(Foo::class));
    $adapter->removeDefinition('foo');
  4. 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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-08-26