laravel服务提供者应用场景(Laravel如何创建服务器提供者实例代码)
类别:编程学习 浏览量:680
时间:2022-03-31 00:33:16 laravel服务提供者应用场景
Laravel如何创建服务器提供者实例代码前言
Laravel服务器容器:是用于管理类依赖和执行依赖注入的工具。下面我们演示下如何创建服务器提供者,它是Laravel的核心。话不多说了,来一起看看详细的介绍吧
在app/Contracts目录下创建TestContract.php文件,其内容为:
|
<?php namespace App\Contracts; interface TestContract { public function callMe( $controller ); } |
在app/Services目录下创建TestService.php文件,其内容为:
|
<?php namespace App\Services; use App\Contracts\TestContract; class TestService implements TestContract { public function callMe( $controller ){ dd( "Call me from TestServiceProvider in " . $controller ); } } |
在config/app.php文件中providers中添加内容,以便进行注册:
|
... App\Providers\RiakServiceProvider:: class , |
创建1个服务提供类:
|
php artisan make:provider RiakServiceProvider |
其内容为:
|
<?php namespace App\Providers; use App\Services\TestService; use Illuminate\Support\ServiceProvider; class RiakServiceProvider extends ServiceProvider { /** * Bootstrap the application services. * * @return void */ public function boot() { // } /** * Register the application services. * * @return void */ public function register() { $this ->app->bind( "App\Contracts\TestContract" , function (){ return new TestService(); }); } } |
在ServiceProvider中提供了2个方法,其中register方法用于注册服务,而boot用于引导服务。
在控制器IndxController中添加如下内容:
|
<?php namespace App\Http\Controllers; use App; use Illuminate\Http\Request; use App\Contracts\TestContract; class IndexController extends Controller { public function __construct(TestContract $test ){ $this ->test = $test ; } public function index(){ $this ->test->callMe( "IndexController" ); } } |
访问浏览器可以得到如下的结果:
"Call me from TestServiceProvider in IndexController"
另外,还可以使用App的make方法进行调用。
|
public function index(){ $test = App::make( 'test' ); $test ->callMe( 'IndexController' ); } |
其结果也是一样的。
参考文章:
- https://laravelacademy.org/post/796.html
- https://laravelacademy.org/post/93.html
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。
原文链接:http://blog.hellopython.wang/laravel-serviceprovider/
您可能感兴趣
- 阿里云服务器应该买哪个(阿里云服务器购买时面对众多地域,该如何选择)
- ubuntu18.04正式版怎么安装(Ubuntu Server 18.04.5 LTS服务器版安装配置图解教程)
- php服务器有哪些(php服务器的系统详解)
- dedecms本地搭建(DEDECMS图文分离存放在另一个服务器实现方法)
- cdn服务器的用途(云服务器使用CDN与高防ip有什么区别?)
- 云服务器如何进入(云服务器配置怎么看?)
- ftp服务器怎么搭建linux(Linux下使用vsftp搭建FTP服务器附参数说明)
- ftp服务器配置步骤(快速搭建一个本地的FTP服务器图文教程)
- 阿里云轻量级服务器怎么安装宝塔(阿里云服务器安装宝塔面板和配置安全组图文教程)
- 网站数据服务器数据迁移(网站服务器迁移方案)
- 云服务器都包括什么(云服务器有什么优势?)
- FileZilla Server搭建FTP服务器配置及425错误与TLS警告解决方法详解(FileZilla Server搭建FTP服务器配置及425错误与TLS警告解决方法详解)
- dedecms数据库调用(DEDECMS直接获取软件模型本地下载地址或服务器名称)
- linux编写ftp程序(Linux实现文件上传ftp服务器脚本代码)
- web项目部署到阿里云服务器上(阿里云的WindowsServer2016上部署php+apache)
- windows服务器安装宝塔面板(云服务器无法安装宝塔面板及软件解决方案)
- 览邦G08 Plus SMART WATCH 测评⑱ 全独立这才是智能手表该有的样子(览邦G08PlusSMART)
- 荣耀手表 GS 3 真机亮相 不支持无线充电(荣耀手表GS3)
- 通过体温就能为智能手表充电 原来是用NASA在空间站用的黑科技(通过体温就能为智能手表充电)
- 智能手表兼容Windows和Android 无需充电挑战苹果(智能手表兼容Windows和Android)
- 一天一冲也算表 麦步,一款待机 21 天的智能手表体验评测(一天一冲也算表)
- 魅族智能手表充电座曝光 Type-C 接口,线座分离设计(魅族智能手表充电座曝光)
热门推荐
- jquery deferred对象
- SQL Server中SQL语句或者存储过程的最大长度
- python可视化界面实现管理系统(python面向对象实现名片管理系统文件版)
- 阿里云ecs所有文件备份到本地(阿里云ECS服务器的系统重装、快照备份、恢复数据回滚教程)
- wamp服务器的配置文件包含(解析关于wamp启动是80端口被占用的问题)
- dedecms数据库备份(dedecms网站搬家需要的备份的文件)
- php时间戳是什么意思(php时间戳转换代码详解)
- python可视化界面实现管理系统(python面向对象实现名片管理系统文件版)
- openstack为什么要脚本搭建(基于CentOS的OpenStack环境部署详细教程OpenStack安装)
- 企业网站服务器怎么选(企业网站服务器租用几个常见问题)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9