<?php namespace Illuminate\Filesystem; use Illuminate\Support\ServiceProvider; // namespace class FilesystemServiceProvider extends ServiceProvider {// File system Service Provider extends Service Provider /** * Register the service provider. * * @return void */ public function register() { $this->registerNativeFilesystem();// register $this->registerFlysystem();// register Fly system }// register the service provider /** * Register the native filesystem implementation. * * @return void */ protected function registerNativeFilesystem() { $this->app->singleton(‘files‘, function () { return new Filesystem; }); }// register a singleton files, get a instance about filesystem /** * Register the driver based filesystem. * * @return void */ protected function registerFlysystem() { $this->registerManager();// first register Manager $this->app->singleton(‘filesystem.disk‘, function () { return $this->app[‘filesystem‘]->disk($this->getDefaultDriver()); });// if it is a disk, get the Default Driver $this->app->singleton(‘filesystem.cloud‘, function () { return $this->app[‘filesystem‘]->disk($this->getCloudDriver()); });//else set the Get Cloud Driver }//register the driver based filesystem /** * Register the filesystem manager. * * @return void */ protected function registerManager() { $this->app->singleton(‘filesystem‘, function () { return new FilesystemManager($this->app); });// get a singleton filesystem use a new FilesystemManager }// register Manager /** * Get the default file driver. * * @return string */ protected function getDefaultDriver() { return $this->app[‘config‘][‘filesystems.default‘]; }// get Default Driver more use a config array /** * Get the default cloud based file driver. * * @return string */ protected function getCloudDriver() { return $this->app[‘config‘][‘filesystems.cloud‘]; }// get the Cloud Driver }
时间: 2024-11-09 09:18:07