**網上不少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