laravel 门面的介绍和使用
#上文讲述了laravel中怎么用容器依赖注入类的示例。其实在服务提供者上面在封装一层静态调用,这就是门面。静态调用门面,返回了容器中注册的别名和实例。
#下面是测试的示例
#先创建要操作的类
<?php
/**
* Created by PhpStorm.
* User: xujun
* Date: 2018/3/10
* Time: 15:38
*/ namespace App\Http\Logic; class DirLogic
{
public function createDir(){
echo '创建目录';
}
}
#然后创建服务提供者
php artisan make:provider MDirProvider
#然后在服务提供者中静态绑定到容器
public function register()
{
//
$this->app->singleton(DirLogic::class, function ($app) {
return new DirLogic();
});
}
#然后创建门面在app/下创建目录Facades
<?php
/**
* Created by PhpStorm.
* User: xujun
* Date: 2018/3/10
* Time: 15:40
*/ namespace App\Facades; use App\Http\Logic\DirLogic;
use Illuminate\Support\Facades\Facade;
class DirFacades extends Facade
{
protected static function getFacadeAccessor()
{
return DirLogic::class;//容器中的真实映射名
} }
#然后修改配置文件
在服务提供者中添加
App\Providers\MDirProvider::class,
在aliases数组中添加
'DirFacade'=>App\Facades\DirFacades::class,
#测试的控制器
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DirFacade; class UsersController extends Controller
{
public function index1(Request $requser){
DirFacade::createDir();
}
}
#返回
创建目录
总结:门面其实是在提供一个静态类调用容器中的绑定对象作用。
laravel 门面的介绍和使用的更多相关文章
- laravel门面和服务提供者使用
关于laravel门面和服务提供者使用的一点见解,门面之词,不足之处,还请多多指教. 在laravel中,我们可能需要用到自己添加的类时,可以建立一个文件夹专门存放类文件,也可以使用laravel ...
- laravel门面与服务提供者区别
laravel门面模式与服务提供者区别 以 Laravel 自带的文件系统为例,在 config/app.php 的配置文件的 providers 数组中,注册了一个服务提供者: Illuminate ...
- Laravel 门面实例教程 —— 创建自定义 Facades 类
我们首先创建一个需要绑定到服务容器的Test类: <?php namespace App\Facades; class Test { public function doSomething() ...
- PHP重载以及Laravel门面Facade
目录 重载的概念 魔术方法中的重载 属性重载 方法重载 Laravel中的Facade 扩展 谈谈__invoke Laravel提供了许多易用的Facade,让我们用起来特步顺手,那么这些Facad ...
- laravel blade模板介绍
第一步:首先写好模板 在sites下新建立一个app.blade.php文件 写入模板如: <!DOCTYPT html><html><head> <titl ...
- laravel门面DB返回数组配置
在数据库配置文件中添加 'fetch' => PDO::FETCH_ASSOC, //但是这个配置好像是全局的,不能针对单个数据库连接进行配置 也可以在方法内使用php内置函数get_objec ...
- laravel或者lumen门面和服务提供者使用
关于laravel门面和服务提供者使用的一点见解,门面之词,不足之处,还请多多指教. 在laravel中,我们可能需要用到自己添加的类时,可以建立一个文件夹专门存放类文件,也可以使用lara ...
- laravel的重定向
Route::get("redirect1", function () { // redirct的三种写法 // return redirect()->route(" ...
- Laravel图表扩展包推荐:Charts
2016年11月15日 · 2283次 · 4条 · laravel,package,charts 介绍 在项目开发中,创建图表通常是一件痛苦的事情.因为你必须将数据转换为图表库支持的格式传输 ...
随机推荐
- vue练习
<div id="app"> <div> <span>姓名</span> <input type="text&quo ...
- DataTable--数据生成datatable
将数据库查出的数据生成datatable 我们一般将数据库查询出的数据用实体接受在泛型集合,然后遍历集合,以将数据绑定到前台展示,在很多情况下,泛型集合不如datatable更方便将数据操作,这里简单 ...
- yii 缓存的使用 以及使用需要开启php的apc扩展
public function behaviors() { return [ [ 'class' => 'yii\filters\PageCache', 'only' => ['index ...
- java第一课总结
转眼间开学了,我们也正式进入了大二.心里既有激动,又有些感慨,还带有一些担忧.激动的是我们褪去了大一的稚气成为了一名大二的学长了,第一次体会到了大学学长的感觉,心里很是激动.感慨的是我们又成长了一岁, ...
- The CHAR and VARCHAR Types
[The CHAR and VARCHAR Types] The CHAR and VARCHAR types are declared with a length that indicates th ...
- docker 安装与使用
1.yum安装docker yum -y install docker 2.启动docker service docker start 3.检验运行状态 systemctl status docker ...
- Numpy:索引与切片
numpy基本的索引和切片 import numpy as np arr = np.array([1,2,3,555,666,888,10]) arr array([ 1, 2, 3, 555, 66 ...
- android 区分wifi是5G还是2.4G(转)
http://bbs.csdn.net/topics/391033966?page=1 我一开始看这帖子,找不到答案,为了后来的人,我来回复吧.WifiManager wifiManager = (W ...
- ORA-01555 snapshot too old
假设有一张6000万行数据的testdb表,预计testdb全表扫描1次需要2个小时,参考过程如下: 1.在1点钟,用户A发出了select * from testdb;此时不管将来testdb怎么变 ...
- 在 MySQL 中创建一个中文数据库
安装完 MySQL 后,要修改密码. step 1: SET PASSWORD = PASSWORD('your new password'); step 2: ALTER USER 'root'@' ...