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

alyjee 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

jeffz2012 commented Jul 12, 2018

Nice, thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment