loadMigrationsFrom(__DIR__.'/migrations'); } protected function getPackageProviders($app): array { return [ ServiceProvider::class, MediaLibraryServiceProvider::class, LaravelDataServiceProvider::class, ]; } /** * Generate a pdf file with a filename and get path. */ protected function pdfFile(?string $filename = null): File { return $this->getFile('pdf.pdf', $filename ?: 'pdf.pdf'); } protected function jpgFile(?string $filename = null): File { return $this->getFile('jpg.jpg', $filename ?: 'jpg.jpg'); } protected function getFile(string $location, string $as): File { $path = __DIR__.'/stubs/'.$location; $to = sys_get_temp_dir().'/'.$as; copy($path, $to); return new File($to); } protected function registerModel(): static { app()->extend('media-library-helpers', fn ($p) => $p->put('post', Post::class)); return $this; } protected function newPost(): Post { return Post::create(['title' => 'Lorem', 'content' => 'aafff']); } protected function auth(array $policies = []): self { $policies = [ 'storeMedia' => true, 'updateMedia' => true, 'destroyMedia' => true, 'listMedia' => true, ...$policies, ]; foreach ($policies as $ability => $result) { Gate::define($ability, fn (?string $user, string $collectionName) => $result); } return $this; } protected function defineEnvironment($app) { $app['config']->set('medialibrary-helper.middleware', ['web']); } }