您好,登录后才能下订单哦!
小编给大家分享一下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'); 
 }其结果也是一样的。
以上是“Laravel怎么创建服务器提供者”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。