misakacloud/pimpledumper

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

1.3.1 2024-09-21 21:02 UTC

This package is auto-updated.

Last update: 2024-11-21 21:19:43 UTC


README

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

License Latest Stable Version Scrutinizer Code Quality

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

Result of JBZoo/PimpleDumper

Unit tests and check code style

make
make test-all

License

MIT