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/
您可能感兴趣
- 宝塔面板服务器连接不上(宝塔面板后台登陆不显示验证码解决办法)
- 超级小旋风asp服务器软件简单使用说明(超级小旋风asp服务器软件简单使用说明)
- wdc真正的底层公链(LiteSpeed服务器用htaccess的防盗链代码)
- filezilla连接远程服务器配置(FileZilla 425 无法连接FTP的解决方法阿里云服务器)
- 阿里云ecs 运维(阿里云ECS服务器磁盘Linux在线扩容)
- 最低成本搭建云服务器(云服务器搭建难不难?企业云服务器搭建流程)
- 常用的云服务器有哪些(云服务器通常用哪个操作系统比较好?)
- windows 2003服务器系统安装(win2003云服务器安装西部数码网站助手教程)
- 手机无法与服务器建立安全连接(ftp无法与服务器建立连接)
- docker怎么搭建私有服务器(docker搭建CMS点播系统带播放器功能)
- 云服务器有必要买吗(云服务器好用吗?云服务器值得买吗?)
- 腾讯云轻量服务器怎么降低延迟(腾讯云星星海SA2云服务器配置规格性能实际评测)
- 云服务器实际应用优缺点(云服务器优点有哪些?云服务器缺点你知道吗?)
- 私有云服务器是什么意思(私有云服务器选择配置的依据是什么?)
- 有哪些优秀的web服务器(几款比较好的WEB服务器软件推荐)
- 网站怎么样选服务器(网站服务器怎么选?)
- 到了岁末 临门一脚 节点,天台综合督评会目标直指 全年红(到了岁末临门一脚)
- 寒假余额不满24小时,不如来一场说走就走的亲子阅读之旅(寒假余额不满24小时)
- 省委书记出席的交流会,十位县委书记同场发言,代表公文材料的高水平(省委书记出席的交流会)
- 《刘老根3》热播,去世15年的她却再次被 伤害(去世15年的她却再次被)
- 十二星座爱情支配欲指数(十二星座爱情支配欲指数)
- 虐待儿童是发泄支配欲的愚蠢行为(虐待儿童是发泄支配欲的愚蠢行为)
热门推荐
- 菲律宾云服务器价格(菲律宾云服务器适合用来做什么?)
- asp.net文件下载的方法
- 腾讯云服务器安装方法(在腾讯云服务器上部署网站镜像的详细教程)
- linuxsvn服务怎么打开(CentOS SVN服务器如何管理多个项目)
- apache访问提示404(Apache跨域资源访问报错问题解决方案)
- jquery中find()与filter()的区别
- python实例之pyqt5多窗口实现(python+pyqt5编写md5生成器)
- left join on和where的区别
- mysqlmha架构图(MySQL之MHA高可用配置及故障切换实现详细部署步骤)
- 云服务备份后怎么恢复数据(云服务器的数据被删除还能恢复吗?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9