Here is step by step to create facade on laravel 5.2
Create PHP Class File.
Bind that class to Service Provider
Register that ServiceProvider to Config\app.php as providers
Create Class which is this class extends to Illuminate\Support\Facades\Facade
Register point 4 to Config\app.php as aliases
Step 1 – Create PHP Class File, for example in App\Classes\Someclass.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php /** * Created by PhpStorm. * User: Tuva Ergun * Date: 4/29/16 * Time: 01:03 AM */ namespace App\Classes; class Someclass { public function get($data = []) { echo "foo"; } } |
Step 2 – Bind that class to Service Provider
In case i create a new serviceprovider by execute
1 |
php artisan make:provider 'SomeclassServiceProvider' |
then add
1 2 3 4 |
App::bind('someclass', function() { return new \App\Classes\Someclass; }); |
Like so
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?php namespace App\Providers; use Illuminate\Support\Facades\App; use Illuminate\Support\ServiceProvider; class SomeclassServiceProvider extends ServiceProvider { /** * Bootstrap the application services. * * @return void */ public function boot() { // } /** * Register the application services. * * @return void */ public function register() { App::bind('someclass', function() { return new \App\Classes\Someclass; }); } } |
Step 3 – Register that ServiceProvider to Config\app.php as providers
1 2 3 4 |
/* * Application Service Providers... */ App\Providers\SomeclassServiceProvider::class, |
Step 4 – Create Class which is this class extends to Illuminate\Support\Facades\Facade
For Example I create this class in App\Facades\Someclass.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php /** * Created by PhpStorm. * User: Tuva Ergun * Date: 4/29/16 * Time: 01:16 PM */ namespace App\Facades; use Illuminate\Support\Facades\Facade; class Someclas extends Facade{ protected static function getFacadeAccessor() { return 'someclass'; } } |
Step 5 – Register point 4 to Config\app.php as aliases
1 |
'Someclass' => App\Facades\Someclass::class |
Testing
On App\Http\routes.php create single route
1 2 3 |
Route::get('/', function(){ Someclass::get(); }); |
Then check on your browser