Skip to content

Commit 60799f3

Browse files
authored
Merge pull request #111 from beyondcode/updates
2.1.0
2 parents 548a1f3 + fe3238d commit 60799f3

File tree

9 files changed

+21
-61
lines changed

9 files changed

+21
-61
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@ composer.lock
33
docs
44
vendor
55
coverage
6-
.idea
6+
.idea
7+
tests/__snapshots__/
8+
.phpunit.result.cache

.scrutinizer.yml

Lines changed: 0 additions & 19 deletions
This file was deleted.

.travis.yml

Lines changed: 0 additions & 24 deletions
This file was deleted.

README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# Laravel ER Diagram Generator
22

33
[![Latest Version on Packagist](https://img.shields.io/packagist/v/beyondcode/laravel-er-diagram-generator.svg?style=flat-square)](https://packagist.org/packages/beyondcode/laravel-er-diagram-generator)
4-
[![Build Status](https://img.shields.io/travis/beyondcode/laravel-er-diagram-generator/master.svg?style=flat-square)](https://travis-ci.org/beyondcode/laravel-er-diagram-generator)
5-
[![Quality Score](https://img.shields.io/scrutinizer/g/beyondcode/laravel-er-diagram-generator.svg?style=flat-square)](https://scrutinizer-ci.com/g/beyondcode/laravel-er-diagram-generator)
64
[![Total Downloads](https://img.shields.io/packagist/dt/beyondcode/laravel-er-diagram-generator.svg?style=flat-square)](https://packagist.org/packages/beyondcode/laravel-er-diagram-generator)
75

86
This package lets you generate entity relation diagrams by inspecting the relationships defined in your model files.
@@ -46,7 +44,7 @@ If you are using Laravel 5.5+, the package will automatically register the servi
4644
If you are using Lumen, you will need to add the following to `bootstrap\app.php`:
4745

4846
```php
49-
\\ Register Service Providers
47+
# Register Service Providers
5048
$app->register(BeyondCode\ErdGenerator\ErdGeneratorServiceProvider::class);
5149
```
5250

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@
1919
"php": "^7.1|^8.0",
2020
"doctrine/dbal": "~2.3|^3.3",
2121
"phpdocumentor/graphviz": "^1.0",
22-
"nikic/php-parser": "^2.0|^3.0|^4.0"
22+
"nikic/php-parser": "^2.0|^3.0|^4.0|^5.0"
2323
},
2424
"require-dev": {
2525
"larapack/dd": "^1.0",
26-
"orchestra/testbench": "~3.5|~3.6|~3.7|~3.8|^4.0|^7.0",
26+
"orchestra/testbench": "~3.5|~3.6|~3.7|~3.8|^4.0|^7.0|^8.0|^9.0",
2727
"phpunit/phpunit": "^7.0| ^8.0|^9.5.10",
2828
"spatie/phpunit-snapshot-assertions": "^1.3|^4.2"
2929
},

src/GraphBuilder.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public function buildGraph(Collection $models) : Graph
2222
$this->graph = new Graph();
2323

2424
foreach (config('erd-generator.graph') as $key => $value) {
25-
$this->graph->{"set${key}"}($value);
25+
$this->graph->{"set{$key}"}($value);
2626
}
2727

2828
$this->addModelsToGraph($models);
@@ -94,7 +94,7 @@ protected function addNodeToGraph(EloquentModel $eloquentModel, string $nodeName
9494
$node->setLabel($this->getModelLabel($eloquentModel, $label));
9595

9696
foreach (config('erd-generator.node') as $key => $value) {
97-
$node->{"set${key}"}($value);
97+
$node->{"set{$key}"}($value);
9898
}
9999

100100
$this->graph->setNode($node);
@@ -129,11 +129,11 @@ protected function connectNodes(Node $modelNode, Node $relatedModelNode, ModelRe
129129
$edge->setXLabel($relation->getType() . PHP_EOL . $relation->getName());
130130

131131
foreach (config('erd-generator.edge') as $key => $value) {
132-
$edge->{"set${key}"}($value);
132+
$edge->{"set{$key}"}($value);
133133
}
134134

135135
foreach (config('erd-generator.relations.' . $relation->getType(), []) as $key => $value) {
136-
$edge->{"set${key}"}($value);
136+
$edge->{"set{$key}"}($value);
137137
}
138138

139139
$this->graph->link($edge);
@@ -216,4 +216,4 @@ protected function connectByRelation(
216216

217217
$this->connectNodes($modelNode, $relatedModelNode, $relation);
218218
}
219-
}
219+
}

src/ModelFinder.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,10 @@ public function getModelsInDirectory(string $directory): Collection
5454

5555
protected function getFullyQualifiedClassNameFromFile(string $path): string
5656
{
57-
$parser = (new ParserFactory())->create(ParserFactory::PREFER_PHP7);
57+
$factory = new ParserFactory();
58+
$parser = method_exists($factory, 'createForHostVersion')
59+
? $factory->createForHostVersion()
60+
: $factory->create(ParserFactory::PREFER_PHP7);
5861

5962
$traverser = new NodeTraverser();
6063
$traverser->addVisitor(new NameResolver());

src/RelationFinder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public function getModelRelations(string $model)
3131
$methods = Collection::make($class->getMethods(ReflectionMethod::IS_PUBLIC))
3232
->merge($traitMethods)
3333
->reject(function (ReflectionMethod $method) use ($model) {
34-
return $method->class !== $model || $method->getNumberOfParameters() > 0;
34+
return $method->class !== $model || $method->getNumberOfParameters() > 0 || $method->isStatic();;
3535
});
3636

3737
$relations = Collection::make();

tests/GenerationTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class GenerationTest extends TestCase
1313
public function it_generated_graphviz_for_test_models()
1414
{
1515
$this->app['config']->set('erd-generator.use_db_schema', false);
16-
$this->app['config']->set('erd-generator.directories', [__DIR__.'/Models']);
16+
$this->app['config']->set('erd-generator.directories', [__DIR__ . '/Models']);
1717

1818
Artisan::call('generate:erd', [
1919
'--format' => 'text'
@@ -25,7 +25,7 @@ public function it_generated_graphviz_for_test_models()
2525
/** @test */
2626
public function it_generated_graphviz_for_test_models_with_db_columns_and_types()
2727
{
28-
$this->app['config']->set('erd-generator.directories', [__DIR__.'/Models']);
28+
$this->app['config']->set('erd-generator.directories', [__DIR__ . '/Models']);
2929

3030
Artisan::call('generate:erd', [
3131
'--format' => 'text'
@@ -38,7 +38,7 @@ public function it_generated_graphviz_for_test_models_with_db_columns_and_types(
3838
public function it_generated_graphviz_for_test_models_with_db_columns()
3939
{
4040
$this->app['config']->set('erd-generator.use_column_types', false);
41-
$this->app['config']->set('erd-generator.directories', [__DIR__.'/Models']);
41+
$this->app['config']->set('erd-generator.directories', [__DIR__ . '/Models']);
4242

4343
Artisan::call('generate:erd', [
4444
'--format' => 'text'
@@ -50,12 +50,12 @@ public function it_generated_graphviz_for_test_models_with_db_columns()
5050
/** @test */
5151
public function it_generated_graphviz_in_jpeg_format()
5252
{
53-
$this->app['config']->set('erd-generator.directories', [__DIR__.'/Models']);
53+
$this->app['config']->set('erd-generator.directories', [__DIR__ . '/Models']);
5454

5555
Artisan::call('generate:erd', [
5656
'--format' => 'jpeg'
5757
]);
5858

59-
$this->assertContains('Wrote diagram to graph.jpeg', Artisan::output());
59+
$this->assertStringContainsString('Wrote diagram to graph.jpeg', Artisan::output());
6060
}
6161
}

0 commit comments

Comments
 (0)