laravel 5 : Extend a Facade

后端 未结 2 1660
有刺的猬
有刺的猬 2021-01-05 09:31

I need to handle different types of DB depending on the client.

I created a Facade called MyDBFacade where I can call my own functions.

For example:

相关标签:
2条回答
  • Let's say that you define your custom facade in app/Facades/MyDBFacade.php

    <?php
    
    namespace App\Facades;
    
    use Illuminate\Support\Facades\DB;
    
    class MyDBFacade extends DB
    {
        // ...
    }
    

    You just need to change single line in config/app.php, from

    'DB' => Illuminate\Support\Facades\DB::class,
    

    to

    'DB' => App\Facades\MyDBFacade::class,
    

    And it all should work now.

    0 讨论(0)
  • 2021-01-05 10:03

    You can create / extend your Facade like this:

    <?php namespace YourNameSpace\Facades;
    
    class MyDBFacade extends Illuminate\Support\Facades\DB {
    
            /**
             * Create your custom methods here...
             */
            public static function anyMethod($active)
            {
                /// do what you have to do
            }
    
    }
    

    And then replace (or add it as a new one) to your app/config/app.php:

    'aliases' => array(
      'MyDBFacade'   =>  'YourNameSpace\Facades\MyEventFacade::class',
    ),
    

    Remember to execute composer dump-autoload at the end.

    Hope this helps!

    0 讨论(0)
提交回复
热议问题