您好,欢迎访问一九零五行业门户网

Laravel 实现 Facades 效能

laravel 实现 facades 功能
使用过laravel的同学都知道facades 的强大,下面就让我们一起创建一个facades 实例。如有不正确的地方,还请不吝赐教。
1. 实现laravel的自动加载功能
首先建立目录app/lib/myapp,然后添加目录到composer.json中
1 autoload: { 2 psr-0:{3 myapp:app/lib4 }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楼brudeke11111
其它类似信息

推荐信息