Home >php教程 >PHP开发 >Laravel framework facades (facades)

Laravel framework facades (facades)

高洛峰
高洛峰Original
2016-11-30 15:50:091452browse

Facades provide a "static" interface for classes available in the application's service container.

Laravel comes with many facades, and you may even be using them without knowing it!

xpower’s static interface (facades)

Prerequisite 1: We have a class (xpower) that has been bound to the service container

Prerequisite 2: We have registered this in the service provider Class (singleton method under regisrer in the service container)

5. Next, create the facade of xpower, which inherits the facade base class. The getFacadeAccessor method must be implemented. A string is returned, which is actually the name of the service provider's registered binding singleton (singleton method). You can write this name casually, ours here is xpower

<?php 

namespace App\Facades; 

use Illuminate\Support\Facades\Facade; 

class XP extends Facade { 
  protected static function getFacadeAccessor() { 
    return &#39;xpower&#39;; 
  } 
}

6. Then you need to register the facade category name in the configuration file config/app.php:

&#39;aliases&#39; => [ ...//其他门面类别名映射 &#39;XP&#39; => App\Facades\XP::class, ],

We can directly use XP::activate to activate xpower super power at this time

use the introduction of AppFacadesXP. Otherwise it cannot be found.

Analysis:

1.XP::activate first goes to the container to find the XP instance (already registered in the container), and returns the xpower string

2.xpower string has also been bound and registered to the container , and then return to the Xpower service instance

3. ::activate will actually call the __callstatic method in the base class facade, and then convert it to a call in the form of ->show().


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:git common commandsNext article:git common commands