PimpleDumper

Easy way to auto create pimple.json and .phpstorm.meta.php for Pimple Container

MIT License

Stars
13

JBZoo PimpleDumper Build Status Coverage Status

Simple way to auto create pimple.json and .phpstorm.meta.php

Install

composer require jbzoo/pimpledumper

Install and activate Silex Plugin in PhpStorm settings

Usage

<?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!)

Output example

pimple.json

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

.phpstorm.meta.php (experimental!)

<?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

Unit tests and check code style

make
make test-all

License

MIT