laravel5.2 学习之服务提供者
契约接口:app\Contracts\LanguageContract.php
<?php
namespace App\Contracts; interface LanguageContract {
public function speaking();
}
服务类:app\Services\ChineseService.php
<?php
namespace App\Services;
use App\Contracts\LanguageContract; class ChineseService implements LanguageContract {
public function speaking() {
return '你说的是中文哦';
}
}
服务类:app\Services\EnglishService.php
<?php
namespace App\Services;
use App\Contracts\LanguageContract; class EnglishService implements LanguageContract {
public function speaking() {
return 'You are speaking English';
}
}
服务提供者:app\Providers\TestServiceProvider.php
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class TestServiceProvider 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\LanguageContract', 'App\Services\ChineseService'); /**
//绑定类名到单例---返回中文--测试可行
$this->app->singleton('chinese', function () {
//需要 use App\Services\ChineseService;
//控制器中 App::make('chinese') 返回对象
return new ChineseService();
});
*/
/**
//绑定类名到单例---测试可行,不需要引入服务类了
$this->app->singleton('chinese', function () {
return new \App\Services\ChineseService();
});
*/
/**
//普通绑定类名----测试可行
$this->app->bind('chinese', function () {
return new \App\Services\ChineseService();
});
*/ /**
//绑定类到单例---返回英文---测试可行
$this->app->singleton('english', function () {
// use App\Services\EnglishService;
//控制器中 App::make('english') 返回对象
return new EnglishService();
});
*/ }
}
然后在config\app.php中的providers数组中注册该服务
控制器测试
public function c1() {
//$test = App::make('chinese');
$test1 = App::make('App\Contracts\LanguageContract');
//$test2 = App::make('english');
var_dump($test1->speaking());
//var_dump($test2->speaking());
}
laravel5.2 学习之服务提供者的更多相关文章
- Laravel5.1学习笔记11 系统架构3 服务提供者
服务提供者 简介 写一个服务提供者 Register注册方法 Boot 方法 注册提供者 缓载提供者 简介 Service providers are the central place of all ...
- Laravel5.0学习--03 Artisan命令
本文以laravel5.0.22为例. 简介 Artisan 是 Laravel 内置的命令行接口.它提供了一些有用的命令协助您开发,它是由强大的 Symfony Console 组件所驱动.利用它, ...
- laravel5.1学习(1)--安装
主要学习的是laravel5.1版本,服务器用的是wampserver3.0.4集成环境: 首先,安装composer(windows系统) 下载地址:https://getcomposer.org/ ...
- Laravel5.0学习--01 入门
本文以laravel5.0.22为例. 生产环境建议使用laravel5.1版本,因为该版本是长期支持版本.5.1文档更详细:http://laravel-china.org/docs/5.1. 环境 ...
- laravel5.2,注册服务提供者时无法生效
laravel中注册服务提供者原本很简单,只要运行下指令php artisan make:provider TestServiceProvider,然后在config/app.php的provider ...
- Laravel5.0学习--02 实例进阶
本文以laravel5.0.22为例. 本节以新建一个简单的博客作为实例. 准备工作 数据库配置 .env文件(也可以直接修改config/database.php) DB_HOST=localhos ...
- laravel5.4学习--laravel基本路由
最基本的 Laravel 路由只接收一个 URI 和一个闭包,并以此提供一个非常简单且优雅的定义路由方法: Route::get('foo', function () {return 'Hello W ...
- Laravel5.1学习笔记19 EloquentORM 入门
Eloquent:入门 简介 定义模型(model) Eloquent 模型规范 取出多个模型 取出单个模型 / 集合 取出集合 插入更新模型 基本插入 基本更新 大批量赋值 删除模型 软删除 查询 ...
- Laravel5.1学习笔记18 数据库4 数据填充
简介 编写数据填充类 使用模型工厂类 调用额外填充类 执行填充 #简介 Laravel includes a simple method of seeding your database with t ...
随机推荐
- gradle android
从github下载两个开源项目: PagerSlidingTabStrip | Android-Universal-Image-Loader-master https://github.c ...
- POJ 2096 【期望DP】
题意: 有n种选择,每种选择对应m种状态.每种选择发生的概率相等,每种选择中对应的每种状态发生的概率相等. 求n种选择和m种状态中每种至少发生一次的期望. 期望DP好别扭啊.要用倒推的方法. dp[i ...
- (medium)LeetCode 229.Majority Element II
Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorit ...
- regulator
http://blog.sina.com.cn/s/blog_5e99b41e0101a3ng.html http://blog.sina.com.cn/s/blog_694348b00100n3ip ...
- MFC学习 MFCActiveX控件
例子包含 1. 重绘activex控件显示区域 在activex的ctrl类中ondraw中实现 2.添加修改activex控件属性(前景色, 背景色, 自定义属性),, 只要在类视图中展开libra ...
- react与jQuery对比,有空的时候再翻译一下
参考资料:http://reactfordesigners.com/labs/reactjs-introduction-for-people-who-know-just-enough-jquery-t ...
- 网易音乐API
本次分析的是网易音乐API 歌曲搜索API:http://music.163.com/api/search/get/web?csrf_token= 需要用POST来获取 参数: Referer=htt ...
- 网站图片优化-解码JPEG
首先,老大拿了两个网站工具的分析跟我说,让我分析一下我们网站的图片有没有什么方法优化. [网站分析工具]webpage test: http://www.webpagetest.org/谷歌pages ...
- windows 创建服务提示失败 5 拒绝 访问拒绝
1.桌面创建文本,输入 sc create .....echo. & pause 保存,重命名为 .bat 2.右键该文件,管理员运行
- asp.net(c#)修改时的赋值操作
赋值操作方法(将信息显示至文本框中): public void Show_Infobase(int _peoid) { DataSet ds = new DataSet(); ds = platbll ...