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 介绍 在项目开发中,创建图表通常是一件痛苦的事情.因为你必须将数据转换为图表库支持的格式传输 ...
随机推荐
- Unity3D架构设计NavMesh寻路
Unity3D架构设计NavMesh寻路 发表于2013年10月6日由陆泽西 国庆闲来没事把NavMesh巩固一下.以Unity3D引擎为例写一个底层c# NavMesh寻路.因为Unity3D中本身 ...
- hibernate ID
一:主键生成策略大体分类: 1:hibernate 负责对主键ID赋值 2:应用程序自己为主键ID赋值(不推荐使用) 3:底层数据库为主键ID赋值 二:具体用法 ...
- qt 中的基本知识
1. 由 .ui 文件生成界面头文件: uic -o ui_dialog.h dialog.ui 2. 在工程目录下生成与平台无关的工程文件 : qmake -project 3. 生成与平台相关的 ...
- 移动端web页面滚动不流畅,卡顿闪烁解决方案
移动端web页面滚动不流畅,卡顿闪烁解决方案 1.ios端的-webkit-overflow-scrolling属性可控制页面滚动效果,设置如下实现惯性滚动和弹性效果: -webkit-overf ...
- window document树
- go module 命令
项目目录下,执行以下命令初始化 go mod init 执行以下命令会自动分析项目里的依赖关系同步到go.mod文件中,同时创建go.sum文件 go mod tidy 以上的管理依赖管理操作,所以依 ...
- Compute Shader
[Compute Shader] 1.Similar to regular shaders, compute shaders are Asset files in your project, with ...
- c# 项目的导入
1.打开 2.手动添加现有项目,对照后找到未添加的空间,然后打开底层 选择 “#”文件打开即可 3.每个空间分别添加隐藏项 注意 bin与obj不需要添加 4.添加引用 5.可能需要删除 li ...
- python 函数的定义及传参
函数是一个通用的程序结构部件,是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 定义一个简单的函数: >>> def test(a): #创建一个函数,函数名是test ...
- Appium 连手机失败Error: Android bootstrap socket crashed: Error: getaddrinfo ENOTFOUND localhost undefined:4724
问题:Appium执行,连接手机报下面的错误 Error: Android bootstrap socket crashed: Error: getaddrinfo ENOTFOUND localho ...