欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Laravel 实现 Facades 效能

程序员文章站 2022-06-10 23:13:31
...
Laravel 实现 Facades 功能

  使用过Laravel的同学都知道Facades 的强大,下面就让我们一起创建一个Facades 实例。如有不正确的地方,还请不吝赐教。

  1. 实现Laravel的自动加载功能

  首先建立目录app/lib/Myapp,然后添加目录到composer.json中  

1 "autoload": {        2     "psr-0":{3         "Myapp":"app/lib"4     }5 }    

  

  2. 实现功能类

  实现能能类 app/lib/Myapp/Test.php  

 1 php 2 /** 3  * @author brudeke 4  */ 5 namespace Myapp; 6 class Test{ 7     public function do(){ 8         echo 'this is a class'; 9     }10 }

  

  3. 实现ServiceProvider

  实现app/lib/Myapp/TestServiceProvider.php ,该类主要是将功能类添加到Ioc容器:  

php/** * @author brudeke */namespace Myapp;use Illuminate\Support\ServiceProvider;class TestServiceProvider extends ServiceProvider{    public function register()  {        $this->app['test'] = $this->app->share(            function ($app) {                return new \Myapp\Test();        });    }}

  4. 实现Facade 实例

  实现app/lib/Myapp/Facades/TestFacades.php, 该类的主要美化,实现成员函数类似静态方法的调用形式  

 1 php 2 /** 3  * @author brudeke 4  */ 5 namespace Myapp\Facades; 6  7 use Illuminate\Support\Facades\Facade; 8  9 class  TestFacades extends Facade{10     protected static function getFacadeAccessor()11     {12         return 'test';13     }14 }

  

  5. 加载ServiceProvider

  在app/config/app.php 中的providers中添加如下配置:  

1 'providers' => array(   2   'Myapp\TestServiceProvider'3 ),

  在app/config/app.php 中的aliases中添加别名:  

1 'aliases' => array(2     'TestClass'            =>  'Myapp\Facades\TestFacades',3 ),

  接下来就可以在项目中以TestClass::do()的形式使用该功能类了。

1楼brudeke
11111
Laravel 实现 Facades 效能

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • Laravel 实现 Facades 效能
  • 专题推荐

    作者信息
    Laravel 实现 Facades 效能

    认证0级讲师

    推荐视频教程
  • Laravel 实现 Facades 效能javascript初级视频教程
  • Laravel 实现 Facades 效能jquery 基础视频教程
  • 视频教程分类