Laravel如何创建服务器提供者实例代码

 更新时间:2019年04月15日 10:53:41   作者:我勒个去   我要评论

这篇文章主要给大家介绍了关于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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对澳门金沙网上娱乐的支持。

相关文章

  • 浅谈php中urlencode与rawurlencode的区别

    浅谈php中urlencode与rawurlencode的区别

    下面小编就为大家带来一篇浅谈php中urlencode与rawurlencode的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • PHP调用.NET的WebService 简单实例

    PHP调用.NET的WebService 简单实例

    这篇文章主要介绍了使用PHP调用.NET的WebService的一个简单实例,十分的简单,有需要的小伙伴可以自己扩展下,如有疑问请留言。
    2015-03-03
  • php使用curl存储cookie的示例

    php使用curl存储cookie的示例

    这篇文章主要介绍了php使用curl存储cookie的示例,需要的朋友可以参考下
    2014-03-03
  • php实现在线考试系统【附源码】

    php实现在线考试系统【附源码】

    这篇文章主要介绍了php在线考试系统附源码下载,文中通过实例代码给大家介绍了开发思路,需要的朋友可以参考下
    2018-09-09
  • PHP生成sitemap.xml地图函数

    PHP生成sitemap.xml地图函数

    找到一个功能齐全,代码清晰的PHP生成sitemap的类,大家可以参考一下
    2013-11-11
  • php生成随机密码自定义函数代码(简单快速)

    php生成随机密码自定义函数代码(简单快速)

    创建大量用户时一个一个想密码是让人头疼的事,使用php随机生成一个安全可靠的密码,又方便又快捷,可以添加自己想的字符串,可以用在FTP密码、Mysql密码、网站后台密码等地方
    2014-05-05
  • Yii2.0表关联查询实例分析

    Yii2.0表关联查询实例分析

    这篇文章主要介绍了Yii2.0表关联查询的方法,结合实例形式分析了Yii中关联查询的实现方法与相关使用技巧,需要的朋友可以参考下
    2016-07-07
  • 使用php伪造referer的方法 利用referer防止图片盗链

    使用php伪造referer的方法 利用referer防止图片盗链

    当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理,不过这个Referer是可以伪造,下面看一个示例,大家就明白了
    2014-01-01
  • 神盾加密解密教程(二)PHP 神盾解密

    神盾加密解密教程(二)PHP 神盾解密

    前些日子一个朋友丢了个shell给我,让我帮忙解密,打开源码看了下写着是 “神盾加密” , 牛逼闪闪的样子、 百度下发现神盾是个很古老的东西,最后一次更新是在 2012-10-09。和他相似的另一款是phpjm,有人说是神盾抄袭phpjm的,这些都不是我们所要关心的问题、phpjm一直在更新,而神盾貌似不搞了,我们分析下神盾,顺便写成工具,方便大家使用(因为他不更新,所以就不用担心解密工具失效问题了)。
    2014-06-06
  • PHP MPDF中文乱码的解决方式

    PHP MPDF中文乱码的解决方式

    这篇文章主要介绍了PHP MPDF中文乱码的解决方式 的相关资料,需要的朋友可以参考下
    2015-12-12

最新评论