首页 > 其他分享 >Laravel - Provider

Laravel - Provider

时间:2023-03-12 19:32:59浏览次数:29  
标签:Laravel laravel Illuminate cndocs Provider com class p2hp

Provider:提供者,一般指为应用提供通用一般常用功能的一些类。


Laravel 中的提供者

在 /config/app.php 中,Laravel 提供了现成的 27 个服务提供者供我们随拿取用,包含如下:

下面注释了系统自带服务提供者的功能说明,和其功能文档地址,供大家了解。

'providers' => [
//身份验证:现成的用户注册登录身份验证一体功能,http://laravel.p2hp.com/cndocs/9.x/authentication
Illuminate\Auth\AuthServiceProvider::class,

//重置密码:为系统身份验证附带重置密码功能, http://laravel.p2hp.com/cndocs/9.x/passwords
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,

//
Illuminate\Bus\BusServiceProvider::class,

//缓存服务:提供缓存服务,可以是:支持memcache,redis,dynamodb,mysql等引擎, http://laravel.p2hp.com/cndocs/9.x/cache
Illuminate\Cache\CacheServiceProvider::class,

//控制台:为应用提供控制台操作功能, http://laravel.p2hp.com/cndocs/9.x/artisan
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,

//Cookie
Illuminate\Cookie\CookieServiceProvider::class,

//Session http://laravel.p2hp.com/cndocs/9.x/session
Illuminate\Session\SessionServiceProvider::class,

//数据库:提供数据库操作功能,http://laravel.p2hp.com/cndocs/9.x/database
Illuminate\Database\DatabaseServiceProvider::class,

//加密器:执行可逆加密,使用OpenSSl提供 AES-256、AES-128 加密功能, http://laravel.p2hp.com/cndocs/9.x/encryption
Illuminate\Encryption\EncryptionServiceProvider::class,

//哈希器:生成加密散列,提供 Bcrypt、Argon2 两种方式, http://laravel.p2hp.com/cndocs/9.x/hashing
Illuminate\Hashing\HashServiceProvider::class,

//文件操作:可以操作本地文件和云系统文件, http://laravel.p2hp.com/cndocs/9.x/filesystem
Illuminate\Filesystem\FilesystemServiceProvider::class,

//
Illuminate\Foundation\Providers\FoundationServiceProvider::class,

//邮件服务:内含驱动 MailerSMTP、Mailgun、Postmark、Amazon SES,http://laravel.p2hp.com/cndocs/9.x/mail
Illuminate\Mail\MailServiceProvider::class,

//通知服务:用户向用户发送邮件、短信等通知,包含十几种驱动, http://laravel.p2hp.com/cndocs/9.x/notifications
Illuminate\Notifications\NotificationServiceProvider::class,

//消息广播:websocket的实时消息,http://laravel.p2hp.com/cndocs/9.x/broadcasting
Illuminate\Broadcasting\BroadcastServiceProvider::class,

//分页器:提供数据自动分页功能, http://laravel.p2hp.com/cndocs/9.x/pagination
Illuminate\Pagination\PaginationServiceProvider::class,

//管道服务:提供步骤流程服务, https://learnku.com/laravel/t/7543/pipeline-pipeline-design-paradigm-in-laravel
Illuminate\Pipeline\PipelineServiceProvider::class,

//队列服务:执行复杂耗时任务时使用的任务队列, http://laravel.p2hp.com/cndocs/9.x/queues
Illuminate\Queue\QueueServiceProvider::class,

//Redis:http://laravel.p2hp.com/cndocs/9.x/redis
Illuminate\Redis\RedisServiceProvider::class,

//格式转换
Illuminate\Translation\TranslationServiceProvider::class,

//验证器:提供表单数据验证功能, http://laravel.p2hp.com/cndocs/9.x/validation
Illuminate\Validation\ValidationServiceProvider::class,

//视图服务:提供视图解析处理功能, http://laravel.p2hp.com/cndocs/9.x/views
Illuminate\View\ViewServiceProvider::class,

//以下为交由用户自定义的服务提供者,可以覆盖系统的服务提供者
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
]


自定义服务提供者

  1. 创建服务提供者

php artisan make:provider RiakServiceProvider

  1. 继承 ​​Illuminate\Support\ServiceProvider​​​ 类,并实现 ​​register​​​、​​boot​​ 方法

namespace App\Providers;

use App\Services\Riak\Connection;
use Illuminate\Support\ServiceProvider;

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(){
//
}
}

  1. 注册自定义的服务提供者,在 /config/app.php 中,加入我们自定义的服务提供者

'providers' => [
//others...
App\Providers\ComposerServiceProvider::class,
],








标签:Laravel,laravel,Illuminate,cndocs,Provider,com,class,p2hp
From: https://blog.51cto.com/jurlin/6116243

相关文章

  • Laravel - Boot
    本文章为Laravel的引导过程,参考的文档版本:Laravel10。第一步:进入入口/public/index.php如果是维护模式,就引入:/storage/framework/maintenance.php引入系统依赖自动加载......
  • Laravel - Route
    参考版本:v10Laravel路由配置分为四个文件,都在/routes目录下面:api.phpapi无状态路由,被分配了api中间件。channels.phpconsole.phpweb.phpweb应用路由,自动赋予......
  • laravel列表查询时,限制关联数据的数量
    $list=Order::query()->select('id','order_no')->with(['orderLogs'=>function($query){$query->......
  • ContentProvider初涉
    ContentProvider(内容提供者)是安卓四大组件之一它的主要作用:我们想在自己的应用中访问别的应用或者ContentProvider暴露给我们的一些数据如联系人或短信等。并且想对这......
  • laravel migration创建表
    一,phpartisanmake:magrationcreate_test_table命令行字段如何设置 二,phpartisanmigrate命令行如果出现错误就添加两行代码最后成功了 ......
  • laravel之任务调度(定时任务)
      常用命令:#开启任务调度(一般在服务器添加定时任务每分钟执行一次)phpartisanschedule:run  总结:1.runInBackground在不使用runInBackground的方......
  • DelegateAuthenticationProvider not found after updating Microsoft Graph
    c#-DelegateAuthenticationProvidernotfoundafterupdatingMicrosoftGraph-StackOverflow回答msgraph-sdk-dotnet/upgrade-to-v5.mdatfeature/5.0·micros......
  • Laravel9 Excel导入 和 Word导入
    Excel导入类:<?phpnamespaceApp\Utils;useIlluminate\Http\UploadedFile;useIlluminate\Support\Facades\Storage;useMaatwebsite\Excel\Facades\Excel;class......
  • Laravel+vue免费开源的基于RABC控制的博客系统
    项目介绍CCENOTE是一个使用Vue3+Laravel8开发的前后端分离的基于RABC权限控制管理的内容管理系统,由于作者本人比较喜欢写作的原因,因此开发了这个项目,后端使用的PHP的......
  • ContentProvider+BroadCast的使用
    内容提供者的官方定义如下:  首先是ContentProvider的使用,翻译成中文就是内容提供者,作用就是比如我在从微信往qq传一张图片,我需要一个内容提供者,这里我的微信里面的图......