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

orchestral / canvas / 6182179146

14 Sep 2023 07:15AM UTC coverage: 78.922% (-11.0%) from 89.945%
6182179146

Pull #24

github

crynobone
wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>
Pull Request #24: Use Laravel Generator Preset

185 of 185 new or added lines in 11 files covered. (100.0%)

161 of 204 relevant lines covered (78.92%)

5.91 hits per line

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

96.55
/src/CanvasServiceProvider.php
1
<?php
2

3
namespace Orchestra\Canvas;
4

5
use Illuminate\Console\Generators\PresetManager;
6
use Illuminate\Contracts\Foundation\Application;
7
use Illuminate\Contracts\Support\DeferrableProvider;
8
use Illuminate\Support\Arr;
9
use Illuminate\Support\ServiceProvider;
10
use Symfony\Component\Yaml\Yaml;
11

12
class CanvasServiceProvider extends ServiceProvider implements DeferrableProvider
13
{
14
    /**
15
     * Register services.
16
     *
17
     * @return void
18
     */
19
    public function register(): void
20
    {
21
        if (class_exists(PresetManager::class)) {
21✔
22
            $this->callAfterResolving(PresetManager::class, function ($manager, $app) {
21✔
23
                $manager->extend('canvas', function ($app) {
21✔
24
                    return new GeneratorPreset($app);
21✔
25
                });
21✔
26

27
                $manager->setDefaultDriver('canvas');
21✔
28
            });
21✔
29
        }
30

31
        $this->app->singleton('orchestra.canvas', function (Application $app) {
21✔
32
            $workingPath = \defined('CANVAS_WORKING_PATH') ? CANVAS_WORKING_PATH : $this->app->basePath();
5✔
33

34
            $filesystem = $app->make('files');
5✔
35

36
            $config = ['preset' => 'laravel'];
5✔
37

38
            if (file_exists($workingPath.DIRECTORY_SEPARATOR.'canvas.yaml')) {
5✔
39
                $config = Yaml::parseFile($workingPath.DIRECTORY_SEPARATOR.'canvas.yaml');
×
40
            } else {
41
                Arr::set($config, 'testing.extends', [
5✔
42
                    'unit' => 'PHPUnit\Framework\TestCase',
5✔
43
                    'feature' => 'Tests\TestCase',
5✔
44
                ]);
5✔
45

46
                $config['namespace'] = rescue(fn () => rtrim($this->app->getNamespace(), '\\'), null, false);
5✔
47
            }
48

49
            return Canvas::preset($config, $workingPath);
5✔
50
        });
21✔
51
    }
52

53
    /**
54
     * Bootstrap services.
55
     */
56
    public function boot(): void
57
    {
58
        if ($this->app->runningInConsole()) {
21✔
59
            $this->commands([
21✔
60
                Console\CodeMakeCommand::class,
21✔
61
                Console\FactoryMakeCommand::class,
21✔
62
                Console\GeneratorMakeCommand::class,
21✔
63
                Console\TestMakeCommand::class,
21✔
64
                Console\ViewMakeCommand::class,
21✔
65
            ]);
21✔
66
        }
67
    }
68

69
    /**
70
     * Get the services provided by the provider.
71
     *
72
     * @return array<int, string>
73
     */
74
    public function provides()
75
    {
76
        return ['orchestra.canvas'];
1✔
77
    }
78
}
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