laravel框架之门面(facades)

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()这个方式的调用。

时间: 2024-10-12 12:51:06

laravel框架之门面(facades)的相关文章

laravel框架数据迁移

迁移就像数据库的版本控制,允许团队简单轻松的编辑并共享应用的数据库表结构,迁移通常和Laravel 的 schema 构建器结对从而可以很容易地构建应用的数据库表结构.如果你曾经告知小组成员需要手动添加列到本地数据库结构,那么这正是数据库迁移所致力于解决的问题. Laravel 的 Schema 门面提供了与数据库系统无关的创建和操纵表的支持,在 Laravel 所支持的所有数据库系统中提供一致的.优雅的.平滑的 API. laravel默认有两个文件uses  和 password_reset

Laravel框架学习(四)

一. composer的安装: 1.Composer是什么? 是 PHP 用来管理依赖(dependency)关系的工具. 你可以在自己的项目中声明所依赖的外部工具库(libraries), Composer 会帮你安装这些依赖的库文件. 2.网址:https://getcomposer.org 下载:https://getcomposer.org/download/ 中国全量镜像:http://pkg.phpcomposer.com/ 启用本镜像服务命令: composer config -g

laravel框架容器管理的一些要点

本文面向php语言的laravel框架的用户,介绍一些laravel框架里面容器管理方面的使用要点.文章很长,但是内容应该很有用,希望有需要的朋友能看到.php经验有限,不到位的地方,欢迎帮忙指正. 1. laravel容器基本认识 laravel框架是有一个容器框架,框架应用程序的实例就是一个超大的容器,这个实例在bootstrap/app.php内进行初始化: 这个文件在每一次请求到达laravel框架都会执行,所创建的$app即是laravel框架的应用程序实例,它在整个请求生命周期都是唯

[php]laravel框架容器管理的一些要点

本文面向php语言的laravel框架的用户,介绍一些laravel框架里面容器管理方面的使用要点.文章很长,但是内容应该很有用,希望有需要的朋友能看到.php经验有限,不到位的地方,欢迎帮忙指正. 1. laravel容器基本认识 laravel框架是有一个容器框架,框架应用程序的实例就是一个超大的容器,这个实例在bootstrap/app.php内进行初始化: 这个文件在每一次请求到达laravel框架都会执行,所创建的$app即是laravel框架的应用程序实例,它在整个请求生命周期都是唯

laravel框架容器管理的一些要点(转)

本文面向php语言的laravel框架的用户,介绍一些laravel框架里面容器管理方面的使用要点.文章很长,但是内容应该很有用,希望有需要的朋友能看到.php经验有限,不到位的地方,欢迎帮忙指正. 1. laravel容器基本认识 laravel框架是有一个容器框架,框架应用程序的实例就是一个超大的容器,这个实例在bootstrap/app.php内进行初始化: 这个文件在每一次请求到达laravel框架都会执行,所创建的$app即是laravel框架的应用程序实例,它在整个请求生命周期都是唯

使用laravel框架与phantomjs实现截屏功能

在网上看到的关于phantomjs实现截屏功能很多都是与node结合在一起使用,并需要输入命令才能执行.因此我想要实现输入网址即可截屏并输出图片的功能. 一:下载并安装phantomjs 二:装后台集成环境Appserv 三:安装laravel开发框架 三:实现代码及注意事项 1.phantomjs很好安装,http://phantomjs.org/官网下载到任意目录(注意:如果为了省事,最好安装到本地环境变量的目录下  如下图),如果不想下载到此目录下,可下载完后到计算机属性的环境变量增加ph

使用Laravel框架发送邮件

今天我们来看看用Laravel框架如何实现邮件发送功能 第一步:在mail.php文件中修改 我这里以163邮箱为例 第二步:修改.env文件 圈出的部分是要在邮箱里设置的授权码,如果没有这个授权码,是不能发送邮件的 在这里设置,按照提示操作就好 第三步:在web.php文件中设置路由 我是在StudentController里面实现的 第四步:在StudentController里代码实现 这是纯文本发送 $msg是我们自定义的变量 $msg->to();是我们发送的目标 需要导个包:use

Laravel框架定时任务2种实现方式示例

本文实例讲述了Laravel框架定时任务2种实现方式.分享给大家供大家参考,具体如下: 第一种 1.生成一个commands文件 > php artisan make:command test 2.打开文件进行修改 laravel\App\Console\Commands\test.php <?php namespace App\Console\Commands; use Illuminate\Console\Command; use Illuminate\Support\Facades\Lo

Laravel框架下路由的使用(源码解析)

本篇文章给大家带来的内容是关于Laravel框架下路由的使用(源码解析),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 前言 我的解析文章并非深层次多领域的解析攻略.但是参考着开发文档看此类文章会让你在日常开发中更上一层楼. 废话不多说,我们开始本章的讲解. 入口 Laravel启动后,会先加载服务提供者.中间件等组件,在查找路由之前因为我们使用的是门面,所以先要查到Route的实体类. 注册 第一步当然还是通过服务提供者,因为这是laravel启动的关键,在 RouteSer