Facades 为应用程序的服务容器中可用的类提供了一个「静态」接口。
 
Laravel 本身附带许多的 facades,甚至你可能在不知情的状况下已经在使用他们!
 
xpower的静态接口(门面,facades)
 
前提条件1:我们有一个已经绑定到服务容器的类(xpower)
前提条件2:我们已经在服务提供者中注册这个类(服务容器中regisrer下的singleton方法)
 
5.接下来创建xpower的facade,都是继承facade基类。必须实现getFacadeAccessor方法。返回了一个字符串,这个字符串其实就是服务提供者注册绑定单例(singleton方法)的一个名称。这个名称可以随便写,我们这里是xpower
<?php 

namespace App\Facades; 

use Illuminate\Support\Facades\Facade; 

class XP extends Facade { 
  protected static function getFacadeAccessor() {
    return 'xpower';
  }
}
6.再然后需要到配置文件config/app.php中注册门面类别名:
'aliases' => [ ...//其他门面类别名映射 'XP' => App\Facades\XP::class, ],
我们此时可以直接使用XP::activate来激活xpower超能力
use App\Facades\XP 的引入。不然找不到。
 
分析:
1.XP::activate先去容器中找这个XP的实例(已经在容器中注册),返回xpower字符串
2.xpower这个字符串也已经绑定注册到容器中,然后返回Xpower服务实例
3. ::activate这个其实会调用基类facade中的__callstatic方法,然后转换为->show()这个方式的调用。

laravel5.2总结--门面(facades)的更多相关文章

  1. laravel框架总结(六) -- 门面(facades)

    Facades 为应用程序的服务容器中可用的类提供了一个「静态」接口.   Laravel 本身附带许多的 facades,甚至你可能在不知情的状况下已经在使用他们!   xpower的静态接口(门面 ...

  2. Laravel5 创建自定义门面(Facade)

    门面为应用服务容器中的绑定类提供了一个“静态”接口.Laravel 内置了很多门面,你可能在不知道的情况下正在使用它们.Laravel 的门面作为服务容器中底层类的“静态代理”,相比于传统静态方法,在 ...

  3. Lumen开发:lumen源码解读之初始化(2)——门面(Facades)与数据库(db)

    版权声明:本文为博主原创文章,未经博主允许不得转载. 紧接上一篇 $app->withFacades();//为应用程序注册门面. $app->withEloquent();//为应用程序 ...

  4. laravel5.5 如何创建Facades并使用

    laravel Facades概念略,自行百度. 如何创建Facades使用步骤1. 创建一个php文件,App\Utils\SmsSend.php.<?php namespace App\Ut ...

  5. 核心概念 —— 门面(Facades)

    1.简介 门面为应用的服务容器中的绑定类提供了一个"静态"接口.Laravel 内置了很多门面,你可能在不知道的情况下正在使用它们.Laravel 的门面作为服务容器中的底层类的& ...

  6. Laravel 核心--Facades 门面

    Laravel 核心--Facades 门面 伊Summer 关注  0.1 2017.08.12 19:07* 字数 2017 阅读 1089评论 0喜欢 5 介绍 Facades 为应用的 IoC ...

  7. Laravel 门面实例教程 —— 创建自定义 Facades 类

    我们首先创建一个需要绑定到服务容器的Test类: <?php namespace App\Facades; class Test { public function doSomething() ...

  8. laravel5.5源码笔记(三、门面类facade)

    上次说了provider,那么这次来说说facade 首先是启动的源头,从laravel的kernel类中的$bootstrappers 数组,我们可以看到它的一些系统引导方法,其中的Register ...

  9. laravel5.5门面

    Facades为应用程序的 服务容器 中可用的类提供了一个 静态接口 . 最直观的好处 就是需记住必须手动注入或配置的长长的类名.因此有人也理解Facades就是一个"快捷别名" ...

随机推荐

  1. Android 桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果

    首先是一个小的悬浮窗显示的是当前使用了百分之多少的内存,点击一下小悬浮窗,就会弹出一个大的悬浮窗,可以一键加速.好,我们现在就来模拟实现一下类似的效果. 先谈一下基本的实现原理,这种桌面悬浮窗的效果很 ...

  2. IntelliJ IDEA IDEA 2018 激活注册码

    K03CHKJCFT-eyJsaWNlbnNlSWQiOiJLMDNDSEtKQ0ZUIiwibGljZW5zZWVOYW1lIjoibnNzIDEwMDEiLCJhc3NpZ25lZU5hbWUiO ...

  3. vs移动团队项目集合

    vs移动团队项目集合: https://msdn.microsoft.com/zh-cn/library/vs/alm/dd936138(v=vs.120)/css

  4. javascript的Array.prototype.map()和jQuery的jQuery.map()

    两个方法都可以根据现有数组创建新数组,但在使用过程中发现有些不同之处 以下面这个数据为例: var numbers = [1, 3, 4, 6, 9]; 1. 对undefined和null的处理 a ...

  5. python之字符串切割

    Python中split()函数,通常用于将字符串切片并转换为列表. 一.函数说明: split():语法:str.split(str="",num=string.count(st ...

  6. 数据字典的设计--4.DOM对象的ajax应用

    需求:点击下拉选项框,选择一个数据类型,在表单中自动显示该类型下所有的数据项的名称,即数据库中同一keyword对应的所有不重复的ddlName.      1.在dictionaryIndex.js ...

  7. LNA与PA

    LNA是低噪声放大器,主要用于接收电路设计中.因为接收电路中的信噪比通常是很低的,往往信号远小于噪声,通过放大器的时候,信号和噪声一起被放大的话非常不利于后续处理,这就要求放大器能够抑制噪声.PA(功 ...

  8. mybatis-动态sql2

    mybatis的动态sql中常用的有    if     where      foreach    set 项目沿用之前的. 1.dao层添加接口: package com.java1234.map ...

  9. COGS 201. [BYVoid S1] 埃雷萨拉斯的宝藏

    ★★   输入文件:eldrethalas.in   输出文件:eldrethalas.out   简单对比时间限制:1 s   内存限制:256 MB 问题描述 一万两千年前,精灵还是在艾萨拉女王的 ...

  10. Netweaver工作进程的内存限制 VS CloudFoundry应用的内存限制

    Netweaver 一个会话进程能够在堆上申请的内存大小上限, 在事务码RZ11里查看参数abap/heap_area_dia: CloudFoundry 每个应用可以在manifest.yml里定义 ...