https://github.com/haehnchen/idea-php-code-usage
Exports a PHP file structure to JSON
https://github.com/haehnchen/idea-php-code-usage
Last synced: 4 months ago
JSON representation
Exports a PHP file structure to JSON
- Host: GitHub
- URL: https://github.com/haehnchen/idea-php-code-usage
- Owner: Haehnchen
- Created: 2016-05-06T10:29:08.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-12-09T17:36:36.000Z (almost 9 years ago)
- Last Synced: 2025-03-02T03:43:20.865Z (7 months ago)
- Language: Java
- Size: 47.9 KB
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Intellij PHP File Structure Exporter
(poc) Intellij plugin that extracts PHP file structure with code usages like class, interfaces, annotations.
Also supports Symfony service because it fully reusage Intellij external Plugins.## Example Web App (not included)

## Example
```javascript
{
"items":[
{
"context":{
"start_line":10,
"context":[
{
"content":"",
"line":10
},
{
"content":"namespace Symfony\\Cmf\\Component\\Routing\\DependencyInjection\\Compiler;",
"line":11
},
{
"content":"",
"line":12
},
{
"content":"use Symfony\\Component\\DependencyInjection\\ContainerBuilder;",
"is_highlight":true,
"line":13
},
{
"content":"use Symfony\\Component\\DependencyInjection\\Reference;",
"line":14
},
{
"content":"use Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface;",
"line":15
},
{
"content":"",
"line":16
}
],
"line":13,
"end_line":16
},
"class":"Symfony\\Component\\DependencyInjection\\ContainerBuilder",
"type":"use",
"key":"301-355"
},
{
"context":{
"start_line":11,
"context":[
{
"content":"namespace Symfony\\Cmf\\Component\\Routing\\DependencyInjection\\Compiler;",
"line":11
},
{
"content":"",
"line":12
},
{
"content":"use Symfony\\Component\\DependencyInjection\\ContainerBuilder;",
"line":13
},
{
"content":"use Symfony\\Component\\DependencyInjection\\Reference;",
"is_highlight":true,
"line":14
},
{
"content":"use Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface;",
"line":15
},
{
"content":"",
"line":16
},
{
"content":"/**",
"line":17
}
],
"line":14,
"end_line":17
},
"class":"Symfony\\Component\\DependencyInjection\\Reference",
"type":"use",
"key":"361-408"
},
{
"context":{
"start_line":12,
"context":[
{
"content":"",
"line":12
},
{
"content":"use Symfony\\Component\\DependencyInjection\\ContainerBuilder;",
"line":13
},
{
"content":"use Symfony\\Component\\DependencyInjection\\Reference;",
"line":14
},
{
"content":"use Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface;",
"is_highlight":true,
"line":15
},
{
"content":"",
"line":16
},
{
"content":"/**",
"line":17
},
{
"content":" * Compiler pass to register routers to the ChainRouter.",
"line":18
}
],
"line":15,
"end_line":18
},
"class":"Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface",
"type":"use",
"key":"414-482"
},
{
"doc_comment":"/**\n * Compiler pass to register routers to the ChainRouter.\n *\n * @author Wouter J \n * @author Henrik Bjornskov \n * @author Magnus Nordlander \n */",
"class":"Symfony\\Cmf\\Component\\Routing\\DependencyInjection\\Compiler\\RegisterRoutersPass",
"type":"class"
},
{
"child":"Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface",
"is_interface":false,
"class":"Symfony\\Cmf\\Component\\Routing\\DependencyInjection\\Compiler\\RegisterRoutersPass",
"type":"implements"
},
{
"child":"Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface",
"is_interface":false,
"class":"Symfony\\Cmf\\Component\\Routing\\DependencyInjection\\Compiler\\RegisterRoutersPass",
"type":"implements"
},
{
"child":"Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface",
"is_interface":false,
"class":"Symfony\\Cmf\\Component\\Routing\\DependencyInjection\\Compiler\\RegisterRoutersPass",
"type":"implements"
},
{
"child":"Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface",
"is_interface":false,
"class":"Symfony\\Cmf\\Component\\Routing\\DependencyInjection\\Compiler\\RegisterRoutersPass",
"type":"implements"
},
{
"child":"Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface",
"is_interface":false,
"class":"Symfony\\Cmf\\Component\\Routing\\DependencyInjection\\Compiler\\RegisterRoutersPass",
"type":"implements"
},
{
"is_interface":false,
"context":{
"start_line":36,
"context":[
{
"content":" $this->routerTag = $routerTag;",
"line":36
},
{
"content":" }",
"line":37
},
{
"content":"",
"line":38
},
{
"content":" public function process(ContainerBuilder $container)",
"is_highlight":true,
"line":39
},
{
"content":" {",
"line":40
},
{
"content":" if (!$container->hasDefinition($this->chainRouterService)) {",
"line":41
},
{
"content":" return;",
"line":42
}
],
"line":39,
"end_line":42
},
"class":"Symfony\\Component\\DependencyInjection\\ContainerBuilder",
"type":"type_hint",
"key":"1095-1111"
},
{
"is_interface":false,
"context":{
"start_line":47,
"context":[
{
"content":" foreach ($container->findTaggedServiceIds($this->routerTag) as $id => $attributes) {",
"line":47
},
{
"content":" $priority = isset($attributes[0]['priority']) ? $attributes[0]['priority'] : 0;",
"line":48
},
{
"content":"",
"line":49
},
{
"content":" $definition->addMethodCall('add', array(new Reference($id), $priority));",
"is_highlight":true,
"line":50
},
{
"content":" }",
"line":51
},
{
"content":" }",
"line":52
},
{
"content":"}",
"line":53
}
],
"line":50,
"end_line":53
},
"class":"Symfony\\Component\\DependencyInjection\\Reference",
"type":"instance",
"key":"1545-1563"
}
],
"file":"DependencyInjection/Compiler/RegisterRoutersPass.php",
"name":"symfony-cmf/routing",
"homepage":"http://cmf.symfony.com"
}
```