- Installation
- Publish Package via Artisan
- Configure Package Settings
- Use Make Facades Service
- Laravel Make Facades Youtube Tutorial
- In Closing
Youtube Tutorial For This Package
Laravel Make Facades (Simplified Package Tutorial)
Comoser Install
composer require clean-code-studio/laravel-make-facades --dev
Publish Configuration File
php artisan vendor:publish
- Select
CleanCodeStudio\MakeFacades\ServiceProvider
Define Config Settings
- Open
config/make-facades.php
- Note:
config/make-facades.php
is created during the previous step when we publish this package via artisan
- Note:
- Configure
config/make-facades.php
settings- Path: Facades folder path (where new facades created using this package will be stored)
- Namespace: Namespace for every facade created using this package
- Providers Path: Updated to support Laravel 8 release (See @see #4)
- Auto Alias Facades: Whether you want to automatically bind all services within a given folder to its own Facade automatically.
Laravel Make Facades - Config Settings
- File Path:
config/make-facade.php example
return [
// Directory path save your facades
'path' => 'app/facades',
// Namespace Of Your Facades
'namespace' => 'App\\Facades',
// Providers path (@see https://github.com/zhorton34/laravel-make-facades/issues/4)
'providers_path' => 'app/Providers',
// This will find all of the aliases and services defined in your path settings and
// 1. Bind the service classes for each facade to the service container automatically
// 2. Register aliases for each facade base on the Class Name the Facade Reference to the service container automatically
'auto_alias_facades' => true,
];
- Run:
php artisan make:facade MyCoolService
- Creates Scaffold for
MyCoolService
class - Creates Scaffold for
MyCoolServiceFacade
class - Note:
- If
'auto_alias_facades' => true
inconfig/make-facade.php
then the service will automatically be binded to your service container - If
'auto_alias_facades' => false
inconfig/make-facade.php
then you need to bind your generated service class to the service container in any service provider for the facade to properly work.
- Creates Scaffold for
MyCoolService Class
- By Default created to
App\Facades\MyCoolService\MyCoolService.php
<?php
namespace App\Facades\MyCoolService;
class MyCoolService
{
// create MyCoolService class
}
MyCoolServiceFacade Class
- By Default created to
App\Facades\MyCoolService\MyCoolServiceFacade.php
<?php
namespace App\Facades\MyCoolService;
use Illuminate\Support\Facades\Facade;
class MyCoolServiceFacade extends Facade
{
protected static function getFacadeAccessor()
{
return 'MyCoolService';
}
}
Note: auto_alias_facades in config
- If
'auto_alias_facades' => true
inconfig/make-facade.php
then the service will automatically be binded to your service container - If
'auto_alias_facades' => false
inconfig/make-facade.php
then you need to bind your generated service class to the service container in any service provider for the facade to properly work.
Laravel Make Facades (Simplified Package Tutorial)
- Screencast
- Laravel Facades Tutorial
- This package's installation and usage
-
A. Remember You Can Auto Bind The Services and Auto Aliases Your Service Facades Simply By Setting
auto_alias_facades
to TRUE within youconfig/make-facades.php
file! Simple, quick, and easy. -
B. If you do change your namespace or file path in your config, Facades and Facade Services within the old namespace and old file path WILL NOT AUTOMATICALLY REGISTER TO THE CONTAINER.
-
C. If you do not want to auto register or automatically add the aliases for your generated facades, simply set
auto_alias_facades
to false within yourconfig/make-facades.php
file
Clean Code Studio ~ Clean Code Clean Life ~ Simplify!