Laravel Facades门面

Laravel Facades门面

门面为应用程序服务容器中可用的类提供了一个静态接口。Laravel门面充当服务容器中底层类的静态代理,提供了简洁、表达性强的语法,同时保持了比传统静态方法更高的可测试性和灵活性。

如何创建门面

在Laravel中创建门面的步骤如下:

  • 步骤1 - 创建PHP类文件。

  • 步骤2 - 将该类绑定到服务提供者。

  • 步骤3 - 将该服务提供者注册到Config\app.php中的providers中。

  • 步骤4 - 创建一个类,该类扩展自lluminate\Support\Facades\Facade。

  • 步骤5 - 将步骤4注册到Config\app.php中的aliases中。

门面类参考

Laravel附带了许多门面。下表显示了内置的门面类参考。

外观 服务容器绑定
App Illuminate\Foundation\Application app
Artisan Illuminate\Contracts\Console\Kernel artisan
Auth Illuminate\Auth\AuthManager auth
Auth (实例) Illuminate\Auth\Guard
Blade Illuminate\View\Compilers\BladeCompiler blade.compiler
Bus Illuminate\Contracts\Bus\Dispatcher
Cache Illuminate\Cache\Repository cache
配置 Illuminate\Config\Repository config
Cookie Illuminate\Cookie\CookieJar cookie
加密 Illuminate\Encryption\Encrypter encrypter
数据库 Illuminate\Database\DatabaseManager db
数据库(实例) Illuminate\Database\Connection
事件 Illuminate\Events\Dispatcher events
文件 Illuminate\Filesystem\Filesystem files
授权 Illuminate\Contracts\Auth\Access\Gate
queue
队列(基类) Illuminate\Queue\Queue
重定向 Illuminate\Routing\Redirector redirect
Redis Illuminate\Redis\Database redis
请求 Illuminate\Http\Request request
响应 Illuminate\Contracts\Routing\ResponseFactory
路由 Illuminate\Routing\Router router
架构 Illuminate\Database\Schema\Blueprint
会话 Illuminate\Session\SessionManager session
会话(实例) Illuminate\Session\Store
存储 Illuminate\Contracts\Filesystem\Factory 文件系统
URL Illuminate\Routing\UrlGenerator url
验证器 Illuminate\Validation\Factory 验证器
验证器(实例) Illuminate\Validation\Validator
视图 Illuminate\View\Factory 视图
视图(实例) Illuminate\View\View

示例

步骤1 − 通过执行以下命令创建一个名为 TestFacadesServiceProvider 的服务提供者。

php artisan make:provider TestFacadesServiceProvider

步骤2 - 执行成功后,您将收到以下输出 –

Laravel Facades门面

步骤3 - 在 App/Test 创建一个名为 TestFacades.php 的类。

App/Test/TestFacades.php

<?php
   namespace App\Test;
   class TestFacades{
      public function testingFacades() {
         echo "Testing the Facades in Laravel.";
      }
   }
?>

步骤4 - 在 “App/Test/Facades” 文件夹中创建一个名为 “TestFacades.php” 的外观类。

App/Test/Facades/TestFacades.php

<?php

namespace app\Test\Facades;

use Illuminate\Support\Facades\Facade;

class TestFacades extends Facade {
   protected static function getFacadeAccessor() { return 'test'; }
}

步骤5 - 在 App/Test/Facades 创建一个名为 TestFacadesServiceProviders.php 的Facade类。

App/Providers/TestFacadesServiceProviders.php

<?php

namespace App\Providers;

use App;
use Illuminate\Support\ServiceProvider;

class TestFacadesServiceProvider extends ServiceProvider {
   public function boot() {
      //
   }
   public function register() {
      App::bind('test',function() {
         return new \App\Test\TestFacades;
      });
   }
}

将下面的英文翻译成中文,不解释,保留HTML格式:

步骤6 − 在文件中添加一个服务提供者 config/app.php 步骤如下图所示。

config/app.php

Laravel Facades门面

步骤7 ——在下方的图中,如示例所示,在文件 config/app.php 中添加一个别名。

config/app.php

Laravel Facades门面

步骤8 − 在 app/Http/routes.php 中添加以下行。

app/Http/routes.php

Route::get('/facadeex', function() {
   return TestFacades::testingFacades();
});

步骤9 − 访问以下URL以测试外观模式。

http://localhost:8000/facadeex

步骤10 − 访问URL后,您将收到以下输出 −

Laravel Facades门面

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程