jbzoo/pimpledumper

此包已被放弃,不再维护。未建议替代包。

自动创建 Pimple 容器的 pimple.json 和 .phpstorm.meta.php 的简单方法

1.2.2 2017-11-14 11:14 UTC

This package is auto-updated.

Last update: 2020-05-20 00:10:57 UTC


README

简单自动创建 pimple.json.phpstorm.meta.php

License Latest Stable Version Scrutinizer Code Quality

安装

composer require jbzoo/pimpledumper

在 PhpStorm 设置中安装并激活 Silex 插件

用法

<?php
require_once './vendor/autoload.php'; // composer autoload.php

// Get needed classes
use JBZoo\PimpleDumper\PimpleDumper;
use Pimple\Container;

// Init container
$container = new Container();
$container['somekey'] = function() {
    return new SomeClass(); 
};

// Auto dump pimple.json on PimpleDumper destructor (or PHP die)
$container->register(new PimpleDumper()); // register service

// Manually (in the end of script!)
$dumper = new PimpleDumper();
$dumper->dumpPimple($container); // Create new pimple.json 
$dumper->dumpPimple($container, true); // Append to current pimple.json 
$dumper->dumpPhpstorm($container); // Create new .phpstorm.meta.php (experimental!)

输出示例

pimple.json

[
    {
        "name": "somekey",
        "type": "class",
        "value": "SomeClass"
    }
]

.phpstorm.meta.php(实验性!)

<?php
/**
 * ProcessWire PhpStorm Meta
 *
 * This file is not a CODE, it makes no sense and won't run or validate
 * Its AST serves PhpStorm IDE as DATA source to make advanced type inference decisions.
 * 
 * @see https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Advanced+Metadata
 */

namespace PHPSTORM_META {

    $STATIC_METHOD_TYPES = [
        new \Pimple\Container => [
            '' == '@',
            'somekey' instanceof SomeClass,
        ],
    ];

}

结果

Result of JBZoo/PimpleDumper

单元测试和检查代码风格

make
make test-all

许可证

MIT