**网上不少laravel的自定义facades,可是在5.2版本中讲述的就不多。用于我的记录也仅供参考**
首先创建Facades目录结构php
在 app 目录下新建 Facades 文件夹,里面新建 Facades/Darry/Darry.php 和 Facades/Darry/Facade/Darry.php (在Facades下面一个文件加表示一个facade注意区分,在文件夹下区分Facade与扩展类) Facades/Darry 下的 Darry.php 是你要对 Darry 扩展进行封装的类。 而 Facades/Darry/Facade 下的 Darry.php 是你的 facade,用来给 laravel 解析使用,这两个文件能够不一样名。 路径和文件名能够根据我的状况命名和设置。 //path:Facades/Darry/Darry.php <?php namespace App\Facades\Darry; class Darry { /** * @param $code 编码 * @param string $data 数据 * @param string $msg 信息 * @return string */ public static function json($code='', $data='' ,$msg='') { return json_encode(array('code' => $code, 'data' => $data, 'msg' => $msg,)); } //paht:Facades/Darry/Facade/Darry.php <?php namespace App\Facades\Darry\Facade; use Illuminate\Support\Facades\Facade; class DarryFacade extends Facade { protected static function getFacadeAccessor() { return 'darry';// 返回了一个字符串 'darry' , 这个字符串是一个标号,用来给 laravel 的服务提供者解析使用的 } } ?>
新建服务提供文件app/Providers/DarryFacadeServiceProvider.phplaravel
php artisan make:provider DarryFacadeServiceProvider //paht:app/providers/DarryFacadeServiceProvider <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use App\Facades\Darry\Darry; class DarryFacadeServiceProvider extends ServiceProvider { /** * 在容器中注册绑定。 * * @return void */ public function register() { $this->app->singleton('darry', function ($app) { return new Darry($app); }); } }
最后就是注册和添加别名json
//在config/app.php找到providers添加 App\Providers\DarryFacadeServiceProvider::class, //在config/app.php找到aliases添加 'Darry' => App\Facades\Darry\Darry::class
尽情的使用吧app
引入Darry:use Darryide
调用方法:Darry::json();this