laravel门面是什么意思,什么场景使用laravel门面
Admin 2022-06-16 群英技术资讯 887 次浏览
今天这篇我们来学习和了解“laravel门面是什么意思,什么场景使用laravel门面”,下文的讲解详细,步骤过程清晰,对大家进一步学习和理解“laravel门面是什么意思,什么场景使用laravel门面”有一定的帮助。有这方面学习需要的朋友就继续往下看吧!在laravel中,门面是为应用服务容器中的绑定类提供的一个“静态”接口。维护时能够提供更加易于测试、更加灵活、简明优雅的语法,所有的门面都定义在“Illuminate\Support\Facades”命名空间下。

本文操作环境:Windows10系统、Laravel6版、Dell G3电脑。
Facades 为应用服务容器中的绑定类提供了一个“静态”接口。
Laravel 内置了很多 Facades ,可以访问绝大部分 Laravel 的功能。
Laravel 的门面作为服务容器中底层类的“静态代理”,相比于传统静态方法,在维护时能够提供更加易于测试、更加灵活、简明优雅的语法。
Laravel 的所有门面都定义在 Illuminate\Support\Facades 命名空间下。
我们可以轻松访问到门面:
use Illuminate\Support\Facades\Cache;
Route::get('/cache', function () {
return Cache::get('key');
});在整个 Laravel 文档中,很多例子使用了门面来演示框架的各种功能特性。
何时使用 Facades
门面有诸多优点,其提供了简单、易记的语法,让我们无需记住长长的类名即可使用 Laravel 提供的功能特性,此外,由于他们对 PHP 动态方法的独到用法,使得它们很容易测试。
在使用 Facades 时,有些地方还需要特别注意。
使用 Facades 最主要的风险就是会引起类作用范围的膨胀。
因为 Facades 使用起来非常简单而且不需要注入,就会使得我们在不经意间在单个类中使用许多 Facades,从而导致类变的越来越大。
而使用依赖注入的时候,使用的类越多,构造方法就会越长,在视觉上就会引起注意,提醒你这个类有点庞大了。因此在使用 Facades 的时候,要特别注意控制好类的大小,让类的作用范围保持短小。
在开发与 Laravel 进行交互的第三方扩展包时,建议最好选择注入 Laravel 契约 ,而不是使用 Facades 的方式来使用类。因为扩展包是在 Laravel 本身之外构建,所以你无法使用 Laravel Facades 测试辅助函数。
Facades Vs. 依赖注入
依赖注入的主要优点之一是切换注入类的实现的能力。这在测试的时候很有用,因为你可以注入一个 mock 或者 stub ,并断言在 stub 上调用的各种方法。
通常,真正的静态方法是不可能被 mock 或者 stub。但是,因为 Facades 使用动态方法来代理从服务容器解析的对象的方法调用,我们可以像测试注入的类实例一样来测试 Facades。例如,像下面的路由:
use Illuminate\Support\Facades\Cache;
Route::get('/cache', function () {
return Cache::get('key');
})我们可以这样编写测试来验证 Cache::get 方法以我们期望的方式被调用:
use Illuminate\Support\Facades\Cache;
/**
* 一个基础功能的测试用例。
*
* @return void
*/
public function testBasicExample()
{
Cache::shouldReceive('get')
->with('key')
->andReturn('value');
$this->visit('/cache')
->see('value');
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
swoole安装:1、PECL安装,先使用“apt-get install libpcre3 libpcre3-dev”命令安装依赖包。2、使用“pecl install swoole”命令安装swoole。3、修改PHP配置php.in。
加密和解密一般用于电子商务,但是一般的网站开发中也会用涉及到到加密和解密,特别是文件处理上。今天为大家讲解一个自定义函数简单的数字加密/解密算法实例。
php7安装mongodb扩展的方法:首先下载“mongodb-1.6.0.tgz”;然后进入“mongodb-1.6.0”;最后修改php.ini,并重启即可。
PHP是现在网站中最为常用的后端语言之一,是一种类型系统动态、弱类型的面向对象式编程语言。可以嵌入HTML文本中,是目前最流行的web后端语言之一,并且可以和WebServer如apache和nginx方便的融合。目前,已经占据了服务端市场的极大占有量。 但是,弱类型,一些方便的特性由于新手程序员的不当使用,造成了一些漏洞,这篇文章就来介绍一下一些渗透中可以用的特性。 上面都是废话,
本文实例讲述了PHP设计模式:原型模式Prototype。分享给大家供大家参考,具体如下:
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008