arokettu/phpstorm-metadata-export

Export PhpStorm Advanced Metadata from DI containers

3.0.1 2024-07-28 20:18 UTC

README

Packagist license Code Climate Gitlab pipeline status Codecov

Export PhpStorm Advanced Metadata from DI containers to enable code completion.

The library is inspired by Pimple Container Dumper for Silex, but it doesn't require IDE plugin because it uses native PhpStorm export format. It can integrate with any PSR-15 compliant framework and is extensible to support more DI containers and frameworks in the future.

Installation

Install by composer

composer require arokettu/phpstorm-metadata-export --dev

Container Support

Supported containers:

Integration middlewares for:

Example

<?php

$container = new \DI\Container();
// .phpstorm.meta.php must be in a root path of your project
$storePath = __DIR__ '/.phpstorm.meta.php/sandfox_container_export.meta.php';

// just generate the file content
$metaPhp = \Arokettu\PhpStorm\Metadata\Generator::get([$container]);
file_put_contents($storePath, $metaPhp);

// use middleware (Slim 4 example)
$app = new \Slim\App();
$app->addMiddleware(new \Arokettu\PhpStorm\Metadata\Integration\ContainerExportMiddleware($container, [
    'filename' => $storePath,
]));

Documentation

Read full documentation at https://sandfox.dev/php/metadata-exporter-phpstorm.html

Also on Read the Docs: https://phpstorm-metadata-export.readthedocs.io/

Support

Please file issues on our main repo at GitLab: https://gitlab.com/sandfox/phpstorm-metadata-export/-/issues

Feel free to ask any questions in our room on Gitter: https://gitter.im/arokettu/community

License

The library is available as open source under the terms of the MIT License. See LICENSE.md.