• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

DarkaOnLine / SwaggerLume / 9090835749

15 May 2024 06:09AM UTC coverage: 78.07% (-0.3%) from 78.325%
9090835749

push

github

web-flow
Support Lumen 11 (#140)

* Updating CI

* Update composer.json

* zircot

* Update test-config.yml

* Update test-config.yml

* Latest

* Update test-config.yml

* Update test-config.yml

* Update test-config.yml

* Update composer.json

* Update test-config.yml

* Update composer.json

* Update composer.json

* Update composer.json

* Update test-config.yml

* Update test-config.yml

* Update test-config.yml

* Update test-config.yml

* Update test-config.yml

* Update test-config.yml

* separate tests anotations to files for swagger-php:4 support

---------

Co-authored-by: Darius Matulionis <darius.matulionis@supermetrics.com>

178 of 228 relevant lines covered (78.07%)

4.73 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

83.33
/src/Generator.php
1
<?php
2

3
namespace SwaggerLume;
4

5
use Illuminate\Support\Facades\File;
6
use OpenApi\Annotations\Server;
7
use OpenApi\Generator as OpenApiGenerator;
8
use OpenApi\Util;
9
use Symfony\Component\Yaml\Dumper as YamlDumper;
10
use Symfony\Component\Yaml\Yaml;
11

12
class Generator
13
{
14
    public static function generateDocs()
15
    {
16
        $appDir = config('swagger-lume.paths.annotations');
6✔
17
        $docDir = config('swagger-lume.paths.docs');
6✔
18
        if (! File::exists($docDir) || is_writable($docDir)) {
6✔
19
            // delete all existing documentation
20
            if (File::exists($docDir)) {
6✔
21
                File::deleteDirectory($docDir);
5✔
22
            }
23

24
            self::defineConstants(config('swagger-lume.constants') ?: []);
6✔
25

26
            File::makeDirectory($docDir);
6✔
27
            $excludeDirs = config('swagger-lume.paths.excludes');
6✔
28

29
            if (version_compare(config('swagger-lume.swagger_version'), '3.0', '>=')) {
6✔
30
                $generator = new OpenApiGenerator();
6✔
31
                $finder = Util::finder($appDir, $excludeDirs);
6✔
32
                $swagger = $generator->generate($finder);
6✔
33
            } else {
34
                $swagger = \Swagger\scan($appDir, ['exclude' => $excludeDirs]);
×
35
            }
36

37
            if (config('swagger-lume.paths.base') !== null) {
6✔
38
                if (version_compare(config('swagger-lume.swagger_version'), '3.0', '>=')) {
×
39
                    $swagger->servers = [
×
40
                        new Server(['url' => config('swagger-lume.paths.base')]),
×
41
                    ];
×
42
                } else {
43
                    $swagger->basePath = config('swagger-lume.paths.base');
×
44
                }
45
            }
46

47
            $filename = sprintf('%s/%s', $docDir, config('swagger-lume.paths.docs_json'));
6✔
48
            $swagger->saveAs($filename);
6✔
49

50
            $security = new SecurityDefinitions();
6✔
51
            $security->generate($filename);
6✔
52

53
            self::makeYamlCopy($filename);
6✔
54
        }
55
    }
56

57
    protected static function defineConstants(array $constants)
58
    {
59
        if (! empty($constants)) {
6✔
60
            foreach ($constants as $key => $value) {
6✔
61
                defined($key) || define($key, $value);
6✔
62
            }
63
        }
64
    }
65

66
    protected static function makeYamlCopy($filename)
67
    {
68
        if (config('swagger-lume.generate_yaml_copy')) {
6✔
69
            $path = sprintf('%s/%s', config('swagger-lume.paths.docs'), config('swagger-lume.paths.docs_yaml'));
6✔
70
            $yamlContent = (new YamlDumper(2))->dump(
6✔
71
                json_decode(file_get_contents($filename), true),
6✔
72
                20,
6✔
73
                0,
6✔
74
                Yaml::DUMP_OBJECT_AS_MAP ^ Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE
6✔
75
            );
6✔
76

77
            file_put_contents($path, $yamlContent);
6✔
78
        }
79
    }
80
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc