Usage¶
The library has integration classes available for PSR-15 compliant frameworks and legacy Slim.
By default exporter will create directory .phpstorm.meta.php
in the root path of your project
(where vendor
directory is) and put metadata file to it on every request.
It is a good idea to enable integration components only in development environment.
Don’t forget to gitignore your .phpstorm.meta.php
directory.
Using Generator directly¶
<?php
use SandFox\PhpStorm\Metadata\Generator;
$container = new Container();
file_put_contents(
'/path/to/project/.phpstorm.meta.php/my_export_file.meta.php',
Generator::get([$container])
);
// OR
Generator::store(
'/path/to/project/.phpstorm.meta.php/my_export_file.meta.php',
[$container]
);
PSR-15¶
The library provides a middleware implementation for PSR-15 compliant framework like Slim 4 or Mezzio.
It generally uses the same approach as the earlier Slim Middleware.
The classname is SandFox\PhpStorm\Metadata\Integration\ContainerExportMiddleware
.
<?php
use SandFox\PhpStorm\Metadata\Integration\ContainerExportMiddleware;
$middleware = new ContainerExportMiddleware($container);
// You can also override metadata filename like this
$middleware = new ContainerExportMiddleware($container, [
// it is a good idea to use full path here
'filename' => '/path/to/project/.phpstorm.meta.php/my_export_file.meta.php',
]);
// Register middleware the way your compliant framework allows it
$myPsr15CompliantApp->registerMiddleware($middleware);
Slim 3¶
ContainerExportMiddleware
can also work as a legacy Slim 3 middleware.
Add it to your Slim 3 app:
<?php
use Slim\App;
use SandFox\PhpStorm\Metadata\Integration\ContainerExportMiddleware;
$app = new App();
$app->add(new ContainerExportMiddleware($app->getContainer()));
// You can also override metadata filename like this
$app->add(new ContainerExportMiddleware($app->getContainer(), [
// it is a good idea to use full path here
'filename' => '/path/to/project/.phpstorm.meta.php/my_export_file.meta.php',
]));