Provider:提供者,一般指为应用提供通用一般常用功能的一些类。
Laravel 中的提供者
在 /config/app.php 中,Laravel 提供了现成的 27 个服务提供者供我们随拿取用,包含如下:
下面注释了系统自带服务提供者的功能说明,和其功能文档地址,供大家了解。
'providers' => [
//身份验证:现成的用户注册登录身份验证一体功能,http://laravel.p2hp.com/cndocs/9.x/authentication
IlluminateAuthAuthServiceProvider::class,
//重置密码:为系统身份验证附带重置密码功能, http://laravel.p2hp.com/cndocs/9.x/passwords
IlluminateAuthPasswordsPasswordResetServiceProvider::class,
//
IlluminateBusBusServiceProvider::class,
//缓存服务:提供缓存服务,可以是:支持memcache,redis,dynamodb,mysql等引擎, http://laravel.p2hp.com/cndocs/9.x/cache
IlluminateCacheCacheServiceProvider::class,
//控制台:为应用提供控制台操作功能, http://laravel.p2hp.com/cndocs/9.x/artisan
IlluminateFoundationProvidersConsoleSupportServiceProvider::class,
//Cookie
IlluminateCookieCookieServiceProvider::class,
//Session http://laravel.p2hp.com/cndocs/9.x/session
IlluminateSessionSessionServiceProvider::class,
//数据库:提供数据库操作功能,http://laravel.p2hp.com/cndocs/9.x/database
IlluminateDatabaseDatabaseServiceProvider::class,
//加密器:执行可逆加密,使用OpenSSl提供 AES-256、AES-128 加密功能, http://laravel.p2hp.com/cndocs/9.x/encryption
IlluminateEncryptionEncryptionServiceProvider::class,
//哈希器:生成加密散列,提供 Bcrypt、Argon2 两种方式, http://laravel.p2hp.com/cndocs/9.x/hashing
IlluminateHashingHashServiceProvider::class,
//文件操作:可以操作本地文件和云系统文件, http://laravel.p2hp.com/cndocs/9.x/filesystem
IlluminateFilesystemFilesystemServiceProvider::class,
//
IlluminateFoundationProvidersFoundationServiceProvider::class,
//邮件服务:内含驱动 MailerSMTP、Mailgun、Postmark、Amazon SES,http://laravel.p2hp.com/cndocs/9.x/mail
IlluminateMailMailServiceProvider::class,
//通知服务:用户向用户发送邮件、短信等通知,包含十几种驱动, http://laravel.p2hp.com/cndocs/9.x/notifications
IlluminateNotificationsNotificationServiceProvider::class,
//消息广播:websocket的实时消息,http://laravel.p2hp.com/cndocs/9.x/broadcasting
IlluminateBroadcastingBroadcastServiceProvider::class,
//分页器:提供数据自动分页功能, http://laravel.p2hp.com/cndocs/9.x/pagination
IlluminatePaginationPaginationServiceProvider::class,
//管道服务:提供步骤流程服务, https://learnku.com/laravel/t/7543/pipeline-pipeline-design-paradigm-in-laravel
IlluminatePipelinePipelineServiceProvider::class,
//队列服务:执行复杂耗时任务时使用的任务队列, http://laravel.p2hp.com/cndocs/9.x/queues
IlluminateQueueQueueServiceProvider::class,
//Redis:http://laravel.p2hp.com/cndocs/9.x/redis
IlluminateRedisRedisServiceProvider::class,
//格式转换
IlluminateTranslationTranslationServiceProvider::class,
//验证器:提供表单数据验证功能, http://laravel.p2hp.com/cndocs/9.x/validation
IlluminateValidationValidationServiceProvider::class,
//视图服务:提供视图解析处理功能, http://laravel.p2hp.com/cndocs/9.x/views
IlluminateViewViewServiceProvider::class,
//以下为交由用户自定义的服务提供者,可以覆盖系统的服务提供者
AppProvidersAppServiceProvider::class,
AppProvidersAuthServiceProvider::class,
AppProvidersBroadcastServiceProvider::class,
AppProvidersEventServiceProvider::class,
AppProvidersRouteServiceProvider::class,
]
自定义服务提供者
- 创建服务提供者
php artisan make:provider RiakServiceProvider
- 继承
IlluminateSupportServiceProvider
类,并实现 register
、boot
方法
namespace AppProviders;
use AppServicesRiakConnection;
use IlluminateSupportServiceProvider;
class RiakServiceProvider extends ServiceProvider
{
//使用该属性绑定服务
public $bindings = [
ServerProvider::class => DigitalOceanServerProvider::class,
];
//使用该属性绑定单例
public $singletons = [
DowntimeNotifier::class => PingdomDowntimeNotifier::class,
ServerProvider::class => ServerToolsProvider::class,
];
//在该方法中注册本服务
public function register()
{
$this->app->singleton(Connection::class, function ($app) {
return new Connection(config('riak'));
});
}
//在该方法中实现服务的引导
public function boot(){
//
}
}
- 注册自定义的服务提供者,在 /config/app.php 中,加入我们自定义的服务提供者
'providers' => [
//others...
AppProvidersComposerServiceProvider::class,
],
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net