Skip to content

Commit

Permalink
Merge pull request #111 from beyondcode/updates
Browse files Browse the repository at this point in the history
2.1.0
  • Loading branch information
mechelon committed Mar 15, 2024
2 parents 548a1f3 + fe3238d commit 60799f3
Show file tree
Hide file tree
Showing 9 changed files with 21 additions and 61 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Expand Up @@ -3,4 +3,6 @@ composer.lock
docs
vendor
coverage
.idea
.idea
tests/__snapshots__/
.phpunit.result.cache
19 changes: 0 additions & 19 deletions .scrutinizer.yml

This file was deleted.

24 changes: 0 additions & 24 deletions .travis.yml

This file was deleted.

4 changes: 1 addition & 3 deletions README.md
@@ -1,8 +1,6 @@
# Laravel ER Diagram Generator

[![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)
[![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)
[![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)
[![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)

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

```php
\\ Register Service Providers
# Register Service Providers
$app->register(BeyondCode\ErdGenerator\ErdGeneratorServiceProvider::class);
```

Expand Down
4 changes: 2 additions & 2 deletions composer.json
Expand Up @@ -19,11 +19,11 @@
"php": "^7.1|^8.0",
"doctrine/dbal": "~2.3|^3.3",
"phpdocumentor/graphviz": "^1.0",
"nikic/php-parser": "^2.0|^3.0|^4.0"
"nikic/php-parser": "^2.0|^3.0|^4.0|^5.0"
},
"require-dev": {
"larapack/dd": "^1.0",
"orchestra/testbench": "~3.5|~3.6|~3.7|~3.8|^4.0|^7.0",
"orchestra/testbench": "~3.5|~3.6|~3.7|~3.8|^4.0|^7.0|^8.0|^9.0",
"phpunit/phpunit": "^7.0| ^8.0|^9.5.10",
"spatie/phpunit-snapshot-assertions": "^1.3|^4.2"
},
Expand Down
10 changes: 5 additions & 5 deletions src/GraphBuilder.php
Expand Up @@ -22,7 +22,7 @@ public function buildGraph(Collection $models) : Graph
$this->graph = new Graph();

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

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

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

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

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

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

$this->graph->link($edge);
Expand Down Expand Up @@ -216,4 +216,4 @@ protected function connectByRelation(

$this->connectNodes($modelNode, $relatedModelNode, $relation);
}
}
}
5 changes: 4 additions & 1 deletion src/ModelFinder.php
Expand Up @@ -54,7 +54,10 @@ public function getModelsInDirectory(string $directory): Collection

protected function getFullyQualifiedClassNameFromFile(string $path): string
{
$parser = (new ParserFactory())->create(ParserFactory::PREFER_PHP7);
$factory = new ParserFactory();
$parser = method_exists($factory, 'createForHostVersion')
? $factory->createForHostVersion()
: $factory->create(ParserFactory::PREFER_PHP7);

$traverser = new NodeTraverser();
$traverser->addVisitor(new NameResolver());
Expand Down
2 changes: 1 addition & 1 deletion src/RelationFinder.php
Expand Up @@ -31,7 +31,7 @@ public function getModelRelations(string $model)
$methods = Collection::make($class->getMethods(ReflectionMethod::IS_PUBLIC))
->merge($traitMethods)
->reject(function (ReflectionMethod $method) use ($model) {
return $method->class !== $model || $method->getNumberOfParameters() > 0;
return $method->class !== $model || $method->getNumberOfParameters() > 0 || $method->isStatic();;
});

$relations = Collection::make();
Expand Down
10 changes: 5 additions & 5 deletions tests/GenerationTest.php
Expand Up @@ -13,7 +13,7 @@ class GenerationTest extends TestCase
public function it_generated_graphviz_for_test_models()
{
$this->app['config']->set('erd-generator.use_db_schema', false);
$this->app['config']->set('erd-generator.directories', [__DIR__.'/Models']);
$this->app['config']->set('erd-generator.directories', [__DIR__ . '/Models']);

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

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

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

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

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

0 comments on commit 60799f3

Please sign in to comment.