简单理解laravel框架中的服务容器,服务提供者以及怎样调用服务
来源:互联网 发布:淘宝上能批发服装吗 编辑:程序博客网 时间:2024/05/20 01:37
laravel被称为最优雅的框架,最近正在学习中,对于用惯了thinkphp、ci框架的人来说,服务容器。服务提供者,依赖注入这些概念简直是一脸懵逼。我花了些时间梳理了一下,也不敢确定自己说的是对的,如果有错误的地方还请多多包涵。我尽量把问题说的简单易懂,希望能对通在学laravel的人有起到帮助作用
一、服务容器,服务容器顾名思义是指装载服务事务的容器,我的理解就是一个类,这个类称它为容器,这个类下面的方法称它为服务
example:
我创建一个服务容器我在app下建一个文件夹Test、创建文件\Test\TestService.php作为服务容器
<?php
namespace App\Test;
class TestService{
//这里我写一个服务方法,以被别的地方来调用
public function callme($say){
echo $say;
}
}
二、服务提供者服务提供者,就是提供服务的人。注意前面提到的服务容器是用来装载服务的,而服务提供者是用来提供服务的。我举个例子吧,把服务比喻成菜肴,而服务容器就是盛装菜肴的器皿,而服务提供者就是上菜的服务员。顾客(调用服务的地方)想要上什么菜(服务),需要通过服务员(服务提供者)传递。
example:
我创建一个服务提供者,在providers目录下创建服务提供者TestServiceProvider.php,注意:服务提供者需要在config/app.php里面的providers数组里面注册
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Test\TestService;
class TestServiceProvider extends ServiceProvider
{
public function boot()
{
//
}
public function register()
{
//单例实例化服务容器Test/TestService.php
$this->app->singleton('test',function(){
return new TestService();
});
}
}
三、在一个控制器里面调用服务实例
<?php
namespace App\Http\Controllers;
use App\Test\TestService;
use App\Http\Controllers\Controller;
class TestController extends Controller
{
//在构造函数中依赖注入
function __construct(TestService $test){
$this->test=$test;
//此时的的 $this->test相当于实例化了服务容器:TestService
}
public function get_index()
{
//调用服务容器TestService下的callme方法
$this->test->callme('hello');
}
}
0 0
- 简单理解laravel框架中的服务容器,服务提供者以及怎样调用服务
- Laravel 中的服务容器、服务、服务提供者
- laravel 服务提供者的理解
- JDBC理解-服务提供者框架
- 关于laravel 自动加载和依赖注入、服务容器、服务提供者的理解--1
- laravel关于服务提供者的再次理解
- Laravel 5 系统架构:服务提供者、服务容器、Contracts、Facades
- laravel 服务容器service container和服务提供者service provider
- laravel服务提供者与服务容器的因果关系
- Laravel服务提供者
- laravel-服务提供者
- laravel创建服务提供者实例
- Laravel学习笔记(三)---Laravel 的核心, 服务容器,服务提供者
- 服务提供者框架
- 服务提供者框架
- 服务提供者框架
- java 服务提供者框架
- 服务提供者框架示例
- spring mvc 自定义注解ResponseEncryptBody、RequestDecryptBody统一处理加密、解密数据,供移动端使用的rest服务
- Java异常与事物回滚探究
- ListView的简单使用
- The new stored format of Docker image on disk and Distribution
- 基于Docker的Golang开发
- 简单理解laravel框架中的服务容器,服务提供者以及怎样调用服务
- C++中静态成员函数的作用
- Kafka文件存储机制那些事
- Sum of Two Integers 解题报告
- UNDO相关问题总结(一)
- 如何避免判空(!=null)语句
- 生成唯一文件名不同方法
- moveTaskToback退后台
- 数据库新建、删除、修改操作