mirror of
https://github.com/brufdev/many-notes.git
synced 2026-01-15 15:29:49 -06:00
81 lines
1.5 KiB
PHP
81 lines
1.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
|
|
arch()->preset()->php();
|
|
arch()->preset()->laravel();
|
|
arch()->preset()->security();
|
|
|
|
arch('controllers')
|
|
->expect('App\Http\Controllers')
|
|
->not->toBeUsed();
|
|
|
|
arch('avoid mutation')
|
|
->expect('App')
|
|
->classes()
|
|
->toBeReadonly()
|
|
->ignoring([
|
|
'App\Exceptions',
|
|
'App\Jobs',
|
|
'App\Livewire',
|
|
'App\Models',
|
|
'App\Providers',
|
|
'App\Services',
|
|
]);
|
|
|
|
arch('avoid inheritance')
|
|
->expect('App')
|
|
->classes()
|
|
->toExtendNothing()
|
|
->ignoring([
|
|
'App\Exceptions',
|
|
'App\Jobs',
|
|
'App\Livewire',
|
|
'App\Models',
|
|
'App\Providers',
|
|
'App\Services',
|
|
]);
|
|
|
|
arch('avoid open for extension')
|
|
->expect('App')
|
|
->classes()
|
|
->toBeFinal()
|
|
->ignoring([
|
|
'App\Livewire',
|
|
]);
|
|
|
|
arch('avoid abstraction')
|
|
->expect('App')
|
|
->not->toBeAbstract();
|
|
|
|
arch('factories')
|
|
->expect('Database\Factories')
|
|
->toExtend(Factory::class)
|
|
->toHaveMethod('definition')
|
|
->toOnlyBeUsedIn([
|
|
'App\Models',
|
|
]);
|
|
|
|
arch('models')
|
|
->expect('App\Models')
|
|
->toHaveMethod('casts')
|
|
->toOnlyBeUsedIn([
|
|
'App\Actions',
|
|
'App\Http',
|
|
'App\Jobs',
|
|
'App\Livewire',
|
|
'App\Models',
|
|
'App\Observers',
|
|
'App\Policies',
|
|
'App\Providers',
|
|
'App\Services',
|
|
'Database\Factories',
|
|
'Database\Seeders',
|
|
]);
|
|
|
|
arch('actions')
|
|
->expect('App\Actions')
|
|
->toHaveMethod('handle');
|