Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
<?php
///////////////////////////////////////////////////
// STEP 1 - CREATE CLASS THAT WILL BE USED GLOBALY
///////////////////////////////////////////////////
namespace App\MyApp;
class MyApp {
public function sayHello($data = [])
{
echo "Hello World from Facade!";
}
}
/////////////////////////////////////////////////////////
// STEP 2 - CREATE SERVICE PROVIDER CLASS
/////////////////////////////////////////////////////////
php artisan make:provider 'MyAppServiceProvider'
///////////////////////////////////////////////////////////
// STEP 3 - ADD REGISTER METHOD TO SERVICE PROVIDER CLASS
///////////////////////////////////////////////////////////
namespace App\Providers;
use Illuminate\Support\Facades\App;
use Illuminate\Support\ServiceProvider;
class MyAppServiceProvider extends ServiceProvider
{
/**
* Register the application services.
*
* @return void
*/
public function register()
{
App::bind('myapp', function()
{
return new \App\MyApp\MyApp;
});
}
}
///////////////////////////////////////////////////
// STEP 4 - CREATE FACADE CLASS
// Create: App\Facades\MyApp.php
///////////////////////////////////////////////////
namespace App\Facades;
use Illuminate\Support\Facades\Facade;
class MyApp extends Facade{
protected static function getFacadeAccessor() { return 'myapp'; }
}
/////////////////////////////////////////////////////////////
// STEP 5 - ADD ALIAS AND SERVICE PROVIDER TO config/app.php
////////////////////////////////////////////////////////////
//Add service provider
App\Providers\MyAppServiceProvider::class,
//Add alias
'MyApp' => App\Facades\MyApp::class
///////////////////////////////////////////////////
// STEP 6 - TESTING
///////////////////////////////////////////////////
MyApp::sayHello();
//Output: Hello World from Facade!
@alyjee

This comment has been minimized.

Copy link

commented Mar 30, 2018

Nice and please add another step to dump composer autoload by typing:
composer dump-auto

@jeffz2012

This comment has been minimized.

Copy link

commented Jul 12, 2018

Nice, thank you.

@almanzamarfrancisco

This comment has been minimized.

Copy link

commented Apr 2, 2019

GREAT!! Tanks, it works fine :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.